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
La modularisation dans le développement Android
Search
Yves Kalume
January 13, 2022
Programming
18
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
La modularisation dans le développement Android
Yves Kalume
January 13, 2022
More Decks by Yves Kalume
See All by Yves Kalume
Bringing AI to Android With Gemini
yveskalume
0
9
Dompting the Elephant: Making Sense of Gradle for Android Developers
yveskalume
0
40
Practical AI for Android Developers with Android Studio’s AI Agent
yveskalume
0
28
Designing scalable Compose APIs
yveskalume
1
150
Demystifying Memory Leaks in Android
yveskalume
2
140
L’essentiel de Git et Github en max 20 minutes
yveskalume
1
58
Traitement des annotations en Kotlin
yveskalume
1
38
Modern Android Architecture
yveskalume
1
110
GDSC Alumni retour d’experience
yveskalume
0
32
Other Decks in Programming
See All in Programming
AIエージェントと協働するCLI開発 — BunとOpenClawで学んだこと
yoshikouki
1
240
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.1k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
430
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.3k
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
120
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
550
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
さぁV100、メモリをお食べ・・・
nilpe
0
130
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
230
A2UI という光を覗いてみる
satohjohn
1
120
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.9k
Featured
See All Featured
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
580
How to build a perfect <img>
jonoalderson
1
5.6k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
190
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
Into the Great Unknown - MozCon
thekraken
41
2.6k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
140
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Transcript
La modularisation dans le développement Android Yves Kalume Lead, GDSC
Esisalama Lubumbashi
Modularisation,quid ?
App -> manifest -> Java -> src -> data ->
ui -> home -> HomeActivity.kt -> HomeViewModel.kt ... -> res -> layout -> activity_home.xml -> activity_search.xml -> item_content.xml
“It is not enough for code to work.” - Uncle
Bob
None
:app
Modulariser Décomposer une grosse application en modules, qui peuvent être
développés et améliorés indépendamment
App -> java ... -> HomeActivity -> HomeViewModel -> res
-> layout -> activity_home.xml -> ... Search -> java ... -> SeachActivity -> SearchViewModel -> res -> layout -> activity_search.xml -> ... plugins { id 'com.android.application' … } dependencies { implementation project(":search") … } plugins { id 'com.android.library' … }
Avantages
Maintenable et Scalable
:module1 :module2 :module3
Speed up build
App module1 App module2 module3
Testable & Reusable
App module1 App module2 module3
Dynamic delivery (feature module)
App :fonctionnalité A :fonctionnalité B :premium
Bonnes pratiques
Layer modularization UseCases,Enitity (RepositoryInterface) Repositories,DataSources,DTO Views,ViewModels
Gestion des dépendances • implementation Vs api • Dettes techniques
moduleA moduleB implementation project(":moduleA") implementation("com.lorem.lib:1.0") api("com.lorem.lib:1.0") • Dependances circulaire moduleA moduleB X Module1 build.gradle Module2 build.gradle Module3 build.gradle
Modularisation,quand ?
Maintenant ! Mais calmons nos ardeurs 👀
Merci !