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
95
Métricas: lo bueno, lo feo y lo malo
nhpatt
0
230
Working Effectively with Legacy Code
nhpatt
0
400
Performance myths in android
nhpatt
2
260
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
速いWebフレームワークを作る
yusukebe
5
1.7k
Introducing ReActionView: A new ActionView-compatible ERB Engine @ Rails World 2025, Amsterdam
marcoroth
0
690
Navigation 2 を 3 に移行する(予定)ためにやったこと
yokomii
0
270
奥深くて厄介な「改行」と仲良くなる20分
oguemon
1
540
実用的なGOCACHEPROG実装をするために / golang.tokyo #40
mazrean
1
280
RDoc meets YARD
okuramasafumi
4
170
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
Navigating Dependency Injection with Metro
zacsweers
3
960
Improving my own Ruby thereafter
sisshiki1969
1
160
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
470
Namespace and Its Future
tagomoris
6
700
今から始めるClaude Code入門〜AIコーディングエージェントの歴史と導入〜
nokomoro3
0
170
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
YesSQL, Process and Tooling at Scale
rocio
173
14k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Designing for humans not robots
tammielis
253
25k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Rails Girls Zürich Keynote
gr2m
95
14k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
What's in a price? How to price your products and services
michaelherold
246
12k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
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