코들린
-
ViewModel에 대하여안드로이드 2023. 4. 17. 23:47
ViewModel은 왜 필요한가?MVVM의 관점으로 봤을 때 ViewModel은 View로 부터 독립적이며, View가 필요로 하는 데이터만을 소유한다. 안드로이드 앱 개발시에도 MVVM디자인 패턴을 적용하면 Activity나 Fragment같은 UI컨트롤러의 과도한 책임을 분담하여 클래스가 거대해지는 것을 방지하고, 유지보수, 재사용성, 그리고 테스트 등을 용이하게 만들어 준다. 구글에서도 앱 개발자들에게 MVVM패턴을 사용하도록 권장하고 있으며, MVVM관점의 ViewModel을 구현할 때 AAC ViewModel을 사용하면 좋다. ViewModel의 특징ViewModel은 Activity에서는 Activity가 완전히 종료될 때까지, 그리고 Fragment에서는 Fragment가 분리될 때까지 메모..
-
추상클래스와 인터페이스안드로이드 2023. 4. 17. 23:47
추상 클래스를 알아보기로 한 계기는 LiveData를 알아보면서 시작됐다. LiveData에 대하여MVVM을 학습하다 보면 데이터는 늘 LiveData를 사용한다. LiveData는 무엇일까? 안드로이드 디벨로퍼 사이트의 문서의 첫 설명에는 다음과 같이 설명하고 있습니다.LiveData는 관찰 가능한 데이터 홀더 클래스입니다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식합니다. 즉, 활동, 프래그먼트, 서비스 등 다른 앱 구성요소의 수명 주기를 고려합니다. 수명 주기 인식을 통해 LiveData는 활동 수명 주기 상태에 있는 앱 구성요소 관찰자만 업데이트합니다.즉, 앱의 구성요소의 LifeCycle 내에서 동작하고 LifeCycle이 종료되면 같이 삭제가 됩니다. 이러한 특성으로 ..
-
LiveData에 대하여안드로이드 2023. 4. 12. 21:26
MVVM을 학습하다 보면 데이터는 늘 LiveData를 사용한다. LiveData는 무엇일까? 안드로이드 디벨로퍼 사이트의 문서의 첫 설명에는 다음과 같이 설명하고 있습니다.LiveData는 관찰 가능한 데이터 홀더 클래스입니다. 관찰 가능한 일반 클래스와 달리 LiveData는 수명 주기를 인식합니다. 즉, 활동, 프래그먼트, 서비스 등 다른 앱 구성요소의 수명 주기를 고려합니다. 수명 주기 인식을 통해 LiveData는 활동 수명 주기 상태에 있는 앱 구성요소 관찰자만 업데이트합니다.즉, 앱의 구성요소의 LifeCycle 내에서 동작하고 LifeCycle이 종료되면 같이 삭제가 됩니다. 이러한 특성으로 인해 다음과 같은 이점들이 존재합니다.Live Data의 이점1. UI와 데이터 상태의 일치 보장L..
-
kotest 활용해보기2안드로이드 2023. 2. 12. 01:28
kotest에는 아래와 같은 테스트 스타일이 있다. 아래의 스타일 중 테스트하고자 하는 스타일에 맞춰 선택하면 된다.Test StyleInspired ByFun SpecScalaTestString SpecA Kotest originalShould SpecA Kotest originalDescribe SpecJavascript frameworks and RSpecBehavior SpecBDD frameworksFree SpecScalaTestWord SpecScalaTestFeature SpecCucumberExpect SpecA Kotest originalAnnotation SpecJUnit하나씩 알아보자! 주로 사용하게 될 스타일 몇가지를 알아보자.1. FunSpec가장 기본이 되는 스타일인듯하다. t..
-
kotest 활용해보기1 (라이브러리 적용하기)안드로이드 2023. 1. 28. 22:55
학습 이유 유닛테스트를 사용하지 않으면서 빌드를 하다보니 개발하는 시간이 상당히 길어진다.코드 수정 → 빌드 → UI조작 → 테스트 → 반복 글로만 봐도 귀찮음이 상당하다.또한, 기기마다 차이가 있지만 빌드 시간이 길어지면 흐름이 끊기는 경우들이 있었다.그래서 유닛테스트를 본격적으로 알아보려한다. 사실 junit을 알아보려 했지만 유닛테스트를 검색해보니 kotest가 더 kotlin스러운 테스트를 할 수 있는 녀석이라고 해서 학습하게 되었다. 의존성 추가android { .....(생략) testOptions { unitTests.all { useJUnitPlatform() } } } dependencies { ......(생략) // kotest 라이브러리 def KOTEST_VERSION = "5.5..