Clean Architecture
, MVVM
, Multi Module
을 구현한 간단한 메모장 앱
- 텍스트 메모 작성, 카메라/갤러리 이미지 추가, 링크 이미지 추가
- 메모 추가/삭제/수정
- IDE: Android Studio 4.0.1
- Language:
kotlin
1.3.72 - minSdkVersion: 21
- targetSdkVersion: 29
Clean Architecture
+ MVVM
Clean Architecture
의 각 레이어에 맞춰Multi Module
로 구성app
: Application, DIcommon
: Common Resourcepresentation
: UI(Activity&Fragment), ViewModeldomain
: UseCase, Mapperdata
: Repository, Local(Room), Mapper
ACC ViewModel
을 활용한MVVM
구현DataBinding
,LiveData
사용RxJava
사용
app (application)
├── ...
├── src
│ ├── main
│ │ ├── di # Dependency Injection by Koin
│ │ └── MemoApplication.kt
│ ├── res
│ │ └── mipmap
│ └── AndroidManifest.xml
│
common
├── ...
├── src
│ ├── main
│ │ ├── RxExtension.kt # Bridge RxJava2 to RxJava3 & etc
│ │ └── ToastExtension.kt # Toast Message Extension
│ └── ...
│
data
├── ...
├── src
│ ├── main
│ │ ├── entity # Entity for Data layer
│ │ ├── local # RoomDatabase & Dao
│ │ ├── mapper # Mapper Extension
│ │ └── repository # Repository
│ └── ...
│
domain
├── ...
├── src
│ ├── main
│ │ ├── entity # Entity for Domain layer
│ │ ├── repository # Repository interface
│ │ └── usecase # UseCase
│ └── ...
│
presentation
├── ...
├── src
│ ├── main
│ │ ├── entity # Entity for Presentation layer
│ │ ├── mapper # Mapper Extension
│ │ ├── ui # Activity & ViewModel
│ │ │ ├── base # BaseActivity, BaseViewModel
│ │ │ ├── detail
│ │ │ ├── main
│ │ │ ├── write
│ │ └── util # SingleLiveEvent, Permission, Provider, etc...
│ ├── res
│ │ ├── ...
│ │ ├── drawable # SVG, Image resources
│ │ ├── font # NanumSquare regular, bold, extrabold
│ │ ├── values # color, dimen, string, style...
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ ├── styles.xml
│ │ ├── ...
│ └── AndroidManifest.xml
│
- Koin
2.0.1
- ACC ViewModel
2.2.0
- LiveData
2.2.0
- Room
2.2.3
- RxJava3
3.0.0
- Glide
4.11.0
- Logger
2.2.0
- More Information
Main(Empty) | Write | Main(List) | Detail |
---|---|---|---|