Desarrollo de Aplicaciones Android Con Xamarin
Embed Size (px)
Transcript of Desarrollo de Aplicaciones Android Con Xamarin
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
1/13
Capítulo 1. La anatomía de una aplicación Android
1
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
1. La anatomía de una aplicación Android
Mientras que la mayor parte de este libro se centrará en aprender a desarrollar
aplicaciones para Android usando C# y Xamarin.Android , nosotros comenzaremos con una
discusión más general de Android. ¿Qué es Android? ¿Cómo Android facilita la tarea de
crear grandes aplicaciones móviles? La anatomía de una aplicación Android ayudará a
responder estas preguntas proporcionando un nivel base de comprensión de los siguientes
temas.
La plataforma Android.
Aplicaciones Android (construyendo bloques).
La plataforma Android.
La plataforma Android ha sido una de las plataformas más exitosas desarrolladas en
los últimos años y ofrece a los desarrolladores muchos servicios y funciones requeridas para
crear valiosas aplicaciones móviles. El siguiente diagrama proporciona una vista de alto nivel
de como la plataforma Android está organizada, y las secciones posteriores ofrecen una
breve descripción de cada componente principal:
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
2/13
Capítulo 1. La anatomía de una aplicación Android
2
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Linux
Android es un sistema operativo basado en Linux diseñado principalmente para
dispositivos móviles tales como Smartphones y Tablets. Las últimas versiones de Android
están basadas en la versión 3.x del kernel de Linux (versión 2.6 para versiones anteriores de
Android 4.0).
Librerías nativas
Android es liberado con un conjunto de librerías nativas escritas en C/C++, que
ofrecen varios tipos de servicios. Esas librerías vienen mayormente de la comunidad de
código abierto.
Tiempo de ejecución Android
Las aplicaciones Android corren dentro de la Máquina Virtual Dalvik (Dalvik VM),que es similar a Java VM (máquina virtual de Java) pero ha sido optimizada para dispositivos
con memoria y capacidad de procesamiento limitados.
Las aplicaciones Android son inicialmente compiladas por el bytecode Java usando el
compilador de Java, pero tienen un paso adicional de compilación que transforma el
bytecode Java a bytecode Dalvik, adecuándolo para correr en dentro de Dalvik VM.
Dalvik es liberado con las bibliotecas del núcleo Android. Esas librerías no están alineadas
con una plataforma específica de Java (JSE, JEE o JME) pero más bien actúan como una
plataforma hibrida más directamente alineada con JME, menos la interfaz del usuario
centrada en los componentes AWT y Swing. El Android Application Framework (AAF)
proporciona medios alternativos de creación de interfaces de usuario.
Application Framework
Application Framework es la parte de la plataforma Android, más familiar para los
desarrolladores. Este es liberado como un conjunto de librerías Java y te permite construir
interfaces de usuario, interactuar con las capacidades del dispositivo tales como la cámara
o los servicios de ubicación, cargar y trabajar con varios tipos de recursos de la aplicación,
y realizar muchas más tareas útiles.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
3/13
Capítulo 1. La anatomía de una aplicación Android
3
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Aplicaciones
En la parte superior de la pila se encuentra la aplicación humilde, el componente
que en realidad libera valor al usuario. Android viene con un conjunto de aplicaciones que
ofrecen funcionalidades básicas tales como administración de contactos, uso del teléfono,
comprobación del correo electrónico, y navegación de la web. La clave del éxito de Android
es la gran cantidad de aplicaciones de terceros que pueden ser instaladas, las cuales
permiten a los usuarios hacer cosas tales como transmisión en vivo de eventos deportivos,
editar una película capturada con el teléfono, interactuar con amigos a través de su sitio
favorito de medios sociales, y mucho más.
Los paquetes Android (.apk)
Las aplicaciones son liberadas para su instalación en un formato de paquete Android.
Un paquete Android es creado como el resultado de compilar una aplicación Android y un
archivo de almacenamiento con una extensión .apk . Un paquete Android contiene todo el
código y los archivos de soporte requeridos para correr una sola aplicación incluyendo los
siguientes:
Ejecutables Dalvik (*. archivos dex).
Recursos.
Librerías nativas.
El manifiesto de la aplicación.
Los paquetes Android pueden ser instalados directamente vía correo electrónico, URLs o
tarjetas de memoria. También pueden ser instalados indirectamente a través de tiendas de
aplicaciones tales como Google Play.
El manifiesto de la aplicación
Todas las aplicaciones Android tienen un archivo manifiesto ( AndroidManifest.xml )
que le dice a la plataforma Android todas las cosas que necesita saber para ejecutar
correctamente la aplicación, incluyendo lo siguiente:
Nivel API mínimo requerido por la aplicación.
Características de Software/Hardware usadas o requeridas por la aplicación. Permisos requeridos por la aplicación.
La pantalla inicial (Android activity) para empezar cuando la aplicación es puesta en
marcha.
Librerías, aparte de AFF requeridas por la aplicación.
Etcétera.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
4/13
Capítulo 1. La anatomía de una aplicación Android
4
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Versiones de Android
Identificar la versión de la plataforma Android puede ser algo confuso, hay un
número de versión, nivel de API, y sobre nombre, y estos son usados algunas veces
indistintamente.
El número de versión representa una liberación de la plataforma. Algunas veces, una nueva
liberación es creada para entregar nuevas capacidades, mientras que algunas veces son
creadas para arreglar bugs.
El nivel API representa un conjunto de capacidades. A medida que aumenta el nivel API,
nuevas capacidades son entregadas para el desarrollador.
La siguiente tabla lista las versiones de la plataforma en orden cronológico inverso:
Las aplicaciones Android
Ahora, vamos a pasar algún tiempo discutiendo las aplicaciones Android – esas cosas
que escribimos para proporcionar valor al usuario. Las aplicaciones Android se componen
de varios tipos de clases y recursos. Las siguientes secciones describen los diferentes tipos
de clases o bloques de construcción por los cuales una aplicación puede ser compuesta.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
5/13
Capítulo 1. La anatomía de una aplicación Android
5
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Actividades
Una de las partes más fundamentales de una aplicación Android es una actividad
(activity). Una actividad proporciona una sola función que un usuario puede realizar con
una aplicación tal como una lista de contactos, ingresar a nuevo contacto, y ver ubicaciones
en un mapa. Una sola aplicación es conformada con muchas actividades.
Un usuario interactúa con una actividad a través de una o más vistas, que son descritas
después en este capítulo. Si está familiarizado con el patrón modelo-vista-controlador, se
dará cuenta que las actividades cumplen el papel de controlador.
El ciclo de vida de una actividad
Las actividades tienen un bien definido ciclo de vida que puede ser descrito en
términos de estados, transiciones y eventos. El siguiente diagrama proporciona una vista
grafica del ciclo de vida de una actividad:
Estados de una actividad
Los estados representados en el diagrama anterior se derivan, esto significa que no
hay una variable “Estado” en una actividad que identifica explícitamente uno de esos
estados, pero el estado es implícito y útil para la discusión. La siguiente tabla describe el
comportamiento de una actividad basada en su estado:
Estado Descripción
Running La actividad ha sido creada e inicializada, y esta visible y disponible
para la interacción del usuario.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
6/13
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
7/13
Capítulo 1. La anatomía de una aplicación Android
7
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
para el procesamiento. Si es necesario es comportamiento puede ser anulado y las
actividades pueden ser retenidas. Vamos a discutir las consideraciones especiales en tratar
con estados y otras preocupaciones relacionadas al procesamiento para este tópico en el
capítulo 7, haciendo ubicación consciente POIApp.
Servicios
Los servicios son componentes que se ejecutan en segundo plano para realizar
operaciones de ejecuciones largas sin interfaz de usuario directa. Los servicios pueden
cargar datos en memoria cache, reproducir música, o realizar algunos otros tipos de
procesamiento, mientras un usuario interactúa con otras actividades ininterrumpidamente.
Proveedores de contenido
Los proveedores de contenido gestionan acceso a un repositorio central de datos
como los contactos. Un proveedor de contenido es una parte de una aplicación, el cual
proporciona una interfaz de usuario para gestionar esos datos. Una interfaz estándar es
también proporcionada, mientras permite a otras aplicaciones acceder a esos repositorios.
Receptores Broadcast
Los receptores de broadcast son componentes que realizan algún tipo de
procesamiento en respuesta al broadcast del todo el sistema. El broadcast es generalmente
iniciado por el sistema para eventos tales como batería baja, tomar una fotografía, o
encender el Bluetooth. Las aplicaciones pueden también elegir emitir broadcast ; un
proveedor de contenido puede enviar un broadcast con datos, como un contacto que ha
sido actualizado. Mientras los broadcast no tienen una interfaz de usuario, pueden
indirectamente causar una actualización en un estado.
Views y ViewGroups
Todo lo que ves en una aplicación Android es una vista; botones, etiquetas, cajas de
texto, y radio botones todos son ejemplos de vistas. Las vistas son organizadas en una
jerarquía usando varios tipos de ViewGroups. Un ViewGroup es un tipo especial de vista
que es usado para diseñar (layout) otras vistas en la pantalla.
Declarativa vs. Creación vista programática
Las Views y ViewGroups pueden ser creados utilizando dos métodos diferentes,
programáticamente o declarativamente. Cuando se usa un enfoque programático, un
desarrollador hace llamadas a la API para crear y posicionar cada vista individual en la UI
(interfaz de usuario). Cuando se usa un enfoque declarativo, un desarrollador crea archivos
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
8/13
Capítulo 1. La anatomía de una aplicación Android
8
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
de diseño XML que especifica cómo deben disponerse las vistas. El método declarativo
disfruta de varias ventajas establecidas de la siguiente manera:
Proporciona una mejor separación del diseño visual de la aplicación a la lógica de
procesamiento.
Permite que muchos diseños sean creados para soportar múltiples dispositivos oconfiguraciones de dispositivo con un solo código base.
Herramientas de desarrollo, tal como Android Studio y el complemento Android
para Eclipse, te permiten ver la interfaz de usuario tal como la construyes, sin
necesidad de compilar y ejecutar tu aplicación después de cada cambio.
Mientras prefiero el método declarativo para la mayoría de las cosas, he encontrado que,
en la práctica, a menudo se requiere de una combinación de los métodos programáticos y
declarativos.
Widgets de interfaz de usuario
Android proporciona un comprensivo conjunto de widgets de interfaz de usuario,
que pueden ser utilizadas para construir una experiencia de usuario rica. Todas estos
widgets son subtipos de vistas y pueden ser organizados dentro de sofisticados diseños
usando varios tipos de ViewGroups. Todos los widgets de interfaz de usuario pueden ser
encontrados en el paquete android.widget dentro del Application Framework .
Diseños comunes
El Application Framework tiene un número de clases de ViewGroup, cada unoproporciona una única y útil manera de organizar el contenido.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
9/13
Capítulo 1. La anatomía de una aplicación Android
9
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
El anterior diagrama representa algunos de los diseños más comunes, cada uno de los
cuales puede ser utilizado para necesidades específicas.
Diseño Descripción Escenario
Linear Layout Organiza a sus hijos en una
única fila horizontal o vertical y
crea una barra de
desplazamiento cuando es
necesario.
Se usa cuando una posición de
widget tiene flujo horizontalmente
o verticalmente.
Relative layout Organiza los objetos
secundarios con respecto a
otro o al padre.
Se utiliza cuando las posiciones del
widget pueden describirse mejor
con relación a otro widget (a la
izquierda de) o al área de
cobertura de los padres (ladoderecho, centrado).
Table layout Organiza a sus hijos dentro de
renglones y columnas.
Se utiliza cuando las posiciones de
widget encajarían naturalmente
en renglones y columnas. Es mejor
cuando múltiples columnas de
entrada y etiquetas son
necesarias.
Para escenarios complejos de diseño, Android permite diseños anidados. Los diseños
profundamente anidados pueden afectar el rendimiento y se deben evitar si es posible.
Diseños Adapter
Para diseños que son manejados por una fuente de datos dinámicos, el Application
Framework tiene un conjunto de clases derivadas de AdapterView.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
10/13
Capítulo 1. La anatomía de una aplicación Android
10
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
El diagrama anterior representa dos de los más comunes diseños Adapter.
List View: Organiza el contenido de la fuente de datos dentro de una sola lista
columna de desplazamiento.
Grid View: Organiza el contenido de la fuente de datos dentro de un grid de
columnas y renglones.
Archivos de diseño XML
Para crear una UI usando un método declarativo, Android proporciona un
vocabulario XML con etiquetas que definen varios tipos de elementos que pueden
componer una vista. El concepto detrás de un archivo de diseño XML es muy similar a la
forma de etiquetas HTML que se usan para definir páginas web o etiquetas XAML de
Microsoft usadas para definir interfaces de usuario WPF (Windows Presentation
Foundation). El siguiente ejemplo muestra una simple vista usando un Linear layout y
contiene un campo de entrada de búsqueda y un botón de búsqueda.
Nombres de elementos y atributos
Se ha tomado cuidado para alinear los nombres de elementos y atributos en el
vocabulario XML con nombres de clases y métodos del Application Framework. En el
ejemplo anterior, los nombres de los elementos LinearLayout, TextView y Button
corresponden a nombres de clases del Application Framework. Del mismo modo, el
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
11/13
Capítulo 1. La anatomía de una aplicación Android
11
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
elemento Button, el atributo android:text corresponden a el setText()setter en la clase
Button.
IDs
Cada vista puede tener un ID entero único asociado con él y puede ser usado parareferenciar la vista dentro de un código de la aplicación. En el archivo XML, el ID es
especificado como un nombre de texto amigable. Por ejemplo, considera la siguiente línea
de código:
En este ejemplo, el operador @ indica al analizador que debe tratar al resto de la cadena
como como un recurso de identificación ID; el símbolo + indica al analizador que se trata de
un nuevo recurso de nombre que se debe agregar al archivo de recurso R.Java. El archivo
de recurso define constantes enteras que pueden ser usadas como recursos de referencia.
Usando diseños XML de actividades
Los diseños XML pueden ser cargados fácilmente por una aplicación en tiempo de
ejecución. Esta tarea se realiza generalmente dentro del método onCreate() de una
actividad usando el método setContentView(). Por ejemplo, considera la siguiente línea de
código:
Intentos
Los intentos son mensajes que pueden ser enviados por varios tipos de
componentes en una aplicación Android en orden como respuesta de algún tipo de acción
que es realizada. Los intentos se pueden utilizar para llevar a cabo cualquiera de las
siguientes:
Iniciar una actividad con la opción de recibir un resultado.
Iniciar o detener un servicio.
Notificar el componente de condiciones como la batería baja o cambio de zona
horaria.
Solicitar una acción desde otra aplicación, tal como la solicitud de la aplicación mapa
para mostrar una ubicación o solicitar que la aplicación de la cámara tome una
fotografía y la guarde.
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
12/13
Capítulo 1. La anatomía de una aplicación Android
12
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Recursos
La creación de una aplicación Android involucra más que simplemente escribir
código. Una gran aplicación móvil requiere cosas como imágenes, sonidos, animaciones,
menús y estilos, solo por nombrar algunas. El Framework Application proporciona APIs que
pueden ser usadas para cargar y utilizar los varios tipos de recursos en tus aplicaciones
Android.
Descargando el código de ejemplo
Puedes descargar los archivos de código de los ejemplos para todos los libros Packt
que has adquirido desde tu cuenta en http://packtpub.com. Si adquiriste este libro en otras
partes, puedes visitar http://packtpub.com/support y registrarte para obtener los archivos
enviados directamente a usted por correo electrónico.
El archivo R.Java
Los recursos son generalmente referenciados desde dentro de una aplicación
usando una constante entera que es asignada automáticamente cuando el recurso es
agregado al proyecto y compilado. Estas constantes se colocan en un archivo fuente de Java
llamado R.Java. El siguiente ejemplo muestra la clase R.Java de una aplicación simple:
http://packtpub.com/http://packtpub.com/http://packtpub.com/http://packtpub.com/supporthttp://packtpub.com/supporthttp://packtpub.com/supporthttp://packtpub.com/supporthttp://packtpub.com/
-
8/18/2019 Desarrollo de Aplicaciones Android Con Xamarin
13/13
Capítulo 1. La anatomía de una aplicación Android
13
Desarrollo de aplicaciones móviles para Android con Xamarin
Traducido por Hugo Daniel Reyes Rodríguez
Resumen
En este capítulo, hemos tratado de ofrecer una concisa y adecuada demostración de
la plataforma Android y de los bloques de construcción de la aplicación. En el siguiente
capítulo, vamos a centrar nuestra atención en Xamarin.Android y las facilidades que ofrece
para permitir el desarrollo Android con .Net y C#.