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
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
110
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
90
Other Decks in Technology
See All in Technology
Meet AgentCore Identity Consent Portal
hironobuiga
2
150
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
270
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
360
20260929_AmazonGuardDutyの検出通知メールにAWS DevOpsAgentの調査結果を追加する
yhana
1
410
「とりあえず動く」の先へ。 AI時代のチーム開発と内部設計/2026-slsdays
slsops
0
100
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
1
310
Lambda MicroVMsは常駐サーバーの代わりに なるか? Kiro Crew を動かして検証してみた / Kiro Crew on Lambda MicroVMs
k_adachi_01
2
350
Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤
kitagawaz
0
370
行動するAIのためのオントロジー | DevRev — Encraft #26.pdf
dvrv_tknrszk
2
660
AWS FinOps Agent 結局何が得意なの?
siromi
0
230
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
290
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
1
200
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
470
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Designing Powerful Visuals for Engaging Learning
tmiket
1
580
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.8k
GraphQLとの向き合い方2022年版
quramy
50
15k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
520
How to Talk to Developers About Accessibility
jct
2
560
A Soul's Torment
seathinner
8
3.7k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
290
Paper Plane
katiecoart
PRO
4
53k
Evolving SEO for Evolving Search Engines
ryanjones
0
300
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