Download - Desarrollo de Aplicaciones Android Con Xamarin

Transcript
  • 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#.