SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
Valencia Android Developer Group
Sponsor
Colaboradores
Participa en el sorteo
Hashtag del evento
#VADG #io17
Del FreeStyle al MVP
Juanjo Marti
Índice
● ¿ Quién soy ?
● ¿ Quienes somos ?
● Cómo empezamos en Sportmaniacs Android APP
● Salida a Producción
● Tiempo para el refactor
● Situación Actual
● Futuro.
¿ Quién soy ?
¿Quienes somos?
Web* Backend MarketingProducto*Diseño*
Android*
Equipo Android
Luis El Wiski
Junior Developer
Jordi
Becario
NMH - Developer
Cómo empezamos en sportmaniacs
● Definición del modelo de trabajo (Agile, Waterfall)
● Definición software (Jira, Bitbucket, Confluences, Trello... )
○ Jira
○ Git ( Feature branches )
○ Bitbucket
○ Confluence
○ Jenkins
● Definición del producto
● Configuración del proyecto de Android.
Configuración del proyecto de Android
● Videos de Youtube.
● Charlas.
● Documentación.
● Librerías.
● Libros
● GitHub
● StackOverFlow
● Google
Versión Pre
● MVP
● MVVM
● Dagger 2
● Retrofit
● Picasso
● RxJava
● RxAndroid
● Observers
● ButterKnife
● GreenDao
● Sqlite
● LeakCanary
● Clean Architecture
● Repository
● okHttp
● Test Unitarios
● Espresso
● Roboelectric
● Crashlytics
● EventBus
● DataBinding
● Analytics
● Google Play Services
● Notifications
Versión 1.0
● Retrofit
● ButterKnife*
● Picasso
● Espresso
● Junit
● Analytics
● Estructura de clases organizada por
pantallas.
Problemas versión 1.0
● Difícil de testear
● Mucho código repetido por toda la aplicación
● Spaghetti code
● Difícil / Imposible trasladar el conocimiento al equipo.
Llega el momento del Refactor
○ MVVM
○ MVP
MVP
● Menor curva de aprendizaje
● No depende de librerías externas
● Más Documentación
Youtube
● Pantalla Login y Password
● Ejemplo MVP Antonio Leiva
● Demo ante el equipo de Sportmaniacs
● Comienza el refactor.
Hackro
https://goo.gl/eMThh4
Refactor - MVP
http://www.goxuni.com/673883-applying-mvp-in-android/
Ejemplo y Demo al equipo.
● Organizar vistas en paquetes
○ domain
○ ui
● Agrupar paquetes con interfaces
● Trabajar con los listener como
respuesta a los eventos.
● Comunicación con la vista y con
el interactor
● Pasamos la vista en el constructor
● No aparece Android por ninguna
parte.
● Tenemos aisladas las
funcionalidades.
● En el presenter añadimos la
lógica necesaria para el
comportamiento de la vista.
● Acceso a API, BDD, etc… lo
hacemos desde los interactors y
le pasamos el contenido al
presenter que bajo cierta lógica
modificará la vista.
Problemas que nos podemos encontrar
● ¿ Qué hacemos con el SharedPreferences ? ¿Cómo lo gestionamos?
● ¿ Qué hacemos con los extras que vienen en los intents ? ¿ Bundle ?
● RecyclerView y sus adapters. Son Vista, son Presenter, son Interactors.
Situación actual
//TODO LIST
● Terminar el refactor
● Mejorar la cobertura de la APP
● Trabajar con Espresso
● Introducir Dagger para Inyectar Dependencias
● RxJava
● Integrar algún sistema de Continuous Delivery
● Traducciones
● Performance
● etc etc etc...
Preguntas ???
Gracias por venir
Twitter: @Lasecun
Play Store: Itram Games
Mail: jmveyrat@gmail.com

Más contenido relacionado

La actualidad más candente

El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutosRoberto Segura
 
Join biz10 (lighting talk 5 minutes)
Join biz10 (lighting talk   5 minutes)Join biz10 (lighting talk   5 minutes)
Join biz10 (lighting talk 5 minutes)joinbiz10
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolSalvador Mendoza
 
Mi primera aplicación en Android usando Scrum
Mi primera aplicación en Android usando ScrumMi primera aplicación en Android usando Scrum
Mi primera aplicación en Android usando ScrumGDG Lima
 
gvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferencegvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferenceAlberto Apellidos
 
Desarollo Multimedia Android
Desarollo Multimedia AndroidDesarollo Multimedia Android
Desarollo Multimedia AndroidGDG Lima
 
Videos en Drupal 7 - Exposicion UCV
Videos en Drupal 7 - Exposicion UCVVideos en Drupal 7 - Exposicion UCV
Videos en Drupal 7 - Exposicion UCVGust Alva
 
Adtg open lima formato
Adtg open lima   formatoAdtg open lima   formato
Adtg open lima formatoGDG Lima
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Roberto Segura
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomlaRoberto Segura
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKJosé Ignacio Álvarez Ruiz
 
Html5 - de donde venimos y a donde vamos
Html5 - de donde venimos y a donde vamosHtml5 - de donde venimos y a donde vamos
Html5 - de donde venimos y a donde vamosGDG Lima
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependenciaAdrián Paredes
 

La actualidad más candente (19)

El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
 
Join biz10 (lighting talk 5 minutes)
Join biz10 (lighting talk   5 minutes)Join biz10 (lighting talk   5 minutes)
Join biz10 (lighting talk 5 minutes)
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktool
 
Mi primera aplicación en Android usando Scrum
Mi primera aplicación en Android usando ScrumMi primera aplicación en Android usando Scrum
Mi primera aplicación en Android usando Scrum
 
Working with a design system
Working with a design systemWorking with a design system
Working with a design system
 
Virtual dub
Virtual dubVirtual dub
Virtual dub
 
gvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG ConferencegvSIG Mini workshop @ 6th gvSIG Conference
gvSIG Mini workshop @ 6th gvSIG Conference
 
Desarollo Multimedia Android
Desarollo Multimedia AndroidDesarollo Multimedia Android
Desarollo Multimedia Android
 
Videos en Drupal 7 - Exposicion UCV
Videos en Drupal 7 - Exposicion UCVVideos en Drupal 7 - Exposicion UCV
Videos en Drupal 7 - Exposicion UCV
 
Adtg open lima formato
Adtg open lima   formatoAdtg open lima   formato
Adtg open lima formato
 
Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!Introduccción a la programación en Joomla!
Introduccción a la programación en Joomla!
 
Git 101
Git 101Git 101
Git 101
 
Introducción a la programación para joomla
Introducción a la programación para joomlaIntroducción a la programación para joomla
Introducción a la programación para joomla
 
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDKSysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
Sysmana 2016 - Desarrollo seguro de aplicaciones C/C++ en Android con NDK
 
Nuestras anécdotas en cortos
Nuestras anécdotas en cortosNuestras anécdotas en cortos
Nuestras anécdotas en cortos
 
Solid
SolidSolid
Solid
 
Html5 - de donde venimos y a donde vamos
Html5 - de donde venimos y a donde vamosHtml5 - de donde venimos y a donde vamos
Html5 - de donde venimos y a donde vamos
 
Inyección de dependencia
Inyección de dependenciaInyección de dependencia
Inyección de dependencia
 

Similar a Del free style al mvp

Presentación Evenge #hackathonugr
Presentación Evenge #hackathonugrPresentación Evenge #hackathonugr
Presentación Evenge #hackathonugrIvan Ortega
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Micael Gallego
 
Presentación Drupal Commerce
Presentación Drupal CommercePresentación Drupal Commerce
Presentación Drupal CommerceMario Galan
 
Opensession. Herramientas ágiles en proyectos end to end
Opensession. Herramientas ágiles en proyectos end to endOpensession. Herramientas ágiles en proyectos end to end
Opensession. Herramientas ágiles en proyectos end to endMultiplica
 
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Gustavo Arjones
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos DrupalYmbra
 
Como trabajar con programadores (Taller Emprending)
Como trabajar con programadores (Taller Emprending)Como trabajar con programadores (Taller Emprending)
Como trabajar con programadores (Taller Emprending)Martin Becerra
 
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)betabeers
 
Herramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abiertaHerramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abiertaJuan Eladio Sánchez Rosas
 
El proceso creativo de una aplicación
El proceso creativo de una aplicación El proceso creativo de una aplicación
El proceso creativo de una aplicación Jorge Galindo Cruces
 
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...Pedro Manuel Baeza Romero
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event managerIvan Ortega
 
Optimización del rendimiento
Optimización del rendimientoOptimización del rendimiento
Optimización del rendimientoFederico Peinado
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015Globant
 
[2013] Desarrollo Videojuegos
[2013] Desarrollo Videojuegos[2013] Desarrollo Videojuegos
[2013] Desarrollo VideojuegosJorge Palacios
 

Similar a Del free style al mvp (20)

202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
ASPgems 2018
ASPgems 2018 ASPgems 2018
ASPgems 2018
 
Presentación Evenge #hackathonugr
Presentación Evenge #hackathonugrPresentación Evenge #hackathonugr
Presentación Evenge #hackathonugr
 
Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020Curso Angular 9 - CodeURJC - Marzo 2020
Curso Angular 9 - CodeURJC - Marzo 2020
 
Design Sprint Remoto
Design Sprint RemotoDesign Sprint Remoto
Design Sprint Remoto
 
Presentación Drupal Commerce
Presentación Drupal CommercePresentación Drupal Commerce
Presentación Drupal Commerce
 
Opensession. Herramientas ágiles en proyectos end to end
Opensession. Herramientas ágiles en proyectos end to endOpensession. Herramientas ágiles en proyectos end to end
Opensession. Herramientas ágiles en proyectos end to end
 
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
Nerdear.la 2018 | Journey to Stability - Cómo reducimos costos y aumentamos l...
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
Arquitectura de proyectos Drupal
Arquitectura de proyectos DrupalArquitectura de proyectos Drupal
Arquitectura de proyectos Drupal
 
Como trabajar con programadores (Taller Emprending)
Como trabajar con programadores (Taller Emprending)Como trabajar con programadores (Taller Emprending)
Como trabajar con programadores (Taller Emprending)
 
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)Socialbro por dentro - Betabeers Córdoba (18/10/2012)
Socialbro por dentro - Betabeers Córdoba (18/10/2012)
 
Herramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abiertaHerramientas de desarrollo en Firefox para la web abierta
Herramientas de desarrollo en Firefox para la web abierta
 
El proceso creativo de una aplicación
El proceso creativo de una aplicación El proceso creativo de una aplicación
El proceso creativo de una aplicación
 
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
Jornadas Odoo 2016 - La comunidad mundial de Odoo (OCA) y su ecosistema - Ped...
 
Proyect Evenge. Event manager
Proyect Evenge. Event managerProyect Evenge. Event manager
Proyect Evenge. Event manager
 
Optimización del rendimiento
Optimización del rendimientoOptimización del rendimiento
Optimización del rendimiento
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
[2013] Desarrollo Videojuegos
[2013] Desarrollo Videojuegos[2013] Desarrollo Videojuegos
[2013] Desarrollo Videojuegos
 

Último

Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...FabianCruz73
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoMaxCaldern2
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.CZSOTEC
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxRAMIROANTONIOGALINDO
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 

Último (11)

Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
Estructura del lenguaje c++. Operaciones básicas y su jerarquía aplicada en e...
 
Tipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógicoTipos de pensamiento y pensamiento lógico
Tipos de pensamiento y pensamiento lógico
 
Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.Instalacion de servicios windows, configuracion y aplicacion.
Instalacion de servicios windows, configuracion y aplicacion.
 
SQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptxSQL server Analysis Services & SQL Server Reporting Services.pptx
SQL server Analysis Services & SQL Server Reporting Services.pptx
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 

Del free style al mvp

  • 4. Participa en el sorteo Hashtag del evento #VADG #io17
  • 5. Del FreeStyle al MVP Juanjo Marti
  • 6. Índice ● ¿ Quién soy ? ● ¿ Quienes somos ? ● Cómo empezamos en Sportmaniacs Android APP ● Salida a Producción ● Tiempo para el refactor ● Situación Actual ● Futuro.
  • 8. ¿Quienes somos? Web* Backend MarketingProducto*Diseño* Android*
  • 9. Equipo Android Luis El Wiski Junior Developer Jordi Becario NMH - Developer
  • 10. Cómo empezamos en sportmaniacs ● Definición del modelo de trabajo (Agile, Waterfall) ● Definición software (Jira, Bitbucket, Confluences, Trello... ) ○ Jira ○ Git ( Feature branches ) ○ Bitbucket ○ Confluence ○ Jenkins ● Definición del producto ● Configuración del proyecto de Android.
  • 11. Configuración del proyecto de Android ● Videos de Youtube. ● Charlas. ● Documentación. ● Librerías. ● Libros ● GitHub ● StackOverFlow ● Google
  • 12. Versión Pre ● MVP ● MVVM ● Dagger 2 ● Retrofit ● Picasso ● RxJava ● RxAndroid ● Observers ● ButterKnife ● GreenDao ● Sqlite ● LeakCanary ● Clean Architecture ● Repository ● okHttp ● Test Unitarios ● Espresso ● Roboelectric ● Crashlytics ● EventBus ● DataBinding ● Analytics ● Google Play Services ● Notifications
  • 13. Versión 1.0 ● Retrofit ● ButterKnife* ● Picasso ● Espresso ● Junit ● Analytics ● Estructura de clases organizada por pantallas.
  • 14. Problemas versión 1.0 ● Difícil de testear ● Mucho código repetido por toda la aplicación ● Spaghetti code ● Difícil / Imposible trasladar el conocimiento al equipo.
  • 15. Llega el momento del Refactor ○ MVVM ○ MVP MVP ● Menor curva de aprendizaje ● No depende de librerías externas ● Más Documentación
  • 16. Youtube ● Pantalla Login y Password ● Ejemplo MVP Antonio Leiva ● Demo ante el equipo de Sportmaniacs ● Comienza el refactor. Hackro https://goo.gl/eMThh4
  • 18. Ejemplo y Demo al equipo. ● Organizar vistas en paquetes ○ domain ○ ui ● Agrupar paquetes con interfaces ● Trabajar con los listener como respuesta a los eventos.
  • 19.
  • 20. ● Comunicación con la vista y con el interactor ● Pasamos la vista en el constructor ● No aparece Android por ninguna parte. ● Tenemos aisladas las funcionalidades. ● En el presenter añadimos la lógica necesaria para el comportamiento de la vista. ● Acceso a API, BDD, etc… lo hacemos desde los interactors y le pasamos el contenido al presenter que bajo cierta lógica modificará la vista.
  • 21.
  • 22. Problemas que nos podemos encontrar ● ¿ Qué hacemos con el SharedPreferences ? ¿Cómo lo gestionamos? ● ¿ Qué hacemos con los extras que vienen en los intents ? ¿ Bundle ? ● RecyclerView y sus adapters. Son Vista, son Presenter, son Interactors.
  • 23. Situación actual //TODO LIST ● Terminar el refactor ● Mejorar la cobertura de la APP ● Trabajar con Espresso ● Introducir Dagger para Inyectar Dependencias ● RxJava ● Integrar algún sistema de Continuous Delivery ● Traducciones ● Performance ● etc etc etc...
  • 25. Gracias por venir Twitter: @Lasecun Play Store: Itram Games Mail: jmveyrat@gmail.com