선언형 UI가 대세임을 선언합니다
Compose 학습부터 실제 적용까지
이현우 Mathpresso Inc.
Android/React Native Developer
Compose, 그 시작
어떤 계기로 Compose를 시작했는가?
어떻게 공부를 했는가?
#Android Dev Challenge
#Android Dev Challenge
Compose 걸음마 떼기
Compose가 Stable Release 된 이후
Devfest Codelab과 같은 커뮤니티 스터디를 활용하여
Compose Codelab을 간단하게나마 훑어보기
QANDA에 도입된 Compose 코드와 디자인 시스템 코드를
활용하여 Compose UI/디자인 이해하기
Am I Stuck?
Compose로 하나의 앱을 만들어나갈 때
Compose로 하나의 기능 제작할 때
Compose Codelab 마칠 때
React Native
<->
Jetpack Compose
React Native 개발을 하면서 알게 된 지식 Jetpack Compose에서 사용되는 지식
사이드 프로젝트에 적용해보기
Why Compose?
Declarative UI/Recomposition
State Hoisting
선언형 UI
선언형 UI
State에 맞춰서 UI가 그려진다
개발자가 직접 State를 설정할 필요가 없어져
Human Error의 가능성이 현저히 떨어짐
Android Composable 함수들의 호출로 새로운 UI
Component가 만들어짐
빠르게 본인이 원하는 형태의 UI를 그릴 수 있음
Recomposition
Composable 함수를 구성하는 State가 변경될 때, Composable을 갱신시키는 것
Recomposition
Recomposition
Smart Recomposition
Smart Recomposition
Smart Recomposition이 보장되어있지 않다
@
Stable
Use
@
Stable annotation to make skippable state
@
Immutable,
@
StableMarker
Use
@
StableMarker annotations to make skippable state
State Hoisting
State
->
UI 공통적으로 사용하는 State는 최소 공통 조상 LCA 에게 할당
Side Effect
Declarative UI Function & Side Effect
선언형 UI
F STATE
=
UI
함수는 상태 STATE 에 따라 UI를 그려주는 액션을 취함
그렇다면…
F STATE
=
UI
그러면 UI를 그려주는 동작 이외의 것들은?
Side Effect
Composable 함수의 목적 UI 렌더링 이외의
앱 상태의 변경사항
React React Native 에서는?
React React Native 에서는?
학생들의 정보를 DataSource 서버, 로컬 저장소 등
에서 가져오기 위한 함수
React React Native 에서는?
classId가 변하는 경우에만 위의 함수를 호출한다 Dependency Key
Dependency Array가 비어있는 경우, UI Component가 올라왔을 때 한 번만 호출
React React Native 에서는?
UI Component가 화면에 올라올 때 함수가 호출됨
React React Native 에서는?
UI Component가 화면에서 안 보일 때 자동으로 함수가 종료됨
React React Native 에서는?
매 Re rendering Recomposition 마다 호출
그럼 Compose에서는?
함수 scope 내에서 suspend function 호출 가능
LaunchedEffect
useEffect에서 Dependency Array가 비어있는 경우
=>
Composable 함수가 처음 불릴 때 호출
LaunchedEffect
useEffect에서의 Dependency Array
=>
isSuccess, progress가
변경되면 내부 호출
DisposableEffect
isSuccess, progress가 변경될 때에만 호출
DisposableEffect
isSuccess, progress가 변경될 때에만 호출
Composable이 화면에서 안보일경우 자동으로 해제
SideEffect
매 Recomposition마다 호출함
이외에도
produceState
derivedStateOf
snapshotFlow
rememberCoroutineScope
Conclusion
And Then…
F STATE
=
UI
F STATE
=
UI
Compose로 UI 구현하기
Layout/Modifier/Animation
Style Design System
F STATE
=
UI
UI 상태 관리하기
State/State Hoisting/Architecture Layering
CompositionLocal
F STATE
=
UI
App 품질 관리/유지보수
Performance Recomposition/Stability
Side Effect/Architecture Layering
Testing/Accessibility
Compose Your Self
Compose, Your Development
이현우 Mathpresso Inc.
Android/React Native Developer

More Related Content

PDF
React native study
PPTX
[124] 하이브리드 앱 개발기 김한솔
PDF
React native development
PDF
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
PPTX
한양대학교 셔틀시스템 셔틀콕 개발기
PDF
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
PDF
React principle
PDF
웹 Front-End 실무 이야기
React native study
[124] 하이브리드 앱 개발기 김한솔
React native development
K모바일발표 120113 남들보다뛰어난앱만들기_공유용
한양대학교 셔틀시스템 셔틀콕 개발기
T12_1_김나람_웹 기술로 구축하는 모바일 애플리케이션 - React Native
React principle
웹 Front-End 실무 이야기

Similar to 선언형 UI가 대세임을 선언합니다 (20)

PDF
한발 앞서 배워보는 Xamarin overview
PDF
React 애플리케이션 아키텍처 - 아무도 알려주지 않아서 혼자서 삽질했다.
PPTX
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
PDF
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
PDF
Ionic으로 모바일앱 만들기 #1
PDF
Project anarchy로 3 d 게임 만들기 part_1
PPT
Working Effectively With Legacy Code - xp2005
PPTX
Beginning react native
PPT
카사 공개세미나1회 W.E.L.C.
PDF
코드잇-리액트-특강.pdf
PDF
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
PDF
3D 모델러 ADDIN 개발과정 요약
PDF
08 fragment 태블릿 대응
PDF
[React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내
PDF
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
PPTX
프론트엔드 개발자
PPTX
Eclipse RCP 1/2
DOCX
Ionic project guide
PDF
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
PDF
Modern PHP
한발 앞서 배워보는 Xamarin overview
React 애플리케이션 아키텍처 - 아무도 알려주지 않아서 혼자서 삽질했다.
2016년 #implude 안드로이드 단기속성 - 2. 간단한 화면 인터페이스 (+토스트)
200819 NAVER TECH CONCERT 07_신입 iOS 개발자 개발업무 적응기
Ionic으로 모바일앱 만들기 #1
Project anarchy로 3 d 게임 만들기 part_1
Working Effectively With Legacy Code - xp2005
Beginning react native
카사 공개세미나1회 W.E.L.C.
코드잇-리액트-특강.pdf
1.Create Project Sunshine - 시온고등학교 안드로이드 스터디
3D 모델러 ADDIN 개발과정 요약
08 fragment 태블릿 대응
[React-Native-Seoul] React-Native 초심자를 위한 실습위주의 간단한 소개 및 구현법 안내
Create App Easier With SVC Pattern - DroidKnights 2019 @Seoul
프론트엔드 개발자
Eclipse RCP 1/2
Ionic project guide
Softcon_하재권_Only javascript의 하이브리드 앱서버 도전기
Modern PHP
Ad

선언형 UI가 대세임을 선언합니다