4) Data Layer / Android Architecture 어떻게 해야하는가?
·
안드로이드 읽어보기/5. Android Architecture
나는 이 Data Layer을 이렇게 세분화하여 구분하는 이유에 대해서 정말 많이 고민해 본 것 같다. 왜 VM에서 직접 서버에 Firebase접근을 통해 데이터를 가지고 오지 않고 다른 repository를 사용하고 왜 DataSource를 사용하는가? 이러한 부분에 대한 나름의 이유를 찾고 기록해야겠다고 생각했다. 우선 Data Layer에 대해서 알아보기 전에 내가 이해하기 위해 찾아본 내용부터 확인해보자. 1. API 2. Repository Pattern 과 Data Layer 3. 결론 순으로 정리함. 1. API API는 비전공자인 나도 아주 많이 들어본 용어이지만, 아무리 읽고 이해를 하려고 해도 애매한 개념에 매번 헷갈린 용어이다. 일단 약자로는 Application Programming..
3) Data Layer 워밍업 / 안드로이드 아키텍쳐
·
안드로이드 읽어보기/5. Android Architecture
Data Layer에 대해서 알아보기 이전에 이해를 위한 다른 개념들에 대해서 간략하게나마 살펴보기로 하자. 1. 추상화 2. 객체지향형 프로그래밍과 SOLID 원칙 3. 결론 1. 추상화 추상화, 명확하지 않지만 무엇인지는 알 수 있도록 만들어 주는 게 포인트 예를 들자면, 동아리를 운영하는데 회원들을 한 장소에 모으려고 한다. class Me { fun gathering(members : List){ members.forEach { when(it){ "Minho" ->{ //A는 자전거 타고옴 } "Hoyeong" ->{ //B는 걸어옴 } } } } } 위와 같이 하나하나 회원에 대한 관리에 대한 책임을 나에게 쥐어주면 교통수단에 따라서 융통성 없고 저수준의 하드코딩을 하게 된다. 이러한 방법은 추..
Android Architecture은 어떻게 해야할까? (2) UI Layer
·
안드로이드 읽어보기/5. Android Architecture
이 내용은 Android Developer내용을 읽어보면서 정리한 내용이므로, 더 자세한 내용을 알고 싶으면 공식홈페이지에서 읽으면 됩니다!.! UI Layer UI Layer가 일단 무엇을 하는 계층인가? 사용자에게 보여지는 계층으로, 사용자에게 데이터를 보여주고 앱 상호작용을 담당한다고 보면 된다. 이전에 나는 MVVM 구조와 MVI구조에 대해서 많이 고민을 했었는데, Compose의 등장과 현재 보여주어야 하는 뷰를 하나의 상태로 관리한다는 점이 매력적이어서 이를 사용하기로 하였고, 좀 구현시에는 귀찮은 과정이 몇몇 존재하지만 더 깔끔하게 UI Layer을 구성할 수 있지 않을까라는 생각이 든다.. 내가 참고한 많은 게시글 중에 아래의 글이 기본적으로 도움이 많이 되었다. https://coding..
MVI에 대해서.
·
안드로이드 읽어보기/5. Android Architecture
mvi android라고 구글링 하면 양질의 자료들이 많다! 최근에 Android Developer의 권장 아키텍처의 설명을 보면 1. unidirection 2. state 3. immutable등의 키워드를 볼 수 있는데, 이게 나는 MVI를 설명하고 싶은 게 아닌가?라는 생각이 들었다. 그렇다면, 기존의 MVVM구조가 어떻길래 왜 MVI가 나오게 되나?? 근데 나는 MVVM구조와 MVI가 아주 다른 구조라고 생각하지 않는다. 기존에 ViewModel의 사용법에서 ViewModel의 책임을 분산시키고, 유저의 이벤트에 대한 반응을 직관적으로 관리하기 위함? 정도라고 생각이 드는데... 일단 한번 알아보자.. MVVM에서 ViewModel내에는 View에 표현해 주기 위한 데이터들이 매우 많을 수 있다..
MVVM이 무엇인가???
·
안드로이드 읽어보기/5. Android Architecture
사실 나는 MVP MVC에 대해서 어떤 것이라는 것만 알고 있고, 실제로 그런 코드를 본 적도 구현해 본 적도 없다. 그래서 MVVM이 당연한 것처럼 느껴지고 내가 알고 구현하는 방식이 MVVM인지 확신하기도 어렵기도 하다.. 내가 이해하고 있는 방향으로 MVVM이 무엇인가를 정리해 보도록 하겠다. 사실 ViewModel과 View(Activity, Fragment, Compose) 들은 UI Layer에 속한다. UI Layer의 역할은 1)Data Model로부터 데이터를 요청하여 그 데이터를 사용자에게 보여주는 역할을 하는 것이며, 2) 사용자와의 상호작용을 하는 것이다. 다음으로 우리가 익히 아는 Activity를 생각해보자. 일단 생명주기가 존재한다. 생성되고 뷰가 그려지고, 멈추고, 다시 켜지..
Android Architecture 어떻게 해야하는가?(1)
·
안드로이드 읽어보기/5. Android Architecture
이 내용은 Android Developer내용을 읽어보면서 정리한 내용이므로, 더 자세한 내용을 알고 싶으면 공식 홈페이지에서 읽으면 됩니다!.! 우선 내가 생각했던 아키텍쳐라 함은 MVVM이니 MVI이니 MVC니 .. 하는 것들이었는데, 이런 것들도 매우 중요하겠지만, 왜 이러한 아키텍처를 고려하여 만들어야 하는가가 주된 이 글의 주된 목적인 것 같다. Android Mobile App 우선 안드로이드 앱의 환경에 대해서 얘기하면서 시작한다. 1. 우리가 잘 하는 컴퓨터 내의 프로그램과 다르게 안드로이드 어플의 경우는 다양한 진입경로가 있다. 액티비티, 브로드캐스트, 등등 4대 컴포넌트가 있고 2. 안드로이드 OS에 의해서 메모리 관리에 의해 사용자의 의지와 무관하게 임의로 종료가 될 수 있다. 그래서..
리워크