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
Code architecture for Android apps
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Catalin Morosan
November 12, 2015
Technology
100
0
Share
Code architecture for Android apps
Talk given at Devfest Romania 2015. (
http://devfest.ro
)
Catalin Morosan
November 12, 2015
More Decks by Catalin Morosan
See All by Catalin Morosan
ReactiveX Basics
kaciula
0
84
Other Decks in Technology
See All in Technology
FASTでAIエージェントを作りまくろう!
yukiogawa
4
180
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
180
最大のアウトプット術は問題を作ること
ryoaccount
0
250
Network Firewall Proxyで 自前プロキシを消し去ることができるのか
gusandayo
0
160
開発チームとQAエンジニアの新しい協業モデル -年末調整開発チームで実践する【QAリード施策】-
kaomi_wombat
0
280
AI時代のシステム開発者の仕事_20260328
sengtor
0
320
OCI技術資料 : 証明書サービス概要
ocise
1
7.2k
20260323_データ分析基盤でGeminiを使う話
1210yuichi0
0
210
Even G2 クイックスタートガイド(日本語版)
vrshinobi1
0
190
Databricks Appsで実現する社内向けAIアプリ開発の効率化
r_miura
0
230
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
140
TUNA Camp 2026 京都Stage ヒューリスティックアルゴリズム入門
terryu16
0
650
Featured
See All Featured
Everyday Curiosity
cassininazir
0
180
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
The Curse of the Amulet
leimatthew05
1
11k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
860
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
500
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
[SF Ruby Conf 2025] Rails X
palkan
2
880
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
170
Become a Pro
speakerdeck
PRO
31
5.9k
How to Talk to Developers About Accessibility
jct
2
170
Navigating Team Friction
lara
192
16k
We Have a Design System, Now What?
morganepeng
55
8.1k
Transcript
Code architecture for complex apps Catalin Morosan
In the beginning
In the beginning
After x client change requests
After x client change requests
Architecture
Architecture • achieve a high-level separation of concerns by layering
Architecture • achieve a high-level separation of concerns by layering
• group of best practices in code
Architecture goals
Architecture goals • high maintainability
Architecture goals • high maintainability • low technical debt
Architecture goals • high maintainability • low technical debt •
independent of frameworks ◦ UI, database, network
Architecture goals • high maintainability • low technical debt •
independent of frameworks ◦ UI, database, network • testable ◦ loose coupling
Architecture goals • high maintainability • low technical debt •
independent of frameworks ◦ UI, database, network • testable ◦ loose coupling • not over-engineered
Architectures
Architectures • Clean Architecture ◦ Uncle Bob
Architectures • Clean Architecture ◦ Uncle Bob • Hexagonal Architecture
(Ports & Adapters) ◦ Alistair Cockburn
Architectures • Clean Architecture ◦ Uncle Bob • Hexagonal Architecture
(Ports & Adapters) ◦ Alistair Cockburn • Flux Architecture ◦ Facebook
Architectures • Clean Architecture ◦ Uncle Bob • Hexagonal Architecture
(Ports & Adapters) ◦ Alistair Cockburn • Flux Architecture ◦ Facebook • VIPER Architecture ◦ mutual mobile (iOS)
Design Patterns (Mini Architectures)
Design Patterns (Mini Architectures) • MVC ◦ Model View Controller
Design Patterns (Mini Architectures) • MVC ◦ Model View Controller
• MVP ◦ Model View Presenter
Design Patterns (Mini Architectures) • MVC ◦ Model View Controller
• MVP ◦ Model View Presenter • MVVM ◦ Model View ViewModel
Design Patterns (Mini Architectures) • MVC ◦ Model View Controller
• MVP ◦ Model View Presenter • MVVM ◦ Model View ViewModel • Repository
The architecture proposal
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
None
Package by feature vs by layer
Package by feature vs by layer • Horizontal slicing ◦
activities, views, presenters
Package by feature vs by layer • Horizontal slicing ◦
activities, views, presenters • Vertical slicing ◦ per feature / user story
Sample project github.com/kaciula/archiman
None
None
None
Balance • abstract complexity • over-engineering VS • YAGNI •
KISS
Thanks google.com/+CatalinMorosan