Paging3 페이징은 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 페이지로 나눠서 가져오는 것을 뜻합니다. 이러한 페이징 방식을 사용하면 앱에서 네트워크 대역폭과 시스템 리소스를 더 효율적으로 사용하기에 성능, 메모리, 비용 측면에서 굉장히 효율적입니다. Android Jetpack에서는 페이징을 위한 Paging3 라이브러리를 제공합니다. Paging3는 로컬 저장소 또는 네트워크를 통해 데이터를 나누어 효율적으로 로딩할 수 있게 도와줍니다. Paging3는 구글에서 권장하는 Android 앱 아키텍처에 맞게 설계되었으며, 다른 Jetpack 컴포넌트와 잘 동작할 수 있도록 설계되었습니다. 페이징 라이브러리 개요 | Android 개발자 | Android Developers..
DI (Dependency Injection) DI는 의존성 주입이라 부르며, 하나의 객체에 다른 객체의 의존성을 제공하는 기술입니다. 여기서 의존성은 서비스를 사용할 때 필요한 객체를 뜻합니다. Android의 종속 항목 삽입 | Android 개발자 | Android Developers Android의 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 삽입(DI)은 프로그래밍에 널리 사용되는 기법으로, Android 개발에 적합합니 developer.android.com DI 기법 예시 DI를 예시로 Car 클래스와 Engine 클래스로 설명하면 다음과 같습니다. Car 클래스가 실행되기 위해서는 Engine 클래스의 인스턴스가 있어야 합니다. ..
Coil Coil은 Coroutine Image Loader의 약자이며, Kotlin Coroutines(코루틴)으로 만들어진 Android 백앤드 이미지 로딩 라이브러리입니다. Coil에는 이렇게 다양한 장점들이 있습니다. Glide, Fresco보다 상대적으로 가볍습니다. 심플함과 최소한의 boilerplate를 위하여 Kotlin의 기능을 활용하기 때문에 사용하기 쉽습니다. Kotlin으로 개발되었으며 Coroutines, OkHttp, Okio, AndroidX Lifecycles 등의 최신 라이브러리를 사용합니다. 메모리와 디스크의 캐싱, 메모리의 이미지 다운 샘플링, Bitmap 재사용, 일시정지/취소의 자동화 등등 수많은 최적화 작업을 수행하므로 처리 속도가 굉장히 빠릅니다. Coil Ove..
CountDownTimer CountDownTimer를 통해 Thread로 일일히 직접 구현하지 않고 Thread 타이머를 사용할 수 있습니다. CountDownTimer | Android Developers android.location.altitude developer.android.com CountDownTimer 구현하기 CountDownTimer는 얼마나 타이머를 진행할지와 언제 한번씩 onTick()을 호출할지를 인자로 받습니다. 각 인자의 단위는 밀리세컨드이고, 타이머가 종료되면 onFinish()가 호출됩니다. start()과 cancel()을 통해 각각 타이머를 시작 및 종료시킬 수 있습니다. 다음은 3분 동안 1초마다 남은 시간을 보여주는 CountDownTimer 예시입니다. priv..
SMS Retriever API SMS Retriever API를 사용하면 사용자가 수동으로 인증 코드를 입력하지 않고도 Android 앱에서 SMS 기반 사용자 확인을 자동으로 수행할 수 있습니다. Android 앱에서 SMS 인증 요청 | Credential Verification | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Android 앱에서 SMS 인증 요청 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. developers.google.com SMS Retriever API 사용하기 1. build.gradle에 의존성 추가 SMS Retrieve..
BindingAdapter BindingAdapter는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 액티비티 또는 레이아웃에서 원하는 속성이 없어 해당 기능을 처리할 수 없을 때 BindingAdapter을 사용하여 View의 속성 값을 커스터마이징할 수 있습니다. 결합 어댑터 | Android 개발자 | Android Developers 결합 어댑터 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 결합 어댑터는 적절한 프레임워크를 호출하여 값을 설정하는 작업을 담당합니다. 한 가지 예로 developer.android.com BindingAdapter 생성 BindingAdapter는 Java의 static 함수로 되어 있기 때문에 @JvmStatic 어..
ML Kit ML Kit의 얼굴 인식 API를 사용하면 이미지 속 얼굴을 인식하고 주요 얼굴 특징을 식별하며 인식된 얼굴에서 윤곽을 가져올 수 있습니다. 얼굴 인식 | ML Kit | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 얼굴 인식 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ML Kit의 얼굴 인식 API를 사용하 developers.google.com ML Kit 구현하기 1. build.gradle에 의존성 추가 ML Kit를 사용하기 위해서 build.gradle에 ML Kit 라이브러리를 추가합니다. implementation 'com.google.mlk..
CameraX CameraX는 Camera2 패키지를 기반으로 만들어진 Jetpack 라이브러리입니다. CameraX는 Camera2보다 API가 훨씬 단순하고 기기 호환성 문제가 없기 때문에 안드로이드에서 권장하고 있습니다. 미리보기, 이미지 분석, 이미지 캡처 등의 use case를 활용해 카메라 앱을 제작 추가적으로 인물 사진, HDR, 야간, 뷰티 등의 네이티브 카메라 기능을 편리하게 사용 저수준의 기기별 코드를 포함할 필요 X API 21부터 사용 가능 CameraX 개요 | Android 개발자 | Android Developers 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. CameraX 개요 Android Jetpack의 구성요소 CameraX는 더 쉬운 ..