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
DevFest Uyo—Jetpack compose: Game changer for b...
Search
Love
November 13, 2021
Programming
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DevFest Uyo—Jetpack compose: Game changer for building Modern Android UI
Love
November 13, 2021
More Decks by Love
See All by Love
From Views to Compose: A Smooth Migration Journey
lamouresparus
0
20
Introduction to Kotlin Multiplatform: Write Once, Run Everywhere
lamouresparus
0
410
Override Kotlin Property Getters and Setters
lamouresparus
0
150
Get started with the Gemini API in Android apps (client SDK)
lamouresparus
1
340
Code Surgery: Refactoring for a Healthy App
lamouresparus
0
61
Information gathering
lamouresparus
0
110
Code Surgery: Refactoring for a Healthy App
lamouresparus
0
130
Managing Technical Writing Projects
lamouresparus
0
140
DEVFEST BANJUL 2023: "Relay: The Future of Design to Code Workflows"
lamouresparus
0
240
Other Decks in Programming
See All in Programming
APNsからLive Activityを開始する話
yumnumm
0
170
contenteditable と日本語入力に向き合う
colorful12
0
200
ハーネス設計入門 〜 基礎知識の整理から実務へのステップアップ 〜
kinopeee
28
33k
Web Framework Benchmark Battle 2026, Any%
a_matsuda
2
2.3k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
phperだってパンチカードでコーディングしたい
o0h
PRO
0
340
すこし踏み込む CancellationToken
htkym
2
1.7k
AI主導のプログラミング学習アプリを作ってみた
econanringo
0
180
JIS keyboard support in Omarchy
lef237
0
120
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
2
650
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
Featured
See All Featured
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
Making the Leap to Tech Lead
cromwellryan
135
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Everyday Curiosity
cassininazir
0
360
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Unsuck your backbone
ammeep
672
58k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Transcript
Jetpack Compose: Game changer for building Modern Android UI Love
Sparus O’tudor Android Engineer, FrontendLabs Uyo
What is Jetpack Compose? Holla Jetty Packy😊
Jetpack Compose is a modern declarative UI Toolkit to simplify
and accelerate native Android UI development.
What ever happened to our famous XML?🤔
Different Languages 30+ thousands lines of code Cognitive Overhead Multiple
Files Deprecated Code Boilerplate Codes Multiple layers of inheritance Problems with the Traditional View System
UI logic and definition are completely Separate Uses XML Satic
Layout Definition Kotlin/Java Dynamic Logic & Behaviour Completely Separate Generates a lot of boilerplate codes
A Quick Look at Jetpack Compose
Jetpack Compose favours Composition over Inheritance is a Human has
a Composition Inheritance
Declarative UI Focus on the “WHAT” and not the “HOW”
Jetpack Compose is a function of State Anytime the “state“
changes the “compose UI” changes also.
@Preview @Composable setContent{} Compose Preview Material Theme
Composable Functions • Annotated with @Composable • @Composable informs the
compiler that the function is intended to convert data into UI. • Can accept parameters • Returns nothing
Composable Functions
“Composable functions can only be called in the context of
another compose function...”
setContent{} • The setContent block defines the activity's layout where
we call composable functions. • The content becomes the root view of the activity. • More like setContentView() in XML.
setContent{}
Material Theme • An implementation of Material Design. • Define
the applications theme with its respective colors, shapes, font, etc. • Can be customized. • Mostly the root element of the screen.
Material Theme
Modifier • An ordered, immutable collection of modifier elements that
decorate or add behavior to Compose UI elements. • Modifiers can be chained. • Their chaining order is important.
Modifier
Layouts Column Row Box Constraint Layout
Column
Row
Box
Say Goodbye to RecyclerView Welcome LazyRow and LazyColumn 🤩
Managing Lists In Compose • Compose makes it easy to
create lists. • These composables render only the elements that are visible on screen.
LazyRow A LazyRow is a horizontally scrolling list that only
composes and lays out the currently visible items.
LazyColumn A LazyColumn is a vertically scrolling list.
LazyVerticalGrid • A LazyColumn is a vertically scrolling grid. •
It accepts the number of grid items in one row or the minimum width of one item. • Unstable API.
LazyVerticalGrid
More Components • Button • Image • Icons, etc.
Ready to take a deep dive?
Additional Resources • Jetpack Compose Tutorial on developer.android • Jetpack
Compose basics Codelab • Under the hood of Jetpack Compose • Get started with Jetpack Compose • Jetpack Compose basics | Workshop
Questions?
Thank You!