본문 바로가기

분류 전체보기

(169)
[Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. -2. DI 본 게시글은 이전 글에 이어서 작성된 부분입니다. 2022.08.12 - [Android/Network] - [Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. 지난 글에 이어서, 이번에는 Hilt와 Koin을 사용하여 Ktor을 적용해보도록 하였다. 우선, Hilt를 사용하기 위해 Gradle에 추가해주도록 한다. plugins { ... id 'com.google.dagger.hilt.android' version '2.41' apply false } Project 범위의 Gradle에 Hilt 플러그인을 추가해주고, plugins { ... id 'dagger.hilt.android.plugin' } dependencies { ... // hilt def hilt_versio..
[Android] Retrofit 대신 Ktor을 사용하여 통신을 해보자. -1. 기본 최근 안드로이드 관련 블로그를 보다가 Ktor이라는 것을 알게 되었다. Retrofit 대신해서 사용할 수 있는 비동기 통신 라이브러리라고 하는데, Retrofit만 사용하던 필자로선 상당히 흥미로운 라이브러리였다. 따라서, 아주 간단한 샘플 프로젝트를 만들어서 Ktor을 적용해보고 기본적인 사용 방법에 대해 글을 작성해보고자 한다. 우선, Ktor이 무엇인가? Ktor은 JetBrains에서 만든 Framework로 Kotlin을 사용하여 비동기 서버 및 클라이언트를 구축할 때 사용하는 오픈소스. 라고 한다. Kotlin으로 구현되어있기는 하지만, 안드로이드에 제한되어 있지 않고 다양한 플랫폼에서 사용이 가능하다는 특징을 가지고 있다. 필자는 클라이언트 입장에서 Ktor을 사용해서 Retrofit 대신..
[Android] Biometric을 사용하여 생체 인증 추가하기. 생체 인증에 대하여 찾아볼 기회가 생겨 Biometric 라이브러리를 사용하여 생체 인증을 추가해 보았다. 필자가 한 2~3년 전에 생체 인증을 적용했을 때는 Biometric이 아닌 FingerPrint를 사용했던 기억이 있는데, Biometric을 사용하도록 바뀐 지 꽤 시간이 지난 것 같다. 따라서, 생체 인증에 대하여 찾아보고 적용한 것에 대하여 간단하게 정리하는 글을 작성하고자 한다. 우선, Biometric 라이브러리를 추가해주도록 한다. // BioMetric implementation 'androidx.biometric:biometric:1.1.0' 안드로이드 공식 페이지에서는 1.2.0-alpha04 버전이 최신 버전이지만 정식 배포된 1.1.0 버전과 큰 차이점을 보이지 않는 것으로 판..
[Android] Jacoco를 사용하여 코드 커버리지 확인하기. 이전에 한창 테스트 코드에 관련하여 기본 개념을 공부할 때 코드 커버리지를 확인하는 방법이 있다는 것을 확인하고, 나중에 시간 되면 확인해봐야겠다 싶어서 메모해두었는데.. 완전히 잊고 있다가 발견하게 되어 이에 대하여 적용하고 글을 작성해보려 한다. 우선, 코드 커버리지란 무엇인가? 테스트 케이스가 얼마나 충분한가를 나타내는 지표로, 테스트를 진행하였을 때 코드 자체가 얼마나 실행되었는지에 대한 수치. 라고 한다. 즉, 개발자가 작성한 테스트 코드를 실행시켜 보고, 해당 테스트 코드가 작성된 코드를 얼마만큼 검증했는지를 수치로 나타낸 것이다. 이에 대해서는 이후 결과를 보면 확실하게 이해가 가능하니, 이해가 잘 되지 않아도 상관없다. 여기서 테스트는 크게 블랙박스 테스트와 화이트박스 테스트로 나누어지는데..
[Android] 바로가기 (Shortcut) 만들기 이전에 SAA 글을 작성하다 Fragment의 Lifecycle 관련하여 찾아보던 와중, 앱의 진입점으로 바로가기(Shortcut)가 있다는 것을 알 수 있었다. 앱 아이콘을 롱 클릭하면 나오는 항목 중, 바로가기 항목이 있는 것들이 있는데 지금까지 개발을 하면서 이 바로가기라는 것을 완전히 잊고 있었다. 그래서 생각이 난 김에, 해당 기능을 한번 적용해보고 사용 방법을 글로 작성하고자 한다. 우선, 만들 수 있는 Shortcut의 종류는 3가지로 정적, 동적, 고정된 바로가기가 존재한다. 각각의 Shortcut의 사용이 권장되는 부분은 Android 공식 문서에 정확히 나와있으니 해당 부분을 확인하는 것이 좋을 것이고, 필자는 각 Shortcut의 사용 방법이 어떻게 다른지에 대하여 작성해볼 생각이다...
[Android] Single Activity Architecture (SAA) + Navigation - 이슈 해결 본 게시글은 이전 게시글에 이어서 작성된 부분입니다. 2022.07.04 - [Android/Architecture] - [Android] Single Activity Architecture (SAA) + Navigation 이전 게시글에서 SAA에 대한 기본적인 샘플 프로젝트를 만들어 보았다. 이번 게시글에서는 이어서 SAA 구조의 샘플을 만들면서 시간이 걸렸던 이슈들에 대해서 살펴보고자 한다. 우선, 가장 처음 발생했던 이슈는 ViewModel의 주입 타이밍이다. override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) viewModel = getViewModel() p..
[Android] Single Activity Architecture (SAA) + Navigation 다양한 레퍼런스를 확인하던 와중 Single Activity Architecture (Application)에 대한 글을 보았다. 단일 혹은 아주 적은 개수의 Activity만 사용하고 모두 Fragment로 구현한 구조인데, 상당히 흥미로운 구조라고 생각하여 Jetpack Navigation을 사용하여 구현해 보았다. 이번 글에서는 SAA 구조로 샘플 코드를 만들어 보면서 발생했던 이슈와 처리 과정에 대하여 기술해볼 생각이다. 우선, SAA란. Single Activity Architecture는 Google I/O 2018에서 언급된 개념으로, 하나 혹은 적은 갯수의 Activity만을 사용하고 나머지 화면은 Fragment로 구성한 구조로, 주로 JetPack Navigation과 함께 사용되는 구..
[Android] Android 12 Splash Screen 사용하기. Android 12부터 Splash API를 제공해준다. 필자가 앞서 Android12에 대한 변경점을 작성한 글이 있는데, 그곳에는 Splash Screen에 대한 설명이 없다. 그 당시에는 해당 부분이 얼마나 영향을 끼치는지에 대해 생각을 안 했던 것으로 보인다. Splash Screen을 사용하여 기존에 별도로 만들어서 사용하던 Splash 화면이 아닌, API를 통해 앱을 실행했을 때 설정한 Splash 화면을 보여주게 된다. 따라서, 기존의 대부분의 앱들이 Splash를 구현하여 사용하였는데 대응을 하지 않으면 앱 아이콘이 default로 보인 후에 스플래시 화면으로 넘어가게 된다. 이번 글에서는 Android 12부터 제공하는 Splash Screen을 어떻게 사용해야 하는지 알아볼 예정이다...