Skip to content

안드로이드 기술 스택 및 사용 이유

Mendel edited this page Oct 19, 2023 · 2 revisions
  • Git
  • Kotlin
  • Android Studio Flamingo
  • 직렬화 라이브러리
    • Kotlinx-serialization
      • 리스트도 빈 리스트로 기본값 설정 가능
      • Data Model에서 인자값이 NonNull 임에도 불구하고 서버에서 Null 줬을 때 Default Value를 지정 가능
  • Parcelable
    • 안드로이드 OS에 최적화된 IPC인 바인더가 넘겨주는 Parcel에 최적화되어서 들어갈 수 있게 하기 위해
  • Coroutine
    • ANR 방지 가능
    • 기존 미션에서 작성한 콜백 지옥과 같은 상황에서 벗어날 수 있음
  • MVVM
    • MVP와 비교했을 때 뷰의 의존성을 제거할 수 있음
      • 1:1 관계 → n:m 관계로 뷰 모델 재활용 가능
  • 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 SDK 버전 선택 및 이유

  • 참고사이트

    [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%

    Untitled

    • 한국 기준의 기획이기 때문에 한국을 기준으로 최대한 많은 유저들이 사용할 수 있도록 설정
    • 한국 기준 버전별 점유율이 1% 미만이 아닌 버전을 최소 SDK로 설정
      • Pie(9.0) - 3.26%
      • Oreo(8.0) - 0.78%
      • Nougat(7.0) - 0.41%
      • Marshmallow(6.0) - 0.27
Clone this wiki locally