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 라이브러리가…
Kotlin: Delegated Properties
Kotlin 공식 문서를 보고 정리했다. 공식 문서 참조. property들의 값을 get(), set()으로 구현해야 하는 경우, 같은 형태의 property가 필요하면, 각 property마다 get(), set()을 구현해야 한다. 이런 경우, 한번만 구현해서 중복을 제거하면 좋을 것이다. 이는 delegate를 통해 가능해진다. 예를 들면 다음과 같은 케이스들이 존재한다. lazy properties : 값을 처음 가져올 때, 생성 및 계산이 이루어짐. observable…
Android Stuido와 IntelliJ C drive 공간확보
윈도우즈가 올라간 C드라이브는 80기가짜리 작은 ssd를 쓰고 있는데, 프로그램을 아무리 다른 드라이브에 설치해도 이놈들이 자꾸만 C 드라이브 특히 user directory를 사용하고 있는거다. C:\user\username 디렉토리 위치를 다른 드라이브로 바꾸면 원천적인 해결이 되겠지만, 윈도우즈는 내문서, 사진, 음악, 비디오 다운로드같은 기본 디렉토리만 변경 가능하도록 지원하고 있다. 유저폴더안에 ‘.’으로 시작하는 숨김폴더가 얼마나 많고 크기가 큰데! 해당 폴더가 맥이나 리눅스의…
.gitignore for IntelliJ
코틀린 미니 계산기 프로젝트를 github에 업로드 했는데, 다시 받아보니 IntelliJ에서 빌드가 안되는거다. 아… JVM의존성도 있고, 빌드 설정이 git에 전혀 반영되지 않아서 intelliJ 설정들도 올렸다. 그런데, 이게 애매하단 말이지. IntelliJ가 생성해준 “.idea”폴더와 “projectname.iml” 파일을 올렸는데, 이걸 version control system으로 관리하는게 맞는걸까? 빌드 세팅은 분명 필요하긴한데 흠. 찾아보니, ItelliJ 제작사의 가이드가 있다. https://intellij-support.jetbrains.com/hc/en-us/articles/206544839-How-to-manage-projects-under-Version-Control-Systems 요약하자면 필요한 파일만 골라서…