Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The New Era of Android Development - IDCamp x K...
Search
Ahmad Arif Faizin
May 28, 2023
Programming
0
56
The New Era of Android Development - IDCamp x Kadin 2023
Presented for Offline Training Android Dev @Medan
Ahmad Arif Faizin
May 28, 2023
Tweet
Share
More Decks by Ahmad Arif Faizin
See All by Ahmad Arif Faizin
The Secret Project Team Who First Launch Android OS - The Untold Story
arifaizin
0
12
The Journey to Keep Strive as a Tech Talent - The Untold Story
arifaizin
0
1
Focus Group Discussion (FGD) Penyempurnaan Kurikulum Program Studi Informatika
arifaizin
0
20
[Indocomtech Event] Intro to AI: Essential Basics and Practical Guide to Get You Started - Coding Camp 2025 powered by DBS Foundation
arifaizin
0
3
BDD 2024 - Automate Dependency Management in a Scalable Way with Gradle Version Catalog
arifaizin
0
140
Tips & Trik Menghabiskan Task dengan Automa
arifaizin
0
15
The Opportunity of a Digital World - Dicoding Career Fair 2023
arifaizin
0
76
Bringing Machine Learning in Android with MediaPipe - DroidJam 2023
arifaizin
2
680
Building Mobile Apps for People | IDCamp x KADIN 2023
arifaizin
0
57
Other Decks in Programming
See All in Programming
Flatt Security XSS Challenge 解答・解説
flatt_security
0
700
HTML/CSS超絶浅い説明
yuki0329
0
190
盆栽転じて家具となる / Bonsai and Furnitures
aereal
0
1.6k
Androidアプリのモジュール分割における:x:commonを考える
okuzawats
1
270
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
180
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
4
1.1k
カンファレンス動画鑑賞会のススメ / Osaka.swift #1
hironytic
0
160
rails newと同時に型を書く
aki19035vc
5
700
AIレシート読み取り機能をRuby on Rails on AWSで実現するLLMにまつわるアレコレ / AI-based receipt reading function powered by LLM on Ruby on Rails on AWS
moznion
3
120
ドメインイベント増えすぎ問題
h0r15h0
2
560
Amazon Nova Reelの可能性
hideg
0
180
Swiftコンパイラ超入門+async関数の仕組み
shiz
0
170
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Optimising Largest Contentful Paint
csswizardry
33
3k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
The Cult of Friendly URLs
andyhume
78
6.1k
Unsuck your backbone
ammeep
669
57k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Music & Morning Musume
bryan
46
6.3k
Statistics for Hackers
jakevdp
797
220k
Facilitating Awesome Meetings
lara
51
6.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
Transcript
The New Era of Android Development Ahmad Arif Faizin Curriculum
Developer
None
None
Android Studio
Android Studio Bot 🤖
Device Mirroring 🪞 • File > Settings > Tools >
Device Mirroring • Enable mirroring of physical Android devices. • Bye bye Visor~
App Quality Insights 🪲
New UI 😎
Kotlin
None
Explicit Fields ✨
Kotlin DSL 🪶 • All in one language • More
readable • Better compile-time checking
Hints & Documentation 💖
Version Catalog 📖 // build.gradle.kts plugins { alias(libs.plugins.com.android.application) alias(libs.plugins.org.jetbrains.kotlin.android) id("com.google.devtools.ksp")
} ... dependencies { implementation(libs.core.ktx) implementation(libs.appcompat) } // libs.version.toml [versions] com-android-application = "8.1.0-alpha11" org-jetbrains-kotlin-android = "1.8.0" core-ktx = "1.9.0" appcompat = "1.4.1" [libraries] core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "core-ktx" } appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } [plugins] com-android-application = { id = "com.android.application", version.ref = "com-android-application" } org-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "org-jetbrains-kotlin-android" }
Kapt to KSP 🫣
Android Jetpack
Architecture Libraries and Guidance 🗝
Recommendation 👌 https://developer.android.com/topic /architecture/recommendations
Modularization 🪱
Dependency Injection 💉
None
Jetpack Compose
None
Look at the new Project Template 👀
Jetpack Compose is Android’s recommended modern toolkit for building native
UI. It simplifies and accelerates UI development on Android. Quickly bring your app to life with less code, declarative Kotlin APIs, powerful tools, and backward compatible.
Construct UI by describing what, not how.
XML Vs Compose 💥 <!-- activity_main.xml --> <FrameLayout> <RecyclerView android:id=”@+id/listNews”
... /> <TextView android:id=”@+id/textError”.../> </FrameLayout> // Activity.kt val listNews = findViewById(R.id.listNews) val textError = findViewById(R.id.textError) if (data.size > 0){ listNews.visibility = View.VISIBLE textError.visibility = View.GONE } else { listNews.visibility = View.GONE textError.visibility = View.VISIBLE } // Activity.kt @Composable fun NewsScreen(newsList: List<News>) { if (newsList.size > 0){ Column { for (title in newsList){ Text(text = title) } } } else { Text(text = "No Data!") } }
Material You
None
Look (again) at the new Project Template 👀👀
M2 vs M3 💥
None
None
None
Conclusion 🎁 d.android.com/modern-android-development
“All you need is the plan, the road map, and
the courage to press on to your destination.” Earl Nightingale
Thank you