Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Opinionated android

4,678 views

Published on

Charla sobre buenas prácticas de Android realizada en la Codemotion 2014.

Puedes seguirme en twitter en @nhpatt

Published in: Technology

Opinionated android

  1. 1. MADRID · NOV 21-22 · 2014 Opinionated Android Javier Gamarra @nhpatt
  2. 2. MADRID · NOV 21-22 · 2014 ¿Quién? Javier Gamarra / @nhpatt Tech Lead, @agilecyl, android/java/javascript
  3. 3. MADRID · NOV 21-22 · 2014 ¿Por qué? ● Para los novatos ● Para los cómodos ● Por dar una opinión (IMHO)
  4. 4. MADRID · NOV 21-22 · 2014 IDE Android Studio
  5. 5. MADRID · NOV 21-22 · 2014 Build tool Gradle.
  6. 6. MADRID · NOV 21-22 · 2014 Build tool
  7. 7. MADRID · NOV 21-22 · 2014 Código Java bien escrito: Findbugs Checkstyle PMD/CPD Ignorad los field naming conventions del core de Android
  8. 8. MADRID · NOV 21-22 · 2014 Código ● Clean Code ● SOLID
  9. 9. Buenas prácticas de Android Usad Android Lint MADRID · NOV 21-22 · 2014 Huid de clases Application
  10. 10. MADRID · NOV 21-22 · 2014 Arquitectura No es un juego de niños Pero hay buenas propuestas: ● Clean Architecture ● Arquitectura Hexagonal
  11. 11. MADRID · NOV 21-22 · 2014 Y en UI Separad concerns! ● MVP ● MVP/MVVM Incluso podéis plantearos si usar fragments
  12. 12. MADRID · NOV 21-22 · 2014 Librerías Hay unas pocas librerías… Con muchas recomendaciones... Pero algunas imprescindibles
  13. 13. Inyección de dependencias ● Usaréis alguna librería de inyección de dependencias, no? MADRID · NOV 21-22 · 2014
  14. 14. MADRID · NOV 21-22 · 2014 Inyección de dependencias ● Roboguice ● Dagger (+ButterKnife)
  15. 15. 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
  16. 16. MADRID · NOV 21-22 · 2014 APIs REST ● Async Tasks
  17. 17. MADRID · NOV 21-22 · 2014 APIs REST ● Volley ● Retrofit
  18. 18. 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() { … }
  19. 19. MADRID · NOV 21-22 · 2014 Carga de imágenes ● Universal Image Loader ● Picasso
  20. 20. 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
  21. 21. MADRID · NOV 21-22 · 2014 BD? ● SQL ● SQL con content providers?
  22. 22. MADRID · NOV 21-22 · 2014 BD? ● ORMLite ● SugarORM ● GreenDAO ● ADAFramework ● ActiveAndroid ORMLite / SugarORM
  23. 23. Comunicación entre servicios... Es un dolor comunicar información entre servicios, actividades, async tasks… MADRID · NOV 21-22 · 2014 Bus de eventos al rescate!
  24. 24. MADRID · NOV 21-22 · 2014 Comunicación EventBus Otto
  25. 25. 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) {}
  26. 26. Keep an eye on ● Reactive programming en Android con RxJava MADRID · NOV 21-22 · 2014 ● Echadle un ojo
  27. 27. Keep an eye on RxJava(+[RxAndroid]) + Retrofit = Bliss MADRID · NOV 21-22 · 2014 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() {
  28. 28. MADRID · NOV 21-22 · 2014 Testing TESTEAD!
  29. 29. MADRID · NOV 21-22 · 2014 Testing Escuchad a este tío, en serio.
  30. 30. MADRID · NOV 21-22 · 2014 Testing JUnit + ● JMock ● PowerMock ● Mockito
  31. 31. MADRID · NOV 21-22 · 2014 Testing Robolectric + Espresso Robotium/Calabash Appium
  32. 32. Testing Cómo siempre, echadle un ojo a Square ● Spoon ● AssertJ MADRID · NOV 21-22 · 2014 Jenkins, plz.
  33. 33. MADRID · NOV 21-22 · 2014 Pls, Android guys Soporte para Java 8? Mientras tanto tendremos que vivir con retrolambda
  34. 34. MADRID · NOV 21-22 · 2014 Brace yourselves Otros lenguajes! ● Kotlin?
  35. 35. MADRID · NOV 21-22 · 2014 Madrid? Soy nuevo en Madrid Hay un meetup de Xamarin Dónde está nuestro meetup?
  36. 36. MADRID · NOV 21-22 · 2014 Preocupate por mejorar
  37. 37. MADRID · NOV 21-22 · 2014 ¿Qué leer/escuchar? Weekly Newsletter Android Developers Backstage
  38. 38. MADRID · NOV 21-22 · 2014 ¿A quién seguir? - world ● Jake Wharton ● Cyril Mottier ● Mark Murphy ● Romain Guy ● Reto Meier
  39. 39. MADRID · NOV 21-22 · 2014 ¿A quién seguir? - local ● flipper83 ● pedro_g_s ● akelael ● fernando_cejas
  40. 40. Libros The Busy Coder's Guide to Android Development MADRID · NOV 21-22 · 2014
  41. 41. MADRID · NOV 21-22 · 2014 Links ● vogella ● buenas prácticas de futurice ● muchas charlas!
  42. 42. MADRID · NOV 21-22 · 2014 Feedback tinyurl.com/codemotionandroid
  43. 43. ¿Dudas o preguntas? MADRID · NOV 21-22 · 2014
  44. 44. MADRID · NOV 21-22 · 2014 Opinionated Android Javier Gamarra @nhpatt

×