Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Opinionated Android

Opinionated Android

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

Javier Gamarra

November 21, 2014
Tweet

More Decks by Javier Gamarra

Other Decks in Programming

Transcript

  1. MADRID · NOV 21-22 · 2014 ¿Quién? Javier Gamarra /

    @nhpatt Tech Lead, @agilecyl, android/java/javascript
  2. MADRID · NOV 21-22 · 2014 ¿Por qué? • Para

    los novatos • Para los cómodos • Por dar una opinión (IMHO)
  3. MADRID · NOV 21-22 · 2014 Código Java bien escrito:

    Findbugs Checkstyle PMD/CPD Ignorad los field naming conventions del core de Android
  4. MADRID · NOV 21-22 · 2014 Buenas prácticas de Android

    Usad Android Lint Huid de clases Application
  5. MADRID · NOV 21-22 · 2014 Arquitectura No es un

    juego de niños Pero hay buenas propuestas: • Clean Architecture • Arquitectura Hexagonal
  6. MADRID · NOV 21-22 · 2014 Y en UI Separad

    concerns! • MVP • MVP/MVVM Incluso podéis plantearos si usar fragments
  7. MADRID · NOV 21-22 · 2014 Librerías Hay unas pocas

    librerías… Con muchas recomendaciones... Pero algunas imprescindibles
  8. MADRID · NOV 21-22 · 2014 Inyección de dependencias •

    Usaréis alguna librería de inyección de dependencias, no?
  9. 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)
  10. 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() { … }
  11. MADRID · NOV 21-22 · 2014 Carga de imágenes •

    Universal Image Loader • Picasso
  12. 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
  13. MADRID · NOV 21-22 · 2014 BD? • SQL •

    SQL con content providers?
  14. MADRID · NOV 21-22 · 2014 BD? • ORMLite •

    SugarORM • GreenDAO • ADAFramework • ActiveAndroid ORMLite / SugarORM
  15. 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!
  16. 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) {}
  17. MADRID · NOV 21-22 · 2014 Keep an eye on

    • Reactive programming en Android con RxJava • Echadle un ojo
  18. 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() {
  19. MADRID · NOV 21-22 · 2014 Testing JUnit + •

    JMock • PowerMock • Mockito
  20. MADRID · NOV 21-22 · 2014 Testing Cómo siempre, echadle

    un ojo a Square • Spoon • AssertJ Jenkins, plz.
  21. MADRID · NOV 21-22 · 2014 Pls, Android guys Soporte

    para Java 8? Mientras tanto tendremos que vivir con retrolambda
  22. MADRID · NOV 21-22 · 2014 Madrid? Soy nuevo en

    Madrid Hay un meetup de Xamarin Dónde está nuestro meetup?
  23. MADRID · NOV 21-22 · 2014 ¿A quién seguir? -

    world • Jake Wharton • Cyril Mottier • Mark Murphy • Romain Guy • Reto Meier
  24. MADRID · NOV 21-22 · 2014 ¿A quién seguir? -

    local • flipper83 • pedro_g_s • akelael • fernando_cejas
  25. MADRID · NOV 21-22 · 2014 Links • vogella •

    buenas prácticas de futurice • muchas charlas!