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
Facebook Litho
Search
Merab Tato Kutalia
May 04, 2017
Programming
120
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Facebook Litho
Droid Up 7.0 , 2017 talk about Facebook Litho
Merab Tato Kutalia
May 04, 2017
More Decks by Merab Tato Kutalia
See All by Merab Tato Kutalia
What's new in Android 14?
tatocaster
0
240
Migrate to Gradle version catalog and convention plugins
tatocaster
3
2k
Make Codebases Secure with OWASP
tatocaster
0
230
Secure Coding Standards
tatocaster
0
210
ტანგო ანდროიდთან
tatocaster
0
370
Adopting Huawei Mobile Services
tatocaster
0
100
Android UI Testing & Challenges
tatocaster
1
150
Reverse & Inject - droidcon
tatocaster
3
360
mobile DevOps
tatocaster
1
180
Other Decks in Programming
See All in Programming
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
Railsバージョンを4倍にした話
optim
0
960
S3 TablesのIcebergデータに、AIエージェントからアクセスしてみた / 20261016developersio2026joetsu-accessing-iceberg-in-s3tables-via-agent
kasacchiful
PRO
0
280
Zero-Tap Sign-In対応、結局何をすればいいの?
mitohato14
0
1.7k
AmebaブログはKMPから卒業します
kmars0605
0
330
Seven New Principles of Software Engineering
yegor256
0
460
Enforcing Your Architecture with Unit Tests in the AI Era (Swift Connection X)
steliosf
PRO
1
150
Будущее локальных LLM – Алексей Голобурдин, PythoNN
sobolevn
0
110
AIで開発が速くなった先で、開発チームは何を目指すか
shihochan
1
2k
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
230
AI Augmentation Techniques with Liberty
ivargrimstad
1
390
Featured
See All Featured
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
121
120k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
1
300
How to Talk to Developers About Accessibility
jct
2
610
Documentation Writing (for coders)
carmenintech
77
5.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
630
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Making Projects Easy
brettharned
120
6.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
Test your architecture with Archunit
thirion
2
2.5k
Music & Morning Musume
bryan
48
7.5k
Transcript
Facebook Litho A declarative UI framework for Android
Tato Kutalia tatocaster tatocaster.me github.com/tatocaster twitter.com/@tatokutalia
Litho’s History
Litho’s History iOS Platform, now known as Texture(Pinterest).
Litho Appeared @ Facebook F8 primarily built to implement complex
scrollable UIs based on RecyclerView.
Litho - View flattening - Declarative - AsyncLayout - Recycling
- Good Debugging Tools a declarative framework for building efficient UIs
Litho uses Yoga, also by Facebook cross-platform layout engine Everything
is a component immutable inputs knowns as Props React Terminology
Litho Core Elements State Props LayoutSpec - groups existing components
together in an immutable layout tree. MountSpec - defines a component that can render views or drawables.
Litho Recycler
Litho Touch and Click @LayoutSpec class ListItemSpec { @OnCreateLayout static
ComponentLayout onCreateLayout( ComponentContext c, @Prop(optional = true, resType = ResType.DIMEN_OFFSET) int shadowRadius, @Prop int color, @Prop String title, @Prop String subtitle) { return Column.create(c) .paddingDip(ALL, 16) .backgroundColor(color) .child( Text.create(c) .text(title) .textSizeSp(40)) .child( Text.create(c) .text(subtitle) .textStyle(ITALIC) .textSizeSp(20)) .clickHandler(ListItem.onClick(c)) .build(); } @OnEvent(ClickEvent.class) static void onClick(ComponentContext c, @FromEvent View view, @Prop OnListItemClickListener listener) { listener.onListItemClick(view); }
Litho Custom View
Litho Install // Litho compile 'com.facebook.litho:litho-core:0.2.0' compile 'com.facebook.litho:litho-widget:0.2.0' provided 'com.facebook.litho:litho-annotations:0.2.0'
annotationProcessor 'com.facebook.litho:litho-processor:0.2.0' // SoLoader compile 'com.facebook.soloader:soloader:0.2.0' // Optional // For debugging debugCompile 'com.facebook.litho:litho-stetho:0.2.0' //stetho itself compile 'com.facebook.stetho:stetho:1.5.0'
Litho Summary and Demo