Charla impartida en la DevCon 2012 organizada por Telefónica I+D sobre las causas de la fragmentación en Android y las soluciones existentes para minimizar su impacto
5. Los orígenes
• Andi Rubin, considerado el
Padre de Android.
• Vicepresidente de Ingeniería
supervisando el desarrollo de
Android
6. La dulce historia del nombrado
• Ejemplo de primera nomenclatura: M3-WB22-TC3.
• Nombrado alfabético.
• Basado en robots famosos: Astro boy, Bender.
• Un product manager goloso: Petit Four
• Los pastelitos ganan la batalla.
http://source.android.com/source/overview.html
16. ¿El porqué de la Fragmentación?
9 versiones en 5 años, 400
millones de dispositivos
activados, cientos de diferentes
modelos de terminales con
Android instalado, y más de 300
partners en diversos ámbitos,
hardware, software,
proveedores de telefonía…
• Evolución muy rápida
17. ¿El porqué de la Fragmentación?
• Perfil de usuarios de Android
A diferencia de los usuarios de Apple, que son
conocidos estar muy al día de los lanzamientos
de apps y tener una gran cantidad de las mismas
instaladas en sus iPhones, la mayoría de ellas de
pago, apenas un tercio de los usuarios Android
cuenta con aplicaciones de pago en su terminal.
Tampoco son fanáticos de descargar una gran
cantidad de apps: sobre un 13% de ellos tiene
más de 50 aplicaciones instaladas.
http://dattatecblog.com/2011/12/%C2%BFcomo-es-un-
usuario-de-android/
18.
19.
20. Todo tiene solución
• Librerías de Compatibilidad de Google:
• android-support-v4
• android-support-v13
• Librerías de Compatibilidad no oficiales:
• GreenDroid: http://greendroid.cyrilmottier.com/
• ActionBarSherlock: http://actionbarsherlock.com/
• Guías de diseño
• http://developer.android.com/intl/es/design/
21. Honeycomb, el punto de inflexión
• En el 2011 se liberó Honeycomb, versión específica
para tablets con muchas novedades.
• Ese mismo año Google lanza su librería de
compatibilidad.
• Empiezan a aparecer librerías no oficiales para
ofrecer compatibilidad a la ActionBar.
22. ICS, estandarizando el diseño
• En enero del 2012 Google lanza unas guías de estilo
para el desarrollo de Apps sobre ICS.
• Unos meses más tarde lavan la cara de la web de
android developers para seguir el estilo ICS
“Tu aplicación debe esforzarse por combinar la belleza, la
sencillez y la intención de crear una experiencia mágica, sin
esfuerzo y poderosa”
23. Android-support
• Proporciona a los desarrolladores una serie de
bibliotecas estáticas de apoyo.
• Desarrollar apps con compatibilidad para una versión de
la API, utilizando características de una versión superior.
• Android-support-v4 Compatibilidad API >=4
• Android-support-v13 Compatibilidad API >=13
24. ActionBarSherlock
• Extensión de la biblioteca de soporte diseñado para
facilitar el uso del patrón de diseño ActionBar a través
de todas las versiones de Android con una única API.
• La biblioteca utiliza automáticamente la barra nativa
cuando es posible (API >=11) o utiliza la
implementación de Sherlock en caso contrario.
29. Action Bar
• Está dividida en 4 áreas funcionales que suelen ser
utilizadas en la mayoría de las aplicaciones
• Icono de la app
• Vista de control
• Action buttons
• Action overflow
30. Icono de la app
• Es la identidad de la aplicación, puede cambiarse por
un icono distinto del de la misma.
• Se encarga de la navegación, al pulsar sobre el icono
vuelves al home, muestras un drawer…, es aconsejable
activar la flecha de back, que actúa como el botón de
back.
31. Vista de Control
• Si la app muestra datos en diferentes vistas, este
segmento está pensado para permitir al usuario
cambiar de vistas.
• Tabs (fijas o scrollables)
• Spinners
• Drawers
32. Action Buttons
• Están destinados a las acciones más frecuentes de las
actividades.
• Dependiendo del espacio disponible en la barra se
muestran los más importantes, y el resto van al
overflow button.
• Aquí deberían ir las acciones frecuentes, importantes o
típicas.
33. Action Buttons
• ifRoom: sólo aparece si hay espacio.
• never: no aparecerá nunca en la action bar.
• always: aparecerá siempre en la action bar, aunque por
el tamaño del dispositivo y número de elementos
mostrados no estuviera definido que apareciera.
• collapseActionView: indica que es posible mover esta
acción al overflow button.
34. Action Overflow
• Este botón está destinado a contener las opciones
menos frecuentes de la pantalla.
• Es el equivalente al antiguo menú HW, y sólo aparece
en dispositivos sin el mismo.
• Dependiendo del tamaño del teléfono y la orientación
el número de elementos que pueden mostrarse en la
Action Bar varían.
43. Tabs con PseudoActionBar
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/timeline_header_content"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/header_right_buttons"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dp" />
……..
En la actividad, o el
fragment encargado de
actuar como “ActionBar”
una vista con un
onClickListener por cada
acción…
44. ActionButtons con PseudoActionBar
public void addButton(boolean right, int buttonResource, final Runnable event) {
ButtonAndIcon headerButton = new ButtonAndIcon(getActivity());
headerButton.setBackgroundButton(buttonResource);
headerButton.setAction(event);
if (right) {
rightButtons.addView(headerButton);
} else {
leftButtons.addView(headerButton);
}
}
Añadir cada botón a la vista
programaticamente desde
el fragment o actividad que
lo compone.
ó
Añadir directamente en el
layout que hará de action
bar
45. Multi-Pane Layouts
• Se introdujeron en Honeycomb para adaptar el
contenido de las aplicaciones a los tamaños de pantalla
de los tablets.
• Permiten combinar múltiples vistas o dividir estas en
una única en función del espacio disponible en la
pantalla.
48. Multi-Pane Layouts
• A nivel de implementación cuando hablamos de Multi-
Pane nos referimos a los fragments.
49. Fragments
• Fragmentos de interfaz
de usuario que se
pueden colocar en una
actividad.
• Se podrían considerar
mini actividades, tienen
su propio ciclo de vida,
aunque asociado a la
actividad que los
contienen.
54. Enlaces de Interés
Librería de Compatibilidad:
http://developer.android.com/intl/es/tools/extras/support-library.html
Librerías de soporte de la Action Bar:
http://actionbarsherlock.com/
https://github.com/cyrilmottier/GreenDroid
Personalizando la Action Bar:
http://android-developers.blogspot.com.es/2011/04/customizing-action-bar.html
Código con los ejemplos:
https://github.com/jegumi/DevCon2012
Notas del editor
Vamos a empezar por el principio. ¿Qué es Android?. Esta imagen ya adelanta el tema de la charla… Android es un sistema operativo enfocado a ser utilizado en dispositivos móviles basado en linux, que corre en cientos de dispositivos. Desarrollado por Google junto con la OHA (84 miembros)