-
Notifications
You must be signed in to change notification settings - Fork 4
안드로이드 기술 스택 및 사용 이유
Mendel edited this page Oct 19, 2023
·
2 revisions
- Git
- Kotlin
- Android Studio Flamingo
- 직렬화 라이브러리
- Kotlinx-serialization
- 리스트도 빈 리스트로 기본값 설정 가능
- Data Model에서 인자값이 NonNull 임에도 불구하고 서버에서 Null 줬을 때 Default Value를 지정 가능
- Kotlinx-serialization
- Parcelable
- 안드로이드 OS에 최적화된 IPC인 바인더가 넘겨주는 Parcel에 최적화되어서 들어갈 수 있게 하기 위해
- Coroutine
- ANR 방지 가능
- 기존 미션에서 작성한 콜백 지옥과 같은 상황에서 벗어날 수 있음
- MVVM
- MVP와 비교했을 때 뷰의 의존성을 제거할 수 있음
- 1:1 관계 → n:m 관계로 뷰 모델 재활용 가능
- MVP와 비교했을 때 뷰의 의존성을 제거할 수 있음
- Glide
- 썸네일 기능, 커스텀 애니메이션, 커스텀 로드 지원
- Data Binding
- MVVM과 함께 유용하게 사용할 수 있음
- 보일러 플레이트 코드를 줄일 수 있음
- LiveData
- MVVM과 함께 유용하게 사용할 수 있음
- SharedPreference
- SharedPreference와 비교했을 때 DataStore를 권장
- DataStore는 Kotlin 코루틴과 Flow를 기반으로 하며 Coroutines Flow로 데이터 스트림 방식으로 데이터를 추출함
- 아직 Flow에 대한 학습이 부족하여 일단은 SharedPreference를 사용하고 추후에 Flow를 학습하면 DataStore로 변경하기로 함
- FCM (Firebase Cloud Messaging)
- Push 알림 기능 구현, 실시간 메시징을 위함
- 다중 플랫폼 지원으로 향후 서비스 확장에 대응 유연
- 확장성과 안정성
- 쉬운 통합과 사용
- 무료
- Retrofit2
- 빠른 성능
- 복잡하지 않은 구현
- 좋은 가독성 (Annotation 사용, 반복 작업 삭제)
-
참고사이트
[Android Version Market Share Republic Of Korea | Statcounter Global Stats](https://gs.statcounter.com/android-version-market-share/all/south-korea)
-
특정 기술로 인한 상위 버전 필요 사항이 아닌 경우에는 최대한 많은 유저가 사용 가능한 버전을 채택하는 것이 좋지 않을까 하는 생각
-
Target SDK : Android 13 (API 33)
- 2023년 8월 31일 이후로 업로드되는 모든 앱들이 Android 13을 타겟팅해야하므로 설정
-
Minimum SDK : Android 9.0 (API 28) - 점유율 98.79%
- 한국 기준의 기획이기 때문에 한국을 기준으로 최대한 많은 유저들이 사용할 수 있도록 설정
- 한국 기준 버전별 점유율이 1% 미만이 아닌 버전을 최소 SDK로 설정
- Pie(9.0) - 3.26%
- Oreo(8.0) - 0.78%
- Nougat(7.0) - 0.41%
- Marshmallow(6.0) - 0.27