[Android]프로젝트를 클린 아키텍처로 마이그레이션해보자
·
Android
🧑🏻‍💻오늘의 할 일 오늘은 프로젝트를 하면서 설계한 아키텍처와 의존성 주입에 대해 기록해 보겠습니다. 세상엔 저보다 너무나도 정리를 잘 한 글들이 많기 때문에 이 글에선 클린 아키텍처와 힐트에 관한 기본적인 내용은 아마 다루지 않을 것 같습니다. 대신 Hilt를 사용하면서 알게 된 성능 팁에 관한 내용을 다루겠습니다. 아키텍처를 구성하는 각 구성 요소와 비즈니스 로직을 구현하면서 마주했던 많은 고민들을 기록하면서 좀 더 좋은 아키텍처를 설계하기 위한 발판을 만들어 보겠습니다. 1. 모듈을 나누자 프로젝트를 만들고 가장 먼저 할 일은 클린 아키텍처에 기반하여 모듈을 나누는 일입니다. Presentation과 Data, App은 플랫폼의 의존성을 가져야 하기 때문에 Android Library로, D..
클린 아키텍처가 의존성 역전 원칙을 활용하는 원리
·
Android Architecture
👩‍💻 오늘의 할 일클린 아키텍처에서의 의존성 방향은 바깥에서 안쪽으로 흐릅니다. 그리고 동심원의 가장 안쪽, Entitiy는 외부와의 의존성이 없어야 하기 때문에 경계를 횡단하기 위해선 반드시 의존성 역전 원칙을 적용해야 합니다.  모바일 클린 아키텍처에선 Data Layer에서 Domain Layer로의 의존성을 제거하기 위해서 의존성 역전 원칙을 사용합니다.  오늘은 봐도 봐도 어려운 의존성 역전 원칙이 클린 아키텍처에서 어떻게 의존 관계를 역전시키는지 알아보겠습니다. 🤔의문점 이전에 제가 공부했던 Repository Pattern에선 하나의 데이터에 대해서 하나의 DataSource 인터페이스와 Remote DataBase 와 Local DataBase, 두 개의 구현체로 나누고 Reposi..
[Kotlin] LiveData 대신 StateFlow 사용하기
·
KOTLIN
👩‍💻 오늘의 할 일 앞선 글에서 소개했듯이 프로젝트에 있던 LiveData들을 StateFlow로 대체하기 위해 공부하고 있습니다. 안드로이드에서는 어떤 이유로 Live Data를 StateFlow로 대체하라고 하는걸까요 ? StateFlow에 대해 알아보겠습니다. [Kotlin] Coroutine Flow 기존 진행하던 프로젝트를 리팩토링 하는 과정에서 two-way Binding을 사용하던 도중 Live Data의 타입을 변경할 수 있는 Transformation.map Operator가 import가 안되는 issue가 발생했습니다. Transformations.map AAC( chanho-study.tistory.com 📕 LiveData LiveData 개요 | Android 개발자 | And..