Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Android development compatible with all deliciously-named ve

No description
by

María Paz Velarde

on 21 September 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Android development compatible with all deliciously-named ve

Android development compatible with all deliciously-named versions
María Paz Velarde M.
Co-founder @ Cyclops Bunny

“Aprender Android es como aprender a vivir en una ciudad extranjera. Aunque hables el idioma, no se va a sentir como en casa desde un principio”
Android Programming: The Big Nerd Ranch Guide.

Requisitos
ADT (Android Developer Tools) Bundle
Eclipse: ambiente de desarrollo
Android Developer Tools: Plugin para eclipse
Android SDK: Kit de desarrollo
Android SDK tools and platform tolos
Android Emulator

Estructura de una aplicación Android
Archivos
Compilación
Modelo - Vista - Controlador
Modelo - Vista - Controlador
Modelo - Vista - Controlador
Las clases que va a usar mi aplicación
Modelo
Vista
Widgets disponibles
Ítems del layout
Layout gráfico
Layout Xml
Controlador
Al generar el proyecto se genera un primer Activity, con su respectivo .xml
Los activities van a ser nuestro controlador. Definirán como interactúan las clases con los layouts sin necesidad que ninguno sepa siquiera de la existencia del otro.
Controlador
Ciclo de vida de un Activity
Funcionalidad del controlador
Crear vista
Definir ids en el xml
Xml
En onCreate() vamos a decirle al activity quién es quién en el layout.
Definimos variables que nos van a ayudar a manipular nuestros objetos del layout.
Objetos
Mapear objetos con layout
Definir acciones de los objetos
Comunicación entre Activities
La comunicación entre Activities se da mediante el ActivityManager e Intents
Los Activities son manejados por el sistema operativo, no por la aplicación.
En el momento de llamar a otro activity, estamos haciendo una llamada al ActivityManager.
La información sobre el Activity a iniciar y los parámetros a pasar al activity, se envían en un objeto Intent.
Comunicación entre los Activities
Compatibilidad
Configuración del dispositivo
La configuración del dispositivo es el conjunto de características que describe el estado actual del dispositivo.
Rotar el dispositivo cambia la configuración, cuando esto sucede probablemente hayan otros recursos que se adapten mejor a la nueva configuración.
Cuando cambia la configuración del dispositivo mientras se ejecuta la aplicación, el Activity se destruye y se vuelve a crear otra instancia del Activity con los recursos más apropiados.

Recordemos
Jerarquía de archivos
Layout
Para proveer recursos alternativos se debe seguir esta estructura



Donde
resources_name: es el nombre del recurso
config_qualifier: es el nombre que especifica la configuración del recurso
Rotación
Cómo queremos que se vea
Creamos la carpeta para el layout landscape
Creamos un xml con el mismo nombre del layout y lo guardamos en la nueva carpeta. Con las adaptaciones necesarias.
Creamos el xml para landscape
Si no dejamos una carpeta sin config_qualifier
Idioma
Creamos una carpeta de recursos para cada idioma que querramos traducir
Creamos el archivo predeterminado
Creamos las traducciones
Traducciones
Versiones de Android
Minimum Required SDK:
Es la versión más antigua del SDK con la se permitirá instalar la aplicación. En cualquier versión anterior, no será posible.

Target SDK:
Es la versión para la que fue diseñada la aplicación. La mejor opción aquí es poner el último SDK disponible.
 
Compile With:
Esta informaciñon es exclusivamente para Eclipse, para indicarle con que paquetes va a compilar el proyecto. La mejor opción aquí es poner lo mismo que en Target SDK.
Android Manifest
Compatibilidad
Gracefull fallback
Usa características nuevas según la versión del dispositivo, sino usa las características anteriores.
Duplication
Usa características que imiten las de las nuevas plataformas.

Por demanda:
se usa el reemplazo sólo cuando es necesario
Por reemplazo:
siempre se usa el reemplazo
La apariencia de la aplicación mantiene el estándar de la versión de Android a la que pertenece
Hay que diseñar y probar varias experiencias de usuario
La apariencia de la aplicación no cambia según el dispositivo
Se depende de librerías de terceros para estar al día
Action Bar
Action Bar pertenece al API Level 11
Este código se caería
Solución
Parte 1
Hacer que no se caiga
Solución
Parte 2
Decirle a Eclipse que todo va a salir bien
Action Bar
A partir del API Level 11 se reemplazó la barra de titulo con el Action Bar
Elementos del Action Bar
1.
Icono de la aplicación
2.
View control: Permite cambiar de vista
3.
Action Buttons: Muestra las acciones que se pueden hacer en la aplicación
4.
Action Overflow: Agrupa acciones menos usadas

Split Action Bar
Forma de manejar compatibilidad
Split Action Bar
1.
Main action bar: Contiene un máximo de ítems dependiendo del dispositivo
2.
Top action bar: Permite cambiar de vista en la aplicación
3.
Bottom action bar: Agrupa los ítems del menú

Options Menu
Honeycomb
Pre-honeycomb
Vista
showAsAction indica si va a aparecer como overflow o en el action bar

Posibles valores de showAsAction
always
never
ifRoom
Controlador
Mapeamos nuestra vista con nuestro controlador
Controlamos la interacción con el menú
Ícono de la aplicación
Control de la navegación
Temporal
Botón de atrás
Te lleva al último lugar donde estuviste
Ancestral
Ícono de la aplicación
Te lleva un nivel más arriba en la jerarquía de la aplicación
Habilitando la navegación ancestral
Mostrar el ícono de la aplicación como botón
Habilitando la navegación ancestral
Indicar en el Android Manifest quién es el Activity padre
Habilitando la navegación ancestral
Implementar la acción a ejecutar cuando se presiona el ícono
Menú Contextual
Menú contextual
Vamos a tener una vista y dos controladores
Un controlador para el menú flotante y otro para la barra contextual
Vista
Controlador: Menú flotante
Asociamos la vista
Indicar con qué ítem va a activar el menú contextual
Implementar el listener del menú
Controlador: Barra contextual
Si nuestro dispositivo tiene un API mayor o igual al 11 activamos la barra contextual
Implementamos el listener de la barra
Asociamos la vista con la barra
Gracias
@mpvelarde
@cyclops_bunny
Referencias
Phillps B., Hardy B. (2013) Android Programming: The Big Nerd Ranch Guide
http://en.wikipedia.org/wiki/Dalvik_(software)
http://www.androidcentral.com/android-z-what-dalvik
http://developer.android.com/guide/topics/resources/providing-resources.html
http://developer.android.com/training/basics/supporting-devices/languages.html
http://developer.android.com/design/patterns/actionbar.html
http://developer.android.com/training/implementing-navigation/ancestral.html
http://developer.android.com/reference/android/app/Activity.html
http://developer.android.com/reference/android/widget/AbsListView.MultiChoiceModeListener.html
Full transcript