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 Kadin 2023
Search
Ahmad Arif Faizin
May 28, 2023
Programming
0
38
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
BDD 2024 - Automate Dependency Management in a Scalable Way with Gradle Version Catalog
arifaizin
0
74
The Opportunity of a Digital World - Dicoding Career Fair 2023
arifaizin
0
27
Bringing Machine Learning in Android with MediaPipe - DroidJam 2023
arifaizin
2
550
Building Mobile Apps for People | IDCamp x KADIN 2023
arifaizin
0
45
Adaptive Layout for Any Screen with Jetpack Compose [Dicoding Developer Conference]
arifaizin
0
360
Convert Figma Design to Compose Code with Relay - DevFest Bandung 2022
arifaizin
0
820
Deep Dive in Compose Layout, Lazy Layout, and Material Design 3 - Compose Camp x Juara Android
arifaizin
1
390
Membangun Modern App dengan Jetpack & Android Architecture Component - SIGMATECH
arifaizin
0
53
Storing in Android. The new Way.
arifaizin
0
110
Other Decks in Programming
See All in Programming
GitHub Actionsで泣かないためにやっておきたい設定 / Recommended GHA settings to avoid crying
pinkumohikan
3
520
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
360
Goのmultiple errorsについて (2024年4月版)
syumai
1
300
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
160
educure_カリキュラム生操作マニュアル.pdf
linew_official
0
640
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
260
Git Rebase
bkuhlmann
11
1.6k
コードレビューで学ぶ!Kotlinオブジェクト指向デザインパターン
akkie76
2
190
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
200
コーンフレークから始める モデリング会話入門
ogurotakayuki
0
340
FigmaとPHPで作る1ミリたりとも表示崩れしない最強の帳票印刷ソリューション
ttskch
42
18k
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
170
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
266
39k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
How to train your dragon (web standard)
notwaldorf
72
5.1k
Building Applications with DynamoDB
mza
88
5.6k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
13
1.5k
The Power of CSS Pseudo Elements
geoffreycrofte
59
5k
Web Components: a chance to create the future
zenorocha
305
41k
Building Adaptive Systems
keathley
30
1.9k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
From Idea to $5000 a Month in 5 Months
shpigford
377
45k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
243
20k
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