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
Navigation in Multi-Modular Projects
Search
Valery
September 19, 2019
Programming
0
510
Navigation in Multi-Modular Projects
Valery
September 19, 2019
Tweet
Share
More Decks by Valery
See All by Valery
GitHub Actions для Android
valeroncho
0
180
Other Decks in Programming
See All in Programming
タイミーにおけるデータの利用シーンと データ基盤の挑戦
marufeuille
4
3.1k
コードレビューと私の過去と未来
jxmtst
0
160
標準ライブラリの動向とイテレータのパフォーマンス
makki_d
3
190
Re:PandasAI:生成AIがデータ分析業務にもたらすパラダイムシフト【増補改訂版】
negi111111
1
740
Composing an API the *right* way (Droidcon New York 2024)
zsmb
2
540
CSC509 Lecture 02
javiergs
PRO
0
160
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
5
220
XP2024 っていう国際会議に行ってきたよの記 / XP2024 Conference Report
bonotake
4
150
Rails 8 Frontend: 10 commandments & 7 deadly sins in 2025
yshmarov
1
580
"型"のあるRailsアプリケーション開発 / Typed Rails application development
sinsoku
8
2.2k
フロントエンドの標準仕様をどう追っているか / How I follow the frontend standards specs
petamoriken
2
170
NANIMACHI
naokiito
0
930
Featured
See All Featured
The Cult of Friendly URLs
andyhume
76
6k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Designing for Performance
lara
604
68k
Faster Mobile Websites
deanohume
304
30k
Bash Introduction
62gerente
608
210k
Building an army of robots
kneath
302
42k
Building Better People: How to give real-time feedback that sticks.
wjessup
360
19k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
Bootstrapping a Software Product
garrettdimon
PRO
304
110k
BBQ
matthewcrist
84
9.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
37
1.7k
Transcript
Navigation in Multi-Modular Projects
The problems • Circular dependencies between modules • Dependencies between
classes from different features • Hard to change the navigation framework Droidcon Vienna 2019 1
What I wanted • Independent features • Easy to use
navigation in multi-modular projects • Not wired with any frameworks Droidcon Vienna 2019 2
The Idea Droidcon Vienna 2019 3
Droidcon Vienna 2019 4 Sample App
Sample App Droidcon Vienna 2019 5
App Structure Droidcon Vienna 2019 6
App Structure Droidcon Vienna 2019 7
Droidcon Vienna 2019 8
Droidcon Vienna 2019 9 Questions Module
Questions Module Structure Droidcon Vienna 2019 10
Questions Module UI Droidcon Vienna 2019 11
Questions Module Navigation Interface Droidcon Vienna 2019 12
Questions Module Questions Fragment Droidcon Vienna 2019 13
Droidcon Vienna 2019 14 Question Module
Question Module Structure Droidcon Vienna 2019 15
Question Module UI Droidcon Vienna 2019 16
Question Module Navigation Interface Droidcon Vienna 2019 17
Question Module Question Fragment Droidcon Vienna 2019 18
Question Module Passing Arguments Droidcon Vienna 2019 19
Droidcon Vienna 2019 20 Result Module
Result Module Structure Droidcon Vienna 2019 21
Result Module Navigation Interface Droidcon Vienna 2019 22
Result Module Navigation Interface Droidcon Vienna 2019 23
Result Module Wrong Answer Fragment Droidcon Vienna 2019 24
Droidcon Vienna 2019 25 App Module
App Module Structure Droidcon Vienna 2019 26
App Module Main Activity Layout Droidcon Vienna 2019 27
App Module Main Activity Droidcon Vienna 2019 28
App Module Navigator Droidcon Vienna 2019 29
Droidcon Vienna 2019 30 Navigation
App Module Navigator Droidcon Vienna 2019 31
Navigation Navigation Graph Droidcon Vienna 2019 32
Navigation Open Question Screen Droidcon Vienna 2019 33
Navigation Open Question Screen Droidcon Vienna 2019 34
Navigation Open Right Answer Screen Droidcon Vienna 2019 35
Navigation Open Right Answer Screen Droidcon Vienna 2019 36
Navigation Open Wrong Answer Screen Droidcon Vienna 2019 37
Navigation Open Wrong Answer Screen Droidcon Vienna 2019 38
Navigation Open All Questions Screen Droidcon Vienna 2019 39
Navigation Open All Questions Screen Droidcon Vienna 2019 40
Navigation Try Again Droidcon Vienna 2019 41
Droidcon Vienna 2019 42
Dynamic Features Droidcon Vienna 2019 43 • Reduce APK size
• On demand delivery
Dynamic Features How modules are connected Droidcon Vienna 2019 44
Droidcon Vienna 2019 45 The First Implementation
Dynamic Features The easiest way Droidcon Vienna 2019 46
Dynamic Features UI Droidcon Vienna 2019 47
Dynamic Features App Module Structure Droidcon Vienna 2019 48
Dynamic Features Navigation Interface Droidcon Vienna 2019 49
Dynamic Features Leaderboard Module Droidcon Vienna 2019 50
Dynamic Features App’s Navigation Graph Droidcon Vienna 2019 51
Dynamic Features App’s Navigation Graph Droidcon Vienna 2019 52
Droidcon Vienna 2019 53
Droidcon Vienna 2019 54
Dynamic Features App Structure Droidcon Vienna 2019 55
Droidcon Vienna 2019 56 Leaderboard Api Module
Leaderboard Api Module Structure Droidcon Vienna 2019 57
Leaderboard Api Module Navigation Interface Droidcon Vienna 2019 58 The
old one The new one
Leaderboard Api Module Leaderboard Proxy Fragment Layout Droidcon Vienna 2019
59
Leaderboard Api Module Leaderboard Proxy Fragment Droidcon Vienna 2019 60
Leaderboard Api Module Leaderboard Proxy Fragment Droidcon Vienna 2019 61
Leaderboard Api Module Module Binder Droidcon Vienna 2019 62
Leaderboard Api Module Leaderboard Binder Initializer Droidcon Vienna 2019 63
Droidcon Vienna 2019 64 Leaderboard Module
Leaderboard Module Structure Droidcon Vienna 2019 65
Leaderboard Module Leaderboard Module Binder Droidcon Vienna 2019 66
Leaderboard Module Local Leaderboard Navigation Droidcon Vienna 2019 67
Leaderboard Module Leaderboard Fragment Droidcon Vienna 2019 68
Leaderboard Module Leader Fragment Droidcon Vienna 2019 69
Droidcon Vienna 2019 70 Leaderboard Navigation
Leaderboard Navigation Base Navigator Droidcon Vienna 2019 71
Leaderboard Navigation Base Navigator Droidcon Vienna 2019 72
Leaderboard Navigation Navigation Graph Droidcon Vienna 2019 73
Leaderboard Navigation Navigator Droidcon Vienna 2019 74
Droidcon Vienna 2019 75
Droidcon Vienna 2019 76
Droidcon Vienna 2019 77 Nothing Is Perfect
Notes Save The Binder Between Configuration Changes Droidcon Vienna 2019
78
Notes Set Primary Navigation Fragment Droidcon Vienna 2019 79
Notes ProGuard + Reflection Droidcon Vienna 2019 80
Links GitHub Droidcon Vienna 2019 81 http://bit.ly/2kyMBDp
Links Medium Droidcon Vienna 2019 82 http://bit.ly/2lEsow8
Droidcon Vienna 2019 83 Thank you! ValeryPonomarenko iamvaleroncho