-
Notifications
You must be signed in to change notification settings - Fork 8
[AN] 안드로이드 버전 및 라이브러리
해시 edited this page Jul 7, 2023
·
1 revision
pie (9.0) / 28
-
점유율 84.1%
-
한국 기준으로는 96% 이상 커버 (Statcounter 지난 1년간 통계 기준)
-
보안상의 이유
- 평균적으로 안드로이드는 출시 후 보안 업데이트를 3.3년정도 지원함
- Android version history ← 위키에의하면 사실상 유지보수되고 있는 버전은 안드로이드 11 이상
targetSdk: 33
- MVVM → AAC ViewModel + LiveData + DataBinding
- LiveData + Event
참고
MVVM의 ViewModel에서 이벤트를 처리하는 방법 6가지
- Retrofit, OkHttp 둘 다 Square 사에서 만든 HTTP 통신 라이브러리. OkHttp 기반으로 더 Type-safe 하고 직관적으로 사용할 수 있는 인터페이스를 제공하는 것이 Retrofit.
- json 파싱 - OkHttp는 직접 변환해서 사용해야 한다. Retrofit은 컨버터를 설정해 사용할 수 있다.
- Retrofit은 결과값을 메인스레드에서 바로 사용할 수 있다.
- Retrofit도 사실 Http 통신할 때 OkHttp에 의존하고 있다.
- 순수 코틀린으로 작성되어 Kotlin.Native , Kotlin/JS 를 포함한 Kotlin 멀티 플랫폼 대상으로 사용할 수 있다.
- 코틀린 시스템을 고려하여 만들어 졌다.
- @serializable 만 붙여서 상속 계층 구조를 쉽고 안전하게 처리할 수 있다.
- 직렬화하려는 클래스에 @serializable 을 붙이지 않으면 컴파일 타임 오류가 발생한다.
- 커스텀이 용이하다. (@SerialName 등)다양한 프레임워크와 상호작용하기 쉽다.
참고
Jetbrain kotlinx Serialization
moshi
- 성능상 크게 차이를 못느껴서 팀원들이 익숙한 kotlinx serialization 선택함
gson
- gson과 비교했을 때 kotlinx serialization의 장점
- gson에서 값이 없을 때 non-null 타입에 null이 들어가는 문제 해결
- 순수 코틀린으로 작성되었고 멀티 플랫폼을 지원
- 직렬화를 수행할 수 없는 경우 런타임이 아닌 컴파일 에러가 발생
- Android SDK의 인터페이스
- 리플렉션을 사용하지 않는다.
- 직렬화 처리 방법을 사용자가 명시적으로 작성한다. 필수적으로 구현해야 하는 메서드가 있기에 아래 코드처럼 보일러 플레이트 코드가 추가된다. 하지만 이것은 안드로이드에서 제공하는 플러그인을 사용해 해결할 수 있다.
- 안드로이드에서 kotlin-parcelize 플러그인을 제공한다. 이를 사용하면 직렬화 처리 방법을 직접 작성하는 보일러 플레이트 코드가 사라진다. 단순히 @Parcelize 어노테이션을 추가해 주면 된다.
- 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리. 사용법이 간단하고 성능이 좋아 메이저하게 사용되고 있는 라이브러리다.
- 구글이 인수했고 공식적으로 권장하는 라이브러리이기에 추후 유지보수도 계속 될 것으로 예상
- QR 코드 라이브러리
비교
- ZXing (Zebra Crossing): ZXing은 안드로이드에서 가장 인기 있는 오픈 소스 QR 코드 라이브러리입니다. QR 코드를 인식하고 생성할 수 있으며, 다양한 형식의 바코드도 지원합니다.
- ZBar: ZBar는 안드로이드에서 QR 코드 및 바코드를 인식하기 위해 사용되는 라이브러리입니다. 비교적 빠르고 경량화되어 있으며, 다양한 형식의 바코드와 QR 코드를 지원합니다.
- Google Mobile Vision API: Google Mobile Vision API는 안드로이드에서 이미지 처리와 컴퓨터 비전 작업을 수행하는 데 사용되는 다양한 기능을 제공합니다. QR 코드 인식도 그 중 하나입니다. 구글의 강력한 이미지 처리 기술을 사용하여 QR 코드를 식별하고 인식할 수 있습니다.
- Firebase ML Kit: Firebase ML Kit은 구글의 Firebase 플랫폼에 통합된 머신 러닝 기반의 모바일 개발 도구입니다. ML Kit을 사용하여 안드로이드 앱에서 QR 코드를 인식하고 분석할 수 있습니다.