관리 메뉴

막내의 막무가내 프로그래밍 & 일상

[안드로이드] 구글 공식 프로젝트 Sunflower 스터디 (2) 패키지 구조 본문

안드로이드/코틀린 & 아키텍처 & Recent

[안드로이드] 구글 공식 프로젝트 Sunflower 스터디 (2) 패키지 구조

막무가내막내 2021. 4. 19. 13:43
728x90

[참고]

github.com/android/sunflower

 

android/sunflower

A gardening app illustrating Android development best practices with Android Jetpack. - android/sunflower

github.com

 

[프로젝트 구조]

 

 

 

 

-adapters-

xml 데이터바인딩을 위한 바인딩어댑터

리사이클러뷰 관련 PagingAdapter, ListAdapter

ViewPager2 에 사용할 FragmentStateAdapter 가 있다.

 

-api-

외부 서버 API 통신을 위한 인터페이스가 있다.

 

-data-

Room Database 즉 DB와 연관된 클래스들이 들어있다. (ex : RoomDatabase, @TypeConverter, @Entity(data class), @Dao )

Repository 클래스들이 들어있다.

 

-di-

의존성 주입 모듈들이 들어있다. Hilt 를 사용한다.

 

-utils-

유틸성 클래스들인 상수와 latitude(위도)를 구하는 함수가 있는 클래스가 있다.

 

-viewmodels-

ViewModel 클래스들이 들어있다. Hilt 의존성 주입 및 코루틴 Flow 로 구현 되어있다.

 

-views-

커스텀한 CardView가 들어있다.

 

-workers-

WorkManager 관련 클래스인 CoroutineWorker 클래스가 들어있다. 데이터베이스 작업에 사용하는 것 같다. CoroutineWorker는 WorkManager를 코루틴과 엮어 더 사용하기 편리하게 한거라고 한다.

 

-최상위 패키지(루트)-

Jetpack Navigation을 이용한 SPA 구조이므로 하나의 액티비티와 여러개의 프래그먼트들이 들어있다.

 

 

 

댓글과 공감은 큰 힘이 됩니다. 감사합니다. !!

728x90
Comments