Clean Architecture, MVVM, Multi Module을 구현한 간단한 메모장 앱
- 텍스트 메모 작성, 카메라/갤러리 이미지 추가, 링크 이미지 추가
- 메모 추가/삭제/수정
- IDE: Android Studio 4.0.1
- Language:
kotlin1.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 |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |





