Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
선언형 UI가 대세임을 선언합니다
Search
HyunWoo Lee
April 01, 2023
Programming
1.1k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
선언형 UI가 대세임을 선언합니다
Compose 학습부터 실제 적용까지
HyunWoo Lee
April 01, 2023
More Decks by HyunWoo Lee
See All by HyunWoo Lee
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
150
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
180
Navigating Dependency Injection with Metro
l2hyunwoo
1
500
How Android Uses Data Structures Behind The Scenes
l2hyunwoo
1
830
Understanding Kotlin Multiplatform (Busan)
l2hyunwoo
0
120
Understanding Kotlin Multiplatform
l2hyunwoo
0
410
파급효과: From AI to Android Development
l2hyunwoo
0
410
선언형 UI에서의 상태관리
l2hyunwoo
0
670
선언형 UI를 학습할 때 알아둬야하는 키워드들
l2hyunwoo
0
570
Other Decks in Programming
See All in Programming
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
7
13k
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.8k
JAWS-UG 東京支部が始める、JAWS-UG支部コラボ / JAWS-UG lunchtime LT Collaboration
y0hgi
0
180
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
490
すこし踏み込む CancellationToken
htkym
2
1.6k
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
6.1k
Webの地図
yosuke_furukawa
PRO
6
5k
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
410
iOSDC2026登壇資料.pdf
riofujimon
0
200
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.4k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
290
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
330
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
510
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Producing Creativity
orderedlist
PRO
348
41k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
610
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
380
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
460
Into the Great Unknown - MozCon
thekraken
41
2.8k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Transcript
선언형 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