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
La modularisation dans le développement Android
Search
Yves Kalume
January 13, 2022
Programming
22
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
20
Dompting the Elephant: Making Sense of Gradle for Android Developers
yveskalume
0
53
Practical AI for Android Developers with Android Studio’s AI Agent
yveskalume
0
50
Designing scalable Compose APIs
yveskalume
1
160
Demystifying Memory Leaks in Android
yveskalume
2
150
L’essentiel de Git et Github en max 20 minutes
yveskalume
1
63
Traitement des annotations en Kotlin
yveskalume
1
43
Modern Android Architecture
yveskalume
1
110
GDSC Alumni retour d’experience
yveskalume
0
35
Other Decks in Programming
See All in Programming
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
140
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
Building an Out-of-Order CPU
latte72
1
780
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
410
「新人AI禁止のその先へ ― 参加と協働のステップアップ」Vibe TOKYO, AI & CRAFT / 2026年8月21日
kentarowada
0
100
Family mrubyの進捗
kishima
1
120
仕様駆動開発による爆速プロダクト開発 / Bakusoku Spec Driven Development
kobakei
0
110
Heart of Swift Concurrency
koher
0
750
iOSDC2026登壇資料.pdf
riofujimon
0
160
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
0
280
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
320
アクセシビリティから考える情報設計
high_g_engineer
0
380
Featured
See All Featured
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
ラッコキーワード サービス紹介資料
rakko
1
4.9M
Docker and Python
trallard
47
4.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
We Have a Design System, Now What?
morganepeng
55
8.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
10
1k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
690
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
500
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
850
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 !