Compose에서 "donut-hole skipping" 란 무엇인가
2022. 8. 17. 22:06
안드로이드/UI
https://www.jetpackcompose.app/articles/donut-hole-skipping-in-jetpack-compose What is “donut-hole skipping” in Jetpack Compose? 🍩 Learn how Jetpack Compose is able to be smart during recompositions! www.jetpackcompose.app 해당 글은 해당 article을 번역한 글입니다. Recomposition Recomposition은 상태가 변경될 때 Composable 함수를 재호출하는 프로세스이다. Compose가 새 상태를 기반으로 재구성할 때 변경되었을 수 있는 함수 또는 람다만 호출하고 나머지는 건너 뛴다. 상태가 변경되지 않는 모든..
22/08/06 TIL
2022. 8. 6. 21:43
TIL
객체지향의 사실과 오해 읽는 중(~84P) 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법 복잡성을 줄이기 위한 두가지 차원 1. 구체적인 사물들 간의 공통점을 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것 2. 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것 책에서는 이상한나라의앨리스 내용을 바탕으로 객체지향에 나온 여러가지 개념을 빗대어 설명하고 있다. 위의 장면은 앨리스가 하트 여왕과 조우하는 장면이고 이 속에는 여왕을 비롯한, 왕, 공주, 왕자, 기사들과, 정원사들 그리고 토끼 등 수많은 등장인물이 있다. 이때 앨리스는 하트여왕을 보며 속으로 생각한다. '기..
MVC, MVP, MVVM, MVI 패턴
2022. 8. 2. 17:55
안드로이드/아키텍처
왜 아키택처를 사용해야 할까? 아주 단순히 버튼을 누르면 숫자를 업카운팅해주는 기능을 하는 화면을 구현한다고 한다면 하나의 Class에 View와 Data 처리를 한다고 해도 쉽게 구조를 파악할 수 있다. 하지만 여러 사용자가 이용하는 피드 게시판을 구현한다고 하면 어떠한가? 화면에 그려지는 뷰 수도 늘어나고, 데이터들을 외부로 가져와야 하며, 이를 각각 가공해서 뷰에 뿌려줘야 한다. 아마 하나의 클래스에서 이 모든 역할을 수행한다고 하면 생각만 해도 끔찍한 스파게티 코드의 향연이 눈 앞에 펼쳐질 것이다. 이처럼 점점 프로그래밍이 복잡해짐에 따라 각각 관심사 별로 구분이 필요해졌고 이에 따라 여러 아키택처 패턴이 출현하게 되었다. MVC (Model-View-Controller) MVP (Model-V..
Compose 생명주기
2022. 7. 31. 18:49
안드로이드/UI
JetPack Compose는 초기 컴포지션 시 처음으로 컴포저블을 실행할 때 컴포지션에서 UI를 기술하기 위해 호출하는 컴포저블을 추적한다. 그런 다음 앱 상태가 변경되면 리컴포지션을 한다. 리컴포지션은 Jetpack Compose가 상태 변경사항에 따라 컴포저블을 다시 실행한 다음 변경사항을 반영하도록 컴포지션을 업데이트 하는 것이다. 컴포지션은 초기 컴포지션을 통해서만 생성이 되고 리컴포지션을 통해서만 업데이트 될 수 있다. 컴포지션을 수정하는 유일한 방법은 리컴포지션을 통하는 것이다. 컴포저블은 컴포지션을 시작하고 0회 이상 재구성되고 컴포지션을 종료한다. 리컴포지션은 일반적으로 State 객체가 변경되면 트리거 된다. Compose는 이러한 객체를 추적하고 컴포지션에서 특정 State를 읽는 모..