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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yves Kalume
January 13, 2022
Programming
20
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
13
Dompting the Elephant: Making Sense of Gradle for Android Developers
yveskalume
0
48
Practical AI for Android Developers with Android Studio’s AI Agent
yveskalume
0
38
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
61
Traitement des annotations en Kotlin
yveskalume
1
43
Modern Android Architecture
yveskalume
1
110
GDSC Alumni retour d’experience
yveskalume
0
34
Other Decks in Programming
See All in Programming
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
150
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.7k
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
150
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
110
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
370
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
9
5.8k
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
290
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
480
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
180
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
620
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
190
The Curious Case for Waylosing
cassininazir
1
440
Skip the Path - Find Your Career Trail
mkilby
1
170
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
We Are The Robots
honzajavorek
0
290
Documentation Writing (for coders)
carmenintech
77
5.4k
It's Worth the Effort
3n
188
29k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
190
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
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 !