본문 바로가기

아키텍처

(2)
[안드로이드] Kotlin sealed class로 여러 클래스들을 보다 분명하게, 유연하게 활용하기 기존에 MVP 아키텍처 패턴으로 짜여진 프로젝트를 빌드업하면서 몇가지 애로사항이 생겼다. Presenter에서 로직을 수행 후 뷰를 업데이트하기 위한 코드를 최대한 작은 단위로 한정해서, 서로 제약사항이 생기지 않도록 구현하고 있었는데, 문제는 여기서 각 뷰 단위를 업데이트하기 위한 코드가 배로 많아지고, UI가 어떤 코드를 거쳐 업데이트 되는지 한 눈에 파악하기가 어려웠다. 수행하고자 하는 코드를 파라미터의 종류에 따라 구분지을 수는 없을까? 그리고 이를 하나의 함수로 통일시켜 사용할 수 있을까? 특정 함수에 사용하고자 하는 클래스들을 제한해 사용할 수 있을까? 이런 물음들을 Kotlin의 sealed class를 활용해 상당부분 해결할 수 있었다. 1. Sealed Class란 무엇인가? Sealed..
[안드로이드] MVVM 아키텍처로 간단한 계산기 만들기 MVVM을 초기단계부터 파서 좀 익숙해지고자 하는 마음에 계산기를 떠올렸고, 이를 MVVM 아키텍처를 이용해 구현하고자 했다. 사실 MVVM의 강점을 살린다기보단 MVVM의 형태와 Databinding을 활용해 로직을 짤 때 어떠한 방식으로 활용이 가능한지 알아볼 수 있는 과제였던듯. 간단한 순서 1. app 레벨 gradle에 Databinding 활성화 - kotlin-kapt plugin설정이 들어가있지 않다면 최상단 부분에 apply plugin: 'kotlin-kapt' 를 추가해주어야 함. android { ... dataBinding { enabled = true } ... } 2. 메인 레이아웃의 databinding 설정 ... 3. ViewModel의 설정 - 양방향 바인딩을 적용할 O..