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
Arquitetura para projetos Android
Search
José Caique Oliveira
June 03, 2017
Programming
270
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Arquitetura para projetos Android
Slides utilizados na apresentação sobre arquitetura no android day aracaju
José Caique Oliveira
June 03, 2017
More Decks by José Caique Oliveira
See All by José Caique Oliveira
Kotlin Flow
jcaiqueoliveira
0
140
Coroutines And Flow
jcaiqueoliveira
2
150
Testing your app
jcaiqueoliveira
0
340
Modularizando seu app
jcaiqueoliveira
0
91
Nova Api de Localização Android
jcaiqueoliveira
0
110
Arquitetura para android
jcaiqueoliveira
6
330
Kotlin por onde começar?
jcaiqueoliveira
1
120
Introdução ao Android
jcaiqueoliveira
1
110
Kotlin 1.1
jcaiqueoliveira
0
160
Other Decks in Programming
See All in Programming
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.6k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
430
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
330
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
巨大モノリシックアプリ モダン化大作戦
ktcryomm
1
1.2k
コードレビューのボトルネックを"する側"と"される側"の両面から解消する
yub0n
2
1.3k
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
33
14k
すこし踏み込む CancellationToken
htkym
2
1.6k
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
250
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
290
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
9.4k
iOSDCのペンライトを自動制御したい!
akkeylab
0
340
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.9k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Music & Morning Musume
bryan
48
7.4k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
260
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
440
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
290
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
840
Transcript
Arquitetura para projetos Android
Caique Oliveira Desenvolvedor Android @Stone
Trilhando uma jornada no Android
None
None
None
Eis que nasce sua aplicação
Como você pensa que foi feito
Como realmente é
None
Características ▷ Depende de frameworks ▷ Aplicação não portável ▷
View Inteligente ▷ God Model
Acoplamento
Problemas do acoplamento ▷ Difícil de manter ▷ Difícil de
testar ▷ Difícil de escalar
None
Problemas do acoplamento ▷ De quem realmente é a culpa
pelo problema? ▷ Como corrigir? ▷ Como garantir que não criou outros erros?
Como posso desacoplar minha aplicação?
Arquitetura de software ▷ Organização em camadas ▷ Evita dependências
▷ Escalável, Testável e de fácil entendimento
MVVM MVC VIPER Hexagonal MVP Etc
Arquitetura Limpa (aka clean)
None
None
Arquitetura Limpa ▷ Frameworks são detalhes(rest,banco,etc) ▷ Casos de Usos
são essenciais ▷ Entidades são essenciais
Arquitetura Limpa
O que se busca ▷ Depender o mínimo possível de
framework ▷ Depender de comportamentos(interface) ▷ Núcleo Testável
Como começar?
Defina Fronteiras
None
“ O núcleo da sua aplicação é importante o restante
deve ser descartável
“ Seu Json não é a sua informação
Conecte suas camadas ▷ Callbacks ▷ Programação reativa
None
None
Organize seus pacotes
Funcionalidade por pacote ▷ Fácil navegação ▷ Intenção explícita ▷
Fácil para achar dependências
Dificuldades ▷ Separar em camadas ▷ Escreve-se mais códigos ▷
Necessário cuidado com excesso de arquitetura
Concluindo ▷ Não há uma fórmula mágica ▷ Busque simplificar
seu projeto
Obrigado Slack Androiddevbr: caique
[email protected]
@jc_hobbit
Referências https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-ar chitecture.html https://speakerdeck.com/ubiratansoares/escaping-from-the-fr amework https://fernandocejas.com/2014/09/03/architecting-android-t he-clean-way/ https://vimeo.com/43612849