일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MVVM
- 플레이스토어
- 커스텀뷰
- UiState
- ListAdapter
- Build variants
- XML
- Kotlin
- DiffUtil
- 컴포즈
- cleanarchitecture
- 로그인
- 회원가입
- 파이어베이스
- Authentication
- coroutine
- 뷰
- 코딩테스트
- 알고리즘
- NavHost
- NavController
- Jetpack
- sharedFlow
- 안드로이드
- 리사이클러뷰
- 코틀린
- 클린아키텍처
- Compose
- Flow
- Android
- Today
- Total
목록안드로이드 개발/클린아키텍처 (3)
Grusie 안드로이드 개발 기술 블로그
사이드 프로젝트를 진행하면서, 임시저장 기능을 구현해야 했다.클린아키텍처 구조를 사용중이며, Room DB를 통해 내부저장소에 저장 할 생각을 하였다. 거두절미하고 코드를 보며 이해해보자 build.gradle.kts(Module:data)// Room DBkapt("androidx.room:room-compiler:2.6.1")implementation ("androidx.room:room-ktx:2.6.1")Room DB를 사용하기 위한 의존성을 선언해준다.kapt는 hilt를 사용하기 위해 이미 선언 해뒀을 것이라고 생각한다. Database@Database( entities = [LocalSlowMailInfo::class], version = 1, exportSchema = fa..
현재 근무중인 회사의 안드로이드 프로젝트는 기존 MVC 패턴으로 구현되어 있으며, Retrofit 같이 여러 곳에서 사용 되어야 하는 객체도 Singleton으로 의존성 주입을 활용하여 되어있지 않다.현재 새로 개발하는 프로젝트들은 필자가 MVVM패턴을 적용하고 있으나, DI는 아직 적용하지 못했던 상태이다.클린 아키텍처를 공부하며 프로젝트까지 진행한 이번 기회에 클린 아키텍처 + MVVM + Hilt를 적용해 볼 예정이다. 우선 클린 아키텍처를 위해, 각 계층들을 추가한다.- data모듈(실질적인 통신)- domain모듈(중개자)- presentation모듈(UI)- DI(DI 및 앱 설정) 기존에 사용했던 프로젝트들을 분리하려고 했으나, 얽혀있는 것들이 너무 많아 모듈로 분리하지 않고, 디렉토리로 ..
클린 아키텍처의 개념클린 아키텍처는 계층을 나누어 관심사를 분리하는 것에 초점을 두고 만들어진 아키텍처로서,각 분리된 계층마다 한 가지 역할만 하도록 구현하는 방식이다. 계층 구조에서 외부에서 내부로 의존성을 가지고 있기 때문에, 내부로 갈 수록 의존성이 낮아지게 된다.- 동작을 수행할 때, 자기보다 내부에 있는 계층에서 변화가 발생하면 동작을 행하는 계층에도 영향이 있을 수 있지만, 외부에 있는 계층이 변화하는 것 때문에 동작을 행하는 계층에 영향이 있으면 안 된다. 공부하며 찾아본 모든 블로그에 있던 이미지- 클린 아키텍처에서 의존성은 단방향으로만 이루어져 있다(외부 -> 내부). 이건 클린 아키텍처의 기본 구조를 나타내는 것이고, 안드로이드 기준으로는 다른 이미지를 보면 조금 더 이해가 수월할 것이..