SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

Similar a Pegándose con Android

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
jdmal2001
 
Desarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_sourceDesarrollo tecnologias software_libre_open_source
Desarrollo tecnologias software_libre_open_source
Mario IC
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
Alberto Gimeno
 

Similar a Pegándose 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
 

Pegándose 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