체계적으로 색상, 폰트, 모양(shape)을 지정하는 방법 • Scaffold등 Material Design Component의 Composable 사용 방법 • Dark mode대응 • MDC-Android Compose Theme Adapter 8 Build beautiful Material Design apps with Jetpack Compose
새로운 디자인 언어(design language)의 구현이 기존 View 구조에서는 어려웠음 • 전체 앱을 Compose 기반으로 바꾸는 작업을 작년부터 진행 중 • 많은 양의 feature request / feedback으로 함께 미래를 만들어 가고 있음 • “다시는 이전의 View 기반으로 돌아가고 싶지 않다” • Ref: d.android.com/stories/apps/mercari 27 사례: Mercari
8개의 다양한 샘플 프로젝트 goo.gle/compose-samples • 코드랩 모음 goo.gle/compose-codelabs • 각종 가이드문서 goo.gle/compose-docs (Foundation 파트, 그 중에서도 Thinking in Jetpack Compose!)
Stack, SeekBar → Slider, EditText → TextField • Learn Jetpack Compose By Example https://github.com/vinaygaba/Learn-Jetpack-Compose-By-Example • Joe Birch Blog - Exploring Jetpack Compose https://joebirch.co/ • 그리고, 여러분.. 33 그외 비 Google 자료 (초급)
Compose State Explained Series by Zach Klippenstein https://dev.to/zachklipp/series/12895 • Tivi by Chris Banes https://github.com/chrisbanes/tivi • 그리고.. 34 그외 비 Google 자료 (중급)
빠르게 그려줌 ◦ 부모 트리의 영향을 받는 개발 composable의 size/padding을 변경하는 경우에 추천 ◦ 구조적인 변경(orientation, positioning)엔 적합하지 않음 • Modifier.onSizeChanged ◦ 데이터 로딩 등을 위해 사이즈 정보가 필요한 경우에 추천 ◦ MutableState 전달에 의해 그린다면 한 프레임씩 지연이 생김에 주의 • WithConstraints → 같은 프레임에 그리지만 subcomposition이 일어남 ◦ 구조적인 변경에 추천
Ref: d.android.com/jetpack/compose/mental-model#skips • 어디서 재구축이 어떻게 일어나는 지 이해하지 않아도 괜찮음. Compose compiler/runtime이 알아서.. 39 중요 개념: Position Memoization