SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Pegándose con Android


Jorge J Barroso
Senior Client Apps Engineer
jbarroso@tuenti.com twitter: @flipper83
Mi gran amigo ANR
  •   Application Not Responding
  •   Cada cosa se debe ejecutar en su hilo
  •   La ventana más vista en Android
  •   “Loggeando” que es gerundio
  •   Bugsense
       • http://www.bugsense.com/
No sin mi hilo
  • Cada cosa se debe ejecutar en su hilo
       • Bloqueando el UI Thread
       • Pinta donde debes
  •   Handler
  •   runOnUI
  •   AsyncTask  synchronized
  •   ThreadPoolExecutor  de nota
  •   http://developer.android.com/guide/topics/funda
      mentals/processes-and-threads.html
Salvar al soldado Parcelable
  •   Qué fue de mis datos de la activity
  •   onSaveInstanceState tu gran ayuda
  •   Piensa en parcelable
  •   Bundle por todos los lados?




                   matthewjamestaylor.com
La listview de schindler
   •   Reutilización de vistas en los adapters
   •   NotifyChanges
   •   Headers y Footers
   •   mergeAdapter
        • http://commonsware.com/cwac




          http://www.androidpatterns.com/
Providers
  • SQL-lite no es tu solución para todo
  • El acceso a disco es lento, lento, lento
  • Cachea, cachea
El Manifest del diablo
   • Solucionará un montón de tus problemas
   • android:taskAffinity  un ejemplito
   • Extendiendo los estilos
     • Android porque no me dejas hacer esto!!
Con los null pointers en los talones
   •   Una gran mayoría de errores son “null pointers”
   •   Tener en mente el ciclo vida de activities
   •   Android el asesino de objetos
   •   Roboguice  dependency injection
        • http://code.google.com/p/roboguice/
Memories de Africa
  • La otra gran mayoria
  • Leer las cabeceras de las imágenes
     • Cargar escalando.
  • Pool de imagenes  SoftReference y WeakReference (danger!)
  • No viene al cuento pero salvad en la SD insensatos
  • setImageBitmap vs setImageUri
     • This does Bitmap reading and decoding on the UI thread, which can
       cause a latency hiccup. If that's a concern, consider using
       setImageDrawable(Drawable) or setImageBitmap(Bitmap) and
       BitmapFactory instead.




     http://www.flickr.com/photos/m4calliope/
Versión imposible
  • Todavía hay usuarios con 1.5 (Pa paaaaaaa)
  • Reflexión y ClassForName
  • Duplicando código desde …
Los Test Mosqueteros
  • Hay que hacer pruebas automáticas
  • Pruebas unitarias
  • Robotium  acceptance test
    • http://code.google.com/p/robotium/
Dudas y Preguntas




     ¿Te animas?
 http://jobs.tuenti.com

Weitere ähnliche Inhalte

Ähnlich wie Pegandose con android

Evolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerteEvolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerteRubén Serrano Núñez
 
Google y la revolucion Web - Julian Amaya - Dia IT
Google y la revolucion Web - Julian Amaya  - Dia ITGoogle y la revolucion Web - Julian Amaya  - Dia IT
Google y la revolucion Web - Julian Amaya - Dia ITjdmal2001
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaDomingo Suarez Torres
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Fredy Guibert
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceMario IC
 
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?Johnny Ordóñez
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsDomingo Suarez Torres
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalDavid Gil Sánchez
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloSoftware Guru
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simplepsluaces
 
Seaside el framework hereje - PreSmalltalk 2012
Seaside   el framework hereje - PreSmalltalk 2012Seaside   el framework hereje - PreSmalltalk 2012
Seaside el framework hereje - PreSmalltalk 2012Diogenes Moreira
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePointAdrian Diaz Cervera
 

Ähnlich wie Pegandose con android (20)

Xamarin Basics
Xamarin BasicsXamarin Basics
Xamarin Basics
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Evolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerteEvolución Android: Del Framework a la supervivencia del más fuerte
Evolución Android: Del Framework a la supervivencia del más fuerte
 
Google y la revolucion Web - Julian Amaya - Dia IT
Google y la revolucion Web - Julian Amaya  - Dia ITGoogle y la revolucion Web - Julian Amaya  - Dia IT
Google y la revolucion Web - Julian Amaya - Dia IT
 
Betabeers BCN
Betabeers BCNBetabeers BCN
Betabeers BCN
 
Taller de Design Thinking v2 20140308
Taller de Design Thinking v2 20140308Taller de Design Thinking v2 20140308
Taller de Design Thinking v2 20140308
 
Introduccion android
Introduccion androidIntroduccion android
Introduccion android
 
Grails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta cargaGrails, opción real y escalable para sitios web de alta carga
Grails, opción real y escalable para sitios web de alta carga
 
Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0Desarrollando en la web con todo el power 2.0
Desarrollando en la web con todo el power 2.0
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_source
 
Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?Code Smells y SOLID: A qué huele tu código?
Code Smells y SOLID: A qué huele tu código?
 
SpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con GrailsSpringIO 2012 Madrid-Escalabilidad con Grails
SpringIO 2012 Madrid-Escalabilidad con Grails
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end Drupal
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
Mobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vueloMobile Day - Lecciones de vuelo
Mobile Day - Lecciones de vuelo
 
Go
GoGo
Go
 
Reglas de Código Simple
Reglas de Código SimpleReglas de Código Simple
Reglas de Código Simple
 
Seaside el framework hereje - PreSmalltalk 2012
Seaside   el framework hereje - PreSmalltalk 2012Seaside   el framework hereje - PreSmalltalk 2012
Seaside el framework hereje - PreSmalltalk 2012
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 

Kürzlich hochgeladen

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 estossgonzalezp1
 
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 eyvanamcerpam
 
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...JohnRamos830530
 
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.pdfvladimiroflores1
 
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 ASPECTOSpptxJorgeParada26
 
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.pptxMiguelAtencio10
 
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.pptxAlan779941
 
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 JUNITMaricarmen Sánchez Ruiz
 
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.FlorenciaCattelani
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 

Kürzlich hochgeladen (11)

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
 
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
 
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...
 
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
 
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
 
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
 
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
 
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.
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 

Pegandose con android

  • 1. Pegándose con Android Jorge J Barroso Senior Client Apps Engineer jbarroso@tuenti.com twitter: @flipper83
  • 2. Mi gran amigo ANR • Application Not Responding • Cada cosa se debe ejecutar en su hilo • La ventana más vista en Android • “Loggeando” que es gerundio • Bugsense • http://www.bugsense.com/
  • 3. No sin mi hilo • Cada cosa se debe ejecutar en su hilo • Bloqueando el UI Thread • Pinta donde debes • Handler • runOnUI • AsyncTask  synchronized • ThreadPoolExecutor  de nota • http://developer.android.com/guide/topics/funda mentals/processes-and-threads.html
  • 4. Salvar al soldado Parcelable • Qué fue de mis datos de la activity • onSaveInstanceState tu gran ayuda • Piensa en parcelable • Bundle por todos los lados? matthewjamestaylor.com
  • 5. La listview de schindler • Reutilización de vistas en los adapters • NotifyChanges • Headers y Footers • mergeAdapter • http://commonsware.com/cwac http://www.androidpatterns.com/
  • 6. Providers • SQL-lite no es tu solución para todo • El acceso a disco es lento, lento, lento • Cachea, cachea
  • 7. El Manifest del diablo • Solucionará un montón de tus problemas • android:taskAffinity  un ejemplito • Extendiendo los estilos • Android porque no me dejas hacer esto!!
  • 8. Con los null pointers en los talones • Una gran mayoría de errores son “null pointers” • Tener en mente el ciclo vida de activities • Android el asesino de objetos • Roboguice  dependency injection • http://code.google.com/p/roboguice/
  • 9. Memories de Africa • La otra gran mayoria • Leer las cabeceras de las imágenes • Cargar escalando. • Pool de imagenes  SoftReference y WeakReference (danger!) • No viene al cuento pero salvad en la SD insensatos • setImageBitmap vs setImageUri • This does Bitmap reading and decoding on the UI thread, which can cause a latency hiccup. If that's a concern, consider using setImageDrawable(Drawable) or setImageBitmap(Bitmap) and BitmapFactory instead. http://www.flickr.com/photos/m4calliope/
  • 10. Versión imposible • Todavía hay usuarios con 1.5 (Pa paaaaaaa) • Reflexión y ClassForName • Duplicando código desde …
  • 11. Los Test Mosqueteros • Hay que hacer pruebas automáticas • Pruebas unitarias • Robotium  acceptance test • http://code.google.com/p/robotium/
  • 12. Dudas y Preguntas ¿Te animas? http://jobs.tuenti.com