앱 서비스의 기본적인 회원 인증, 연락처 동기화를 통한 친구 추가, 채팅 프로필 커스텀, 검색 기능과 채팅 기능을 제공합니다.
채팅은 STOMP WebSocket 기반의 실시간 통신으로 이루어지며, FCM을 통해 메세지에 대한 푸시 알림 기능이 있습니다.
Tools | Name | Version |
---|---|---|
IDE | Android Studio | 11.0.11 |
Language | Kotlin | 1.6.10 |
API Level | |
---|---|
TargetSDK | 31 (R) |
MinimumSDK | 26 (Oreo) |
compileSDK | 31 (R) |
Library | Description |
---|---|
Navigation | Fragment간 화면 전환 및 뷰 스택 관리. Single Activity 구조 적용 |
KTX | Android 생명주기 관리, 확장함수, Coroutine의 이용을 위한 Kotlin 확장 프로그램 |
Hilt, Dagger | 클래스에 컨테이너를 제공하고 수명 주기를 자동으로 관리하는 Android DI 라이브러리 |
DataStore | 프로토콜 버퍼를 사용하여 키-값 쌍 또는 유형이 지정된 객체를 저장할 수 있는 데이터 저장소 |
Coroutine | Android Jetpack과 호환되는 안드로이드 비동기 프로그래밍 솔루션 |
Coroutine - Flow | Coroutine 기반의 비동기식 데이터 스트림 |
Coroutine - StateFlow | Flow에서 최적으로 상태 업데이트를 내보내는 관찰 가능한 객체 |
Room | Jetpack에서 권장하는 Android 내부 저장소 관련 솔루션. SQLite를 추상화한 라이브러리 |
Library | Description |
---|---|
STOMP Krossbow | Coroutine 기반으로 Flow를 지원하는 STOMP Websocket 통신 라이브러리 |
Retrofit2 | HTTP REST API 통신 라이브러리 |
OkHttp3 | HTTP 기반으로 효율적으로 request/response를 할 수 있도록 지원하는 HTTP 클라이언트 |
Firebase | Google OAuth FCM Push 알림 |
Glide | 이미지 로드 및 캐싱 라이브러리 |
ViewPager2 | 스와이프할 수 있는 형식의 뷰 또는 프래그먼트를 지원 |
Timber | 로그를 출력하는 라이브러리 (배포 파일 생성 시 로그를 삭제시켜 줌) |
MVVM + AAC | View+ViewModel+Model의 구조로 뷰와 비즈니스 로직을 분리 Android Architecture Components인 Room, Navigation, Fragments 이용 |
Repository | 네트워크 API 통신과 내부 DB를 일관적인 인터페이스로 접근할 수 있는 아키텍처 패턴 |