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
Declarative UI 도입을 향한 여정
Search
Yun Seungyong
September 22, 2020
Programming
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Declarative UI 도입을 향한 여정
* DroidKnight 2020 발표 자료입니다.
Yun Seungyong
September 22, 2020
More Decks by Yun Seungyong
See All by Yun Seungyong
Android개발을 더 잘 하려면? (MVVM, MVP, Clean Architecture)
devyunsy
0
35
Dependency Injection with Dagger2 for Android
devyunsy
0
32
Other Decks in Programming
See All in Programming
[Dev Group Paris Octobre 26] Agentforce, SIforce, Claudeforce, Slackbot… on s'y retrouve ?
nabondance
0
110
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
0
1.4k
AWS CDKのカスタムリソースでContinuum(旧Security Agent)を実装した話 | Implementing Continuum (formerly Security Agent) via AWS CDK Custom Resource
akihisaikeda
2
150
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
500
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
Next.js: The final boss of Web Performance
guaca
0
260
Workers Cache を知る
syumai
0
370
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
290
Findy - エンジニア向け会社紹介/Findy Company Deck
findyinc
6
400k
Featured
See All Featured
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
The SEO Collaboration Effect
kristinabergwall1
1
590
So, you think you're a good person
axbom
PRO
2
2.2k
Speed Design
sergeychernyshev
33
2.2k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
The Pragmatic Product Professional
lauravandoore
37
7.5k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
67k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Navigating Team Friction
lara
192
16k
Transcript
Speaker l Declarative UI 도입을 향한 여정 윤승용
None
Declarative UI ?
Declarative programming যڃ Ѿҗ ܳ ਗೞח Declarative UI 란?
Declarative UI programming যڃ UI ܳ ਗೞח Declarative UI 란?
UI = f(state) যڃ UI ܳ ਗೞח Declarative UI 란?
→ Container View A View B View C Container
Imperative UI 방식 Container View A View B
Imperative UI 방식 Container View A View B
Imperative UI 방식 Container View A View B
Container Container Imperative UI 방식
Imperative UI 방식 Container View C
View C Imperative UI 방식 Container View C
Imperative UI 방식 Container View C
Declarative UI 방식 Container View A View B
Declarative UI 방식 Container View A View B Container View
C
Imperative UI Declarative UI
Declarative UI 의 장점 적은 코드량 UI상태에만 집중 재사용성 업무
효율성
Diffing Rendering Etc..
Declarative UI framework/library
Declarative UI framework/library
2013 2017 2019 2014 Declarative UI framework/library
스쉐는 왜 Declarative UI 를 도입했을까?
Once upon a time UI 모듈화
None
None
✌Component✌
None
None
Trending User Product Like Related Catalogs Style Related Products Category
Trending Products
효율성 = 재사용성
효율성 = UI 모듈화
UI 모듈화
UI 모듈화
HorizontalList UI 모듈화
UI 모듈화
StyleCard Featured Keyword UI 모듈화
UI 모듈화
UI 모듈화
None
Android에서 구현?
Recycler View
Recycler View Adapter
Recycler View Adapter ViewType ViewHolder
Adapter ViewType RecyclerView ViewHolder
Vertical ↓
Horizontal→ Horizontal→ Vertical ↓
적은 코드량 UI상태에만 집중 재사용성 효율성
None
Declarative UI Tool 을 찾아서..
Jetpack Compose Litho Epoxy
NumberModel
1. 컴포넌트 정의 2. 컴포넌트를 활용한 화면 구성
Section Header 1. 컴포넌트 정의
Section Header 1. 컴포넌트 정의 - Title
Section Header 1. 컴포넌트 정의 - Title Item
Section Header 1. 컴포넌트 정의 - Title Item - Title
- TitleSize - backgroundColor
1. Declarative UI의 장점을 얻을 수 있는가? 2. 기존 프로젝트에
도입하기 쉬운가? 3. 학습 곡선이 낮은가?
Jetpack Compose
None
@Composable + functions
None
@Preview
None
None
* compose 0.1.0-dev14 기반으로 작성되었습니다
* compose 0.1.0-dev14 기반으로 작성되었습니다
* compose 0.1.0-dev14 기반으로 작성되었습니다
* compose 0.1.0-dev14 기반으로 작성되었습니다
Declarative UI 패턴의 장점 도입 용이성 * 발표자의 주관적인 평가입니다
학습 용이성
Litho
None
None
eed 장인
Litho - 렌더링 퍼포먼스 Async Layout Flatten UI
Litho - Android SDK와의 호환성 ViewRenderInfo @MountSpec
ӡزॿ Litho - 맥락 별 UI 정의
Litho - 맥락 별 UI 정의
Litho - 맥락 별 UI 정의
None
None
@Annotation Processor Component 스펙 실제 Component 클래스
@LayoutSpec object SectionHeaderSpec public final class SectionHeader extends Component @Annotation
Processor
DataDiffSection
DiffSection - DataDiffSection - SingleComponentSection DataDiffSection
None
None
None
None
None
None
None
Declarative UI 패턴의 장점 학습 용이성 도입 용이성 * 발표자의
주관적인 평가입니다
Airbnb Epoxy
None
RecyclerView RecyclerView.Adapter RecyclerView.ViewHolder
EpoxyRecyclerView EpoxyController EpoxyModel
@ModelView class SectionHeader public class SectionHeaderModel_ extends EpoxyModel @Annotation Processor
CustomView Databinding View holder
EpoxyModelGroup
ӡزॿ @ModelView class StyleCard : ViewGroup
ӡزॿ @ModelView class Header : ViewGroup @ModelView class StyleCard :
EpoxyModelGroup @ModelView class ImagePager : ViewGroup @ModelView class Description : ViewGroup @ModelView class Reactions : ViewGroup Header ImagePager Description Reactions
None
equals() hashCode()
None
None
None
None
Declarative UI 패턴의 장점 학습 용이성 도입 용이성 * 발표자의
주관적인 평가입니다
결론: Declarative UI 를 향한 여정 위에서
직접 맛 본 Declarative UI 후기 적은 코드량 UI상태에만 집중
재사용성 업무 효율성
None
직접 맛 본 Declarative UI 후기 적은 코드량 UI상태에만 집중
재사용성 업무 효율성
결국은 Compose
조금이라도 빨리 Declarative UI를 맛보고 싶다면? Epoxy
+ ⍺ 단방향 데이터 흐름
devussy/Declarative-UI-Sample ✉
[email protected]
감사합니다