DB를 사용하면서 Entity를 data class로 표현하는데, id를 자동생성되도록 했더니 두개의 entity 비교에 문제가 생겼다. 내가 원하는건, id를 제외한 내용의 비교. data class가 자동 생성해주는 equals()를 포기하고 내가 재정의 하기엔, 너무 말이 안되는거 같아서 한참을 헤매이다가 알아냄. data class가 자동생성해주는 equals()는 primary constructor에 정의된 properties만 사용한다. 위와 같이 정의되면, age에 상관없이 name만 비교가 된다. 알고보니, Kotlin…
[태그:] 안드로이드
안드로이드
Android: ViewModel & LiveData
ViewModel은 Android Architecture Component중 하나로 android jetpack라이브러리 형태로 지원한다. 앞서 얘기했듯이, MVVM 모델의 ViewModel을 구현하는데 사용된다. Activity, Fragment들이 UI Controller로서 XML과 함께 화면 rotation의 경우처럼 UI가 destroy-create되는 상황에서도, ViewModel은 data를 들고 완전히 finished 되기 전까지 유지하게 된다. ViewModel은 어쨌든 UI Activity나 Fragment에 대응하고 UI가 완전히 finished되면, 같이 destory되기 때문에 lifecycle의존도가 있고, lifecycle패키지 아래에 존재한다. 사용하려면,…
Android: MVVM & Android Architecture Components
viewmodel이나 livedata를 말하기전에 이게 어디서 튀어나온건지 알기위해 app architecture에 대해 알아야한다. 더불어 Android에서 지원하는 Architecture Components도 간단하게 알아보자. 이 부분에 있어 잘 설명된 문서가 있으니 이것을 참조해도 좋다. MVC 패턴 대부분 프로그램이 개발과정과 유지보수를 용이하게 하기위해 구조적 디자인패턴들을 이용한다. 여기서 가장 기본개념은 UI, DATA 그리고 비지니스 로직을 분리하는 것이다. 오랫동안 사랑받아온 디자인 패턴으로 MVC(model-view-controller)가 있다….
Android: Data binding basics
Data Binding은 2018년도 Jetpack 라이브러리의 일부로 소개되었다. 일단, 그 이전에 UI를 다루는 방식을 알아보자. 이전에는 코드내에서(보통 onCreate()나 onCreateView()) LayoutInflater를 이용하여 XML을 파싱 후 View 오브젝트로 변환하는 작업을 해야했다. UI를 구성하는 변환된 View 오브젝트는 트리형태로 되어있으며, 원하는 View를 얻어오려면 findViewById()등을 이용해 이 트리구조를 검색해야 가능했다. XML파싱도 검색도 모두 부하가 상당한 작업들이었다. 이를 개선하고자, Data Binding 라이브러리가…
유니티 안드로이드 최척화에 대한 고민
지금 작업중인게 최종적으로는 모바일, 1차로 안드로이드를 목표로 하기 때문에 최적화를 위한 고민이 생겼다. 몇가지를 찾아봤는데, 명쾌하게 정리된걸 못찾다가 Unity: Android Optimization Guide 라는 블로그를 찾았다. 제일 잘 정리된거 같아서 몇가지 추려 정리해보려한다. 1. 프로파일링 어디서든 개발시 최적화라면 프로파일링을 생각해야한다. 유니티도 당연히 이를 지원하며, 모바일도 SDK를 이용한 리모트 프로파일링도 가능한거 같다. 다만, 지금 작업이 완성과 거리가 먼…