SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
El Temps
     http://eltemps.joanpujol.cat
Joan Jesús Pujol Espinar (@lujop)
Índice
• Descripción aplicación y su funcionamiento
• Descripción técnica aplicación
   – Descripción técnica
   – Librerías/tecnologías utilizadas
   – Principales problemas
• Aceptación y resultados en el Market
Descripción aplicación y funcionamiento
Información meteorológica precisa usando servicio
   local de meteorología (Meteocat):
 Predicción      Radar         Otros datos   Widgets
Predicción




                Dar buena experiencia usuario
                incluso en conexiones lentas:
             Información parcial
               mostrada en el        Estrategia caching
              primer momento
                   posible
Radar
        Información parcial
          mostrada en el
         primer momento
              posible


        Auto animación una
         vez cargadas las
            imágenes


          Posición actual
Otra información
   Temperaturas    Lluvia   Viento
Widgets

                Widget




                         Detalle
Configuración            predicción
Widget
Descripción técnica
Carga básica de datos


                        AsyncTask {

                        void cancel() {
                                                 DataLoaderService
                        }
    Activity
                        doInBackground() {
                          loadDataToday()
                          sendTodayLoaded()
                          loadedDataTomorrow()
         Handler          sendTomorrowLoaded()
                          …
                          sendFinished()
                        }
Descripción técnica

WidgetProvider    UpdateService {                      DataLoaderService



Cada hora               Loading
                        THREAD


                                                       AppWidgetManager
                  }            RemoteView



                 Se ejecuta bajo demanda
                 Solo consulta servicio externo si necesario
Herramientas/Librerías utilizadas
MAVEN
• “Sencillo” y funciona bien sin dar problemas.
• Gestiona todo el ciclo incluyendo compilación,
  instalación dispositivo, firmado, ofuscación,…

Puede ser una opción recomendable si:
• Os gusta/se domina maven.
• Aplicación integrada y dependiente de varios
  módulos externos.
• Opensource/varios desarrolladores con
  independencia IDE.
Herramientas/Librerías utilizadas
FLURRY
Muy sencillo
y sin
problemas




           onPageView()   onEvent(nombreEvento,parmetros)
Herramientas/Librerías utilizadas
ACRA (Aplication Crash Report for
 Android)
Muy sencillo y sin problemas:
ACRA.init(this);
ErrorReporter.getInstance().handleSilentException(ex)

Envía hoja cálculo Google Documents.

Muchas más posibilidades:
URL propia, poner errores en notify bar, comentarios
  usuario, eventos logcat,…
Herramientas/Librerías utilizadas
Adwhirl
Mediador anuncios en el cliente
Soporta Admob, AdSense, MillennialMedia,
  InMob,ZestADZ,MDotM,…
Funciona pero con sus problemillas y sin estándar calidad
  Google:
• Problemas house ads
• Problemas layout
• Problemas con algunas versiones SDK…
Es transparente y permite modificar asignaciones en el
  servidor
Principales problemas
Sorpresas/problemillas primera aplicación android:

• Todo asíncrono, incluso diálogos -> Código más
  difícil de leer y propenso errores.
• Concepto de Servicio e interactuaciones con widget
• Limitaciones memoria, y memory leaks. Cuidado
  con WebView en layouts y con referencias a
  contexto
Principales problemas
Cuanta memoria puedo gastar?
 16 Todos
 24 Nexus One, Galaxy S,
 32 Nexus S

Cuanta memoria gasto?
• Running Services: 18Mb
• adb dumpsys 17Mb native 4Mb Dalvik 21MbTotal
• DDMS 3Mb
• Heap dump 2Mb
Principales problemas
                                Demasiadas referencias
MAT (Eclipse
 Memory Analizer)




Recomendación:
Histograma
Incoming references
Path to GC Root excluding ALL
Aceptación y resultados en el market
• 2 Meses en el market
• Más de 4200 usuarios. Unos 100 por día.
• Buenas votaciones



• Dinero: Solo unos 50 céntimos día. Fill rate 30%
• Por ahora solo AdMob y ONG
Gracias
Preguntas, dudas sugerencias…?¿

Más contenido relacionado

Similar a El tiemps demo aplicación Android

Web20
Web20Web20
Web20
UJAP
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
Pedro Gallardo
 

Similar a El tiemps demo aplicación Android (20)

GWT
GWTGWT
GWT
 
Google Web Toolkit
Google Web ToolkitGoogle Web Toolkit
Google Web Toolkit
 
Web20
Web20Web20
Web20
 
CvTrafficCounter
CvTrafficCounterCvTrafficCounter
CvTrafficCounter
 
Integracion de layar con drupal
Integracion de layar con drupalIntegracion de layar con drupal
Integracion de layar con drupal
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007Jc Web20 Open Source Why Floss2007
Jc Web20 Open Source Why Floss2007
 
Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...
Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...
Conferencia ESRI 2014. Gestión de la componente geográfica del negocio median...
 
Sistemas SCADA Overview USMP
Sistemas SCADA Overview USMPSistemas SCADA Overview USMP
Sistemas SCADA Overview USMP
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Aplicaciones En Capas
Aplicaciones En CapasAplicaciones En Capas
Aplicaciones En Capas
 
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptxEFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
EFC-Programación .net-Luis Fernando Aguas - 15012022 1500.pptx
 
Creando Aplicaciones Web en el 2015
 Creando Aplicaciones Web en el 2015 Creando Aplicaciones Web en el 2015
Creando Aplicaciones Web en el 2015
 
18188206 sistema-scada
18188206 sistema-scada18188206 sistema-scada
18188206 sistema-scada
 
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARMMicrosoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
Microsoft Summit 2016 - Migrando IaaS Clásico a Azure Resource Manager ARM
 
Desarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos BásicosDesarrollo en Android: Conceptos Básicos
Desarrollo en Android: Conceptos Básicos
 
Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0Adf. El Framework De Desarrollo De Fusion V7.0
Adf. El Framework De Desarrollo De Fusion V7.0
 
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+DinLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
inLab FIB MeteorJS workshop by uLab UPC - Telefonica I+D
 
Dcom visualC++
Dcom visualC++Dcom visualC++
Dcom visualC++
 
Servicios web
Servicios webServicios web
Servicios web
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 

Último (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

El tiemps demo aplicación Android

  • 1. El Temps http://eltemps.joanpujol.cat Joan Jesús Pujol Espinar (@lujop)
  • 2. Índice • Descripción aplicación y su funcionamiento • Descripción técnica aplicación – Descripción técnica – Librerías/tecnologías utilizadas – Principales problemas • Aceptación y resultados en el Market
  • 3. Descripción aplicación y funcionamiento Información meteorológica precisa usando servicio local de meteorología (Meteocat): Predicción Radar Otros datos Widgets
  • 4. Predicción Dar buena experiencia usuario incluso en conexiones lentas: Información parcial mostrada en el Estrategia caching primer momento posible
  • 5. Radar Información parcial mostrada en el primer momento posible Auto animación una vez cargadas las imágenes Posición actual
  • 6. Otra información Temperaturas Lluvia Viento
  • 7. Widgets Widget Detalle Configuración predicción Widget
  • 8. Descripción técnica Carga básica de datos AsyncTask { void cancel() { DataLoaderService } Activity doInBackground() { loadDataToday() sendTodayLoaded() loadedDataTomorrow() Handler sendTomorrowLoaded() … sendFinished() }
  • 9. Descripción técnica WidgetProvider UpdateService { DataLoaderService Cada hora Loading THREAD AppWidgetManager } RemoteView Se ejecuta bajo demanda Solo consulta servicio externo si necesario
  • 10. Herramientas/Librerías utilizadas MAVEN • “Sencillo” y funciona bien sin dar problemas. • Gestiona todo el ciclo incluyendo compilación, instalación dispositivo, firmado, ofuscación,… Puede ser una opción recomendable si: • Os gusta/se domina maven. • Aplicación integrada y dependiente de varios módulos externos. • Opensource/varios desarrolladores con independencia IDE.
  • 11. Herramientas/Librerías utilizadas FLURRY Muy sencillo y sin problemas onPageView() onEvent(nombreEvento,parmetros)
  • 12. Herramientas/Librerías utilizadas ACRA (Aplication Crash Report for Android) Muy sencillo y sin problemas: ACRA.init(this); ErrorReporter.getInstance().handleSilentException(ex) Envía hoja cálculo Google Documents. Muchas más posibilidades: URL propia, poner errores en notify bar, comentarios usuario, eventos logcat,…
  • 13. Herramientas/Librerías utilizadas Adwhirl Mediador anuncios en el cliente Soporta Admob, AdSense, MillennialMedia, InMob,ZestADZ,MDotM,… Funciona pero con sus problemillas y sin estándar calidad Google: • Problemas house ads • Problemas layout • Problemas con algunas versiones SDK… Es transparente y permite modificar asignaciones en el servidor
  • 14. Principales problemas Sorpresas/problemillas primera aplicación android: • Todo asíncrono, incluso diálogos -> Código más difícil de leer y propenso errores. • Concepto de Servicio e interactuaciones con widget • Limitaciones memoria, y memory leaks. Cuidado con WebView en layouts y con referencias a contexto
  • 15. Principales problemas Cuanta memoria puedo gastar? 16 Todos 24 Nexus One, Galaxy S, 32 Nexus S Cuanta memoria gasto? • Running Services: 18Mb • adb dumpsys 17Mb native 4Mb Dalvik 21MbTotal • DDMS 3Mb • Heap dump 2Mb
  • 16. Principales problemas Demasiadas referencias MAT (Eclipse Memory Analizer) Recomendación: Histograma Incoming references Path to GC Root excluding ALL
  • 17. Aceptación y resultados en el market • 2 Meses en el market • Más de 4200 usuarios. Unos 100 por día. • Buenas votaciones • Dinero: Solo unos 50 céntimos día. Fill rate 30% • Por ahora solo AdMob y ONG