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
Opinionated Android
Search
Javier Gamarra
November 21, 2014
Programming
0
130
Opinionated Android
Charla sobre buenas prácticas de Android realizada en la Codemotion 2014.
Javier Gamarra
November 21, 2014
Tweet
Share
More Decks by Javier Gamarra
See All by Javier Gamarra
2000 katas later @cylicon
nhpatt
0
110
2000 katas later @CAS15
nhpatt
0
96
Métricas: lo bueno, lo feo y lo malo
nhpatt
0
240
Working Effectively with Legacy Code
nhpatt
0
400
Performance myths in android
nhpatt
2
270
How *not* to design an SDK
nhpatt
0
48
Angular2 @SC Toledo
nhpatt
0
56
Cambiar una empresa con juegos ágiles
nhpatt
0
250
RxJava in practice
nhpatt
1
330
Other Decks in Programming
See All in Programming
Combinatorial Interview Problems with Backtracking Solutions - From Imperative Procedural Programming to Declarative Functional Programming - Part 1
philipschwarz
PRO
0
100
Eloquentを使ってどこまでコードの治安を保てるのか?を新人が考察してみた
itokoh0405
0
3.2k
Module Harmony
petamoriken
2
520
仕様がそのままテストになる!Javaで始める振る舞い駆動開発
ohmori_yusuke
8
4.6k
How Software Deployment tools have changed in the past 20 years
geshan
0
2.1k
r2-image-worker
yusukebe
1
180
CSC509 Lecture 11
javiergs
PRO
0
310
Java_プロセスのメモリ監視の落とし穴_NMT_で見抜けない_glibc_キャッシュ問題_.pdf
ntt_dsol_java
0
220
Honoを技術選定したAI要件定義プラットフォームAcsimでの意思決定
codenote
0
250
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
110
Rails Girls Sapporo 2ndの裏側―準備の日々から見えた、私が得たもの / SAPPORO ENGINEER BASE #11
lemonade_37
2
190
[SF Ruby Conf 2025] Rails X
palkan
0
330
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
How to Ace a Technical Interview
jacobian
280
24k
Statistics for Hackers
jakevdp
799
230k
Optimizing for Happiness
mojombo
379
70k
Designing Experiences People Love
moore
142
24k
Thoughts on Productivity
jonyablonski
73
4.9k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Documentation Writing (for coders)
carmenintech
76
5.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Transcript
MADRID · NOV 21-22 · 2014 Opinionated Android Javier Gamarra
@nhpatt
MADRID · NOV 21-22 · 2014 ¿Quién? Javier Gamarra /
@nhpatt Tech Lead, @agilecyl, android/java/javascript
MADRID · NOV 21-22 · 2014 ¿Por qué? • Para
los novatos • Para los cómodos • Por dar una opinión (IMHO)
MADRID · NOV 21-22 · 2014 IDE Android Studio
MADRID · NOV 21-22 · 2014 Build tool Gradle.
MADRID · NOV 21-22 · 2014 Build tool
MADRID · NOV 21-22 · 2014 Código Java bien escrito:
Findbugs Checkstyle PMD/CPD Ignorad los field naming conventions del core de Android
MADRID · NOV 21-22 · 2014 Código • Clean Code
• SOLID
MADRID · NOV 21-22 · 2014 Buenas prácticas de Android
Usad Android Lint Huid de clases Application
MADRID · NOV 21-22 · 2014 Arquitectura No es un
juego de niños Pero hay buenas propuestas: • Clean Architecture • Arquitectura Hexagonal
MADRID · NOV 21-22 · 2014 Y en UI Separad
concerns! • MVP • MVP/MVVM Incluso podéis plantearos si usar fragments
MADRID · NOV 21-22 · 2014 Librerías Hay unas pocas
librerías… Con muchas recomendaciones... Pero algunas imprescindibles
MADRID · NOV 21-22 · 2014 Inyección de dependencias •
Usaréis alguna librería de inyección de dependencias, no?
MADRID · NOV 21-22 · 2014 Inyección de dependencias •
Roboguice • Dagger (+ButterKnife)
MADRID · NOV 21-22 · 2014 Buenas prácticas de Android
Ignorad el título de las guías “Avoid dependency injection frameworks“ Usad Proguard (vale, hay problemas)
MADRID · NOV 21-22 · 2014 APIs REST • Async
Tasks
MADRID · NOV 21-22 · 2014 APIs REST • Volley
• Retrofit
MADRID · NOV 21-22 · 2014 APIs REST public interface
GitHubService { @GET("/users/{user}/repos") List<Repo> listRepos(@Path("user") String user); } vs StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener() { … }
MADRID · NOV 21-22 · 2014 Carga de imágenes •
Universal Image Loader • Picasso
MADRID · NOV 21-22 · 2014 Jake Wharton! https://github.com/JakeWharton/u2020 •
Dagger • ButterKnife • Retrofit • Picasso • OkHttp • RxJava • Timber • Madge • Scalpel • Hugo • StaggeredGrid • SDK Manager Plugin
MADRID · NOV 21-22 · 2014 BD? • SQL •
SQL con content providers?
MADRID · NOV 21-22 · 2014 BD? • ORMLite •
SugarORM • GreenDAO • ADAFramework • ActiveAndroid ORMLite / SugarORM
MADRID · NOV 21-22 · 2014 Comunicación entre servicios... Es
un dolor comunicar información entre servicios, actividades, async tasks… Bus de eventos al rescate!
MADRID · NOV 21-22 · 2014 Comunicación EventBus Otto
MADRID · NOV 21-22 · 2014 Comunicación eventBus.post(new AnyEventType(42)); eventBus.register(this);
public void onEvent(AnyEventType event) {...}; vs eventBus.post(new AnyEventType(42)); @Subscribe public void eventAvailable(AnyEventType event) {}
MADRID · NOV 21-22 · 2014 Keep an eye on
• Reactive programming en Android con RxJava • Echadle un ojo
MADRID · NOV 21-22 · 2014 Keep an eye on
RxJava(+[RxAndroid]) + Retrofit = Bliss eventAPI.login(). flatMap(status -> api.getUserStatus()). subscribe(onComplete, onError); api.login(new Callback<ResponseBody>() { @Override public void success(...) { api.getUserStatus(new Callback<UserStatus>() { @Override public void success() {
MADRID · NOV 21-22 · 2014 Testing TESTEAD!
MADRID · NOV 21-22 · 2014 Testing Escuchad a este
tío, en serio.
MADRID · NOV 21-22 · 2014 Testing JUnit + •
JMock • PowerMock • Mockito
MADRID · NOV 21-22 · 2014 Testing Robolectric + Espresso
Robotium/Calabash Appium
MADRID · NOV 21-22 · 2014 Testing Cómo siempre, echadle
un ojo a Square • Spoon • AssertJ Jenkins, plz.
MADRID · NOV 21-22 · 2014 Pls, Android guys Soporte
para Java 8? Mientras tanto tendremos que vivir con retrolambda
MADRID · NOV 21-22 · 2014 Brace yourselves Otros lenguajes!
• Kotlin?
MADRID · NOV 21-22 · 2014 Madrid? Soy nuevo en
Madrid Hay un meetup de Xamarin Dónde está nuestro meetup?
MADRID · NOV 21-22 · 2014 Preocupate por mejorar
MADRID · NOV 21-22 · 2014 ¿Qué leer/escuchar? Weekly Newsletter
Android Developers Backstage
MADRID · NOV 21-22 · 2014 ¿A quién seguir? -
world • Jake Wharton • Cyril Mottier • Mark Murphy • Romain Guy • Reto Meier
MADRID · NOV 21-22 · 2014 ¿A quién seguir? -
local • flipper83 • pedro_g_s • akelael • fernando_cejas
MADRID · NOV 21-22 · 2014 Libros The Busy Coder's
Guide to Android Development
MADRID · NOV 21-22 · 2014 Links • vogella •
buenas prácticas de futurice • muchas charlas!
MADRID · NOV 21-22 · 2014 Feedback tinyurl.com/codemotionandroid
MADRID · NOV 21-22 · 2014 ¿Dudas o preguntas?
MADRID · NOV 21-22 · 2014 Opinionated Android Javier Gamarra
@nhpatt