Você está na página 1de 139

Taller de Introduccin a la programacin en

Antonio Francisco Domnguez Crespo

antoniodominguez@guadalux.org @adominguezc

Sevilla, 13 de Noviembre de 2012 Escuela Tcnica Superior de Ingeniera Informtica

Introduccin al desarrollo de aplicaciones Android Situacin actual

Segn los ms prestigiosos estudios de mercado, el 75 % de los dispositivos mviles vendidos a nivel mundial en el tercer trimestre de 2012, poseen sistema operativo Android. En este periodo se han vendido 136 millones de unidades, con una evolucin respecto al ao pasado de un 91,50 %.

Introduccin al desarrollo de aplicaciones Android Situacin actual

Mercado de 333,6 millones de dispositivos en todo el mundo con Android. 68,2 % de cuota de mercado, estimando que a finales del 2012 ocupe un 75%.

Introduccin al desarrollo de aplicaciones Android Situacin actual

Introduccin al desarrollo de aplicaciones Android Situacin actual

Introduccin al desarrollo de aplicaciones Android Ventajas de desarrollar en Android

Ventajas de desarrollar en Android Aunque la mayora de las aplicaciones estn escritas en Java, de forma nativa a travs del SDK de Android, tambin podemos desarrollar aplicaciones web en HTML5, CSS3 y Javascript o incluyendo cdigo C C++ a travs del NDK.

Introduccin al desarrollo de aplicaciones Android Ventajas de desarrollar en Android

Aplicaciones Android

SDK Android (JAVA)

HTML5 + CSS3 + Javascript

NDK Android (C/C++)

Introduccin al desarrollo de aplicaciones Android Ventajas de desarrollar con Android

A diferencia de otras plataformas, desarrollar con Android no supone costos en licencias y contamos con mltiples frameworks de desarrollo gratuitos y de cdigo abierto. El SDK de Android est a disposicin de la comunidad en todas las plataformas existentes.

Introduccin al desarrollo de aplicaciones Android Ventajas de desarrollar con Android

A diferencia de otras plataformas, desarrollar con Android no supone costos en licencias y contamos con mltiples frameworks de desarrollo gratuitos y de cdigo abierto. El SDK de Android est a disposicin de la comunidad en todas las plataformas existentes.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Desarrollo de aplicaciones Android nativas Qu herramientas necesitamos?


Java JDK Entorno de desarrollo integrado (IDE) Eclipse SDK Android Plugin Android Development Tools (ADT) para Eclipse Dispositivo Virtual Android (AVD)

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Configuracin del entorno de desarrollo Paso 1.- Descarga e instalacin de Java 7 JDK
Podemos descargarlo desde la web de Oracle o bien mediante apt, incluido en los repositorios de las ltimas distribuciones: sudo apt-get install openjdk-7-jdk openjdk-7-jre

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 2.- Descarga e instalacin de Eclipse


Podemos obtener la ltima versin del popular entorno de desarrollo integrado Eclipse desde la direccin http://www.eclipse.org/download, siendo recomendada para el desarrollo de aplicaciones en Android la versin para desarrolladores JAVA. Una vez descargado bastar con descomprimirlo en cualquier ubicacin.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 3.- Descargar el SDK de Android


La ltima versin del SDK de la plataforma Android se puede descargar desde http://developer.android.com/sdk/index.html, siendo en estos momentos la ltima versin la r20 (Android 4.1.2). Una vez descargado bastar con descomprimirlo en cualquier ubicacin.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 4.- Descargar el plugin ADT para eclipse


Google pone a disposicin de los desarrolladores un plugin para eclipse llamado Android Development Tools (ADT) que facilita en gran medida el desarrollo de aplicaciones para la plataforma. Se puede descargar mediante las opciones de actualizacin de Eclipse, accediendo al men Help/ Install new software ... e indicando la URL de descarga: https://dl-ssl.google.com/android/eclipse Se debe seleccionar e instalar el paquete completo Developer Tools, formado por Android DDMS y Android Development Tools.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 5.- Configurar el plugin ADT


En la ventana de configuracin de Eclipse, se debe acceder a la seccin de configuracin de Eclipse Window / Preferences e indicar la ruta en la que hemos descomprimido el SDK descargado en el paso 3.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 6.- Descargar los targets necesarios


Adems del SDK de Android, tambin debemos descargar los llamados SDK Targets de Android, que son libreras necesarias para desarrollar en cada una de las versiones concretas de Android. Por ejemplo, si queremos desarrollar para Android 2.2 Froyo, especficamente, tendremos que descargar los targets correspondientes a esta versin. Para ello accederemos al men Window / Android SDK Manager, y en la seccin Available Packages seleccionamos e instalamos los paquetes deseados.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 7.- Configurar un dispositivo virtual Android


Para probar y depurar aplicaciones Android no tendremos que hacerlo necesariamente sobre un dispositivo fsico, sino que podremos configurar un dispositivo virtual o emulador, para realizar estas tareas. Para ello accedemos a Window / AVD Manager, y en la seccin Virtual devices podremos aadir tantos dispositivos como deseemos, por ejemplo para distintas versiones de Android. Seleccionaremos el target (versin) de Android que utilizar y sus caractersticas de hardware como resolucin de pantalla, memoria SD, o la disponibilidad de funciones como el GPS.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Qu nos ofrece el plugin ADT para Eclipse?

Desarrollar Compilar Empaquetar Usar

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Android Project Wizard .- Genera archivos requeridos por el proyecto

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Editor de recursos .- Para disear interfaces de usuario

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Manager Android .- Para gestionar SDK y AVD

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Perspectiva DDMS.- Monitorizar y depurar aplicaciones Android

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Construccin automatizada de emuladores y dispositivos Android

aplicaciones

para

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Soporte ProGuard.- Para optimizacin de cdigo y ofuscacin

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Nuestro primer proyecto en Android: Hola Mundo!


Ya tenemos configurado el entorno de desarrollo para desarrollar aplicaciones Android de forma nativa, por lo que podemos pasar a crear nuestro primer proyecto en Android. Para ello creamos en Eclipse un nuevo proyecto de tipo Android Project. Indicamos su nombre, el target deseado, el nombre de la aplicacin, el paquete Java por defecto para nuestras clases y el nombre de la clase (activity) principal.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Estructura de un proyecto Android


Cuando creamos un nuevo proyecto Android en Eclipse se genera automticamente la estructura de carpetas necesaria para poder generar posteriormente la aplicacin. Esta estructura ser comn para cualquier aplicacin, independientemente de su complejidad.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

/src

Contiene todo el cdigo fuente de la aplicacin, cdigo de la interfaz grfica, clases auxiliares, etc Inicialmente, Eclipse crear el cdigo bsico de la pantalla (Activity) principal de la aplicacin, siempre bajo la estructura del paquete Java definido.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

/res

Contiene todos los ficheros de recursos necesarios para el proyecto: imgenes, vdeos, cadenas de texto, etc. Estarn organizados por tipos, siendo la estructura de carpetas la siguiente: /res/drawable Contiene las imgenes de la aplicacin. Para utilizar diferentes recursos dependiendo de la resolucin del dispositivo, se suele dividir en varias subcarpetas:

/drawable-ldpi: baja resolucin /drawable-mdpi: resolucin media /drawable-hdpi: resolucin alta

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

/res/layout/

Contiene los ficheros de definicin de las diferentes pantallas de la interfaz grfica. Para definir distintos layouts dependiendo de la orientacin del dispositivo se puede dividir en dos subcarpetas:

/layout: orientacin vertical /layout-land: orientacin horizontal

/res/anim/ Contiene la definicin de las animaciones utilizadas por la aplicacin.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas


/res/menu/

Contiene la definicin de los mens de la aplicacin /res/values/ Contiene otros recursos de la aplicacin como, por ejemplo, cadenas de texto (strings.xml), estilos (styles.xml), colores (colors.xml), etc... /res/xml/ Contiene los ficheros XML utilizados por la aplicacin. /res/raw/ Contiene recursos adicionales, normalmente en formato distinto a XML, que no se incluyan en el resto de la carpeta de recursos.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

/gen

Contiene una serie de elementos de cdigo generados automticamente al compilar el proyecto. Cada vez que generamos nuestro proyecto, la maquinaria de compilacin de Android genera por nosotros una serie de ficheros fuente en Java dirigidos al control de los recursos de la aplicacin.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

El ms importante es el fichero R.java y la clase R. La clase R contendr en todo momento una serie de constantes con los ID's de todos los recursos de la aplicacin incluidos en la carpeta /res, de forma que podamos acceder fcilmente a estos recursos desde nuestro cdigo a travs de este dato. Por ejemplo, la constante R.drawable.ic_launcher contendr el ID de la imagen ic_launcher.png contenida en la carpeta /res/drawable/.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

/assets/

Contiene los dems ficheros auxiliares necesarios para la aplicacin (y que se incluirn en su propio paquete), por ejemplo, ficheros de configuracin, de datos, La diferencia con los ficheros incluidos en la carpeta /res/raw/ es que para stos se generar un ID en la clase R y se deber acceder a ellos con los diferentes mtodos de acceso a recursos. Para los contenidos en la carpeta assets no se generar ID y se podr acceder a ellos mediante su ruta como a cualquier otro fichero del sistema. Usaremos uno u otro segn las necesidades de nuestra aplicacin.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

AndroidManifest.xml

Contiene la definicin en XML de los aspectos principales de la aplicacin, como su identificacin (nombre, versin, icono...), sus componentes (pantallas, mensajes ), y permisos necesarios para su ejecucin. ADT contiene un editor para este fichero llamado AndroidManifest Editor.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Componentes de una aplicacin Android

En otros entornos como Java o .NET estamos acostumbrados a manejar conceptos como ventana, control, eventos o servicios como los elementos bsicos para construir una aplicacin. En Android vamos a disponer de esos mismos elementos pero con un pequeo cambio en la terminologa y el enfoque. Vamos a hacer un breve repaso de los componentes principales en desarrollo Android.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Activities
Representan el componente principal de la interfaz grfica de una aplicacin Android. Representa una ventana en cualquier otro tipo de lenguaje visual.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

View
Componentes bsicos con los que se construye la interfaz grfica de la aplicacin. Seran los controles en Java o .NET. Android incorpora una gran cantidad de controles bsicos, aunque podemos extender la funcionalidad de estos o crearlos personalizados:

Cuadros de texto Botones Listas desplegables Imgenes

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Service
Componentes sin interfaz grfica, se ejecutan en segundo plano, al igual que los de otro sistema operativo. Pueden realizar cualquier tipo de acciones como actualizar datos, lanzar notificaciones, o mostrar elementos visuales (activities), si se necesita en algn momento la intervencin del usuario.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Content Provider
Un content provider es el mecanismo que utiliza Android para compartir datos entre aplicaciones. Podemos compartir datos de nuestras aplicaciones sin mostrar detalles sobre su almacenamiento interno, su estructura, o su implementacin. Nuestra aplicacin podr acceder a los datos de otra a travs de los content provider definidos. Una aplicacin que acceda a los contactos de nuestra agenda utilizar content provider, por ejemplo.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Broadcast Receiver
Es un componente destinado a detectar y reaccionar ante determinados mensajes o eventos globales generados por el sistema, como por ejemplo Batera baja, SMS recibido, tarjeta SD insertada, o por otras aplicaciones (cualquier aplicacin puede generar mensajes (intents) broadcast, es decir, que no van dirigidos a una aplicacin concreta sino a cualquiera que quiera escucharlo).

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Widget
Elementos visuales, normalmente interactivos, que pueden mostrarse en la pantalla principal (home screen) y recibir actualizaciones peridicas. Muestran informacin al usuario directamente sobre la pantalla principal.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Intent
Elemento bsico de comunicacin componentes Android descritos. entre los distintos

Mensajes o peticiones que son enviados entre los distintos componentes de una aplicacin o entre distintas aplicaciones. Mediante un intent se puede mostrar una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast, iniciar otra aplicacin ...

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Componentes de una aplicacin Android


Activities Content providers

Views

Broadcast receivers

Services

Widgets

Intents

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Desarrollando una aplicacin Android sencilla


En este sencillo ejemplo vamos a desarrollar una sencilla aplicacin con dos activities. La pantalla principal solicitar nuestro nombre y la segunda pantalla nos devolver un mensaje personalizado.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 1.- Creacin del proyecto

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Tendremos el diseo y la lgica del activity separado en dos ficheros:


Diseo
/res/layout/activity_hola_usuario.xml

Lgica
/src/com.holausuario/HolaUsuario.java

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 2.- Modificacin aspecto Activity principal


Aadiremos una serie de views (controles) modificando el fichero activity_hola_usuario.xml:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 3.- Diseo activity secundario


Crearemos un nuevo fichero /res/layout/mensaje.xml con una sola etiqueta TextView que mostrar el mensaje al usuario:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 4.- Implementacin lgica aplicacin (ficheros Java)


Para la pantalla principal tenemos un fichero por defecto /src/com.holausuario/HolaUsuario.java:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Creamos una nueva clase para la segunda pantalla de la aplicacin anloga a la primera, llamada Mensaje que extienda de Activity y que implemente el mtodo onCreate indicando que utilice la interfaz definida en R.layout.mensaje:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Obtenemos una referencia a los diferentes controles de la activity principal que queremos manipular (cuadro de texto y botn). Para ello, utilizamos el mtodo findViewById() indicando el ID de cada control, incluidos en la clase R:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Una vez que tenemos acceso a los diferentes controles, implementamos las acciones a tomar cuando pulsemos el botn de la pantalla, implementando el evento onClick de dicho botn:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Utilizaremos el intent para llamar a una actividad desde otra de la misma aplicacin, pasaremos al constructor una referencia a la propia actividad llamadora (HolaUsuario.this), y la clase de la actividad llamada (FrmMensaje.class). Para pasar a la actividad el nombre del cuadro de texto creamos un objeto Bundle, que contendr una lista de pares clave-valor con toda la informacin a pasar entre las actividades. Aadiremos un dato de tipo String mediante el mtodo putString(clave, valor) y aadiremos la informacin al intent mediante el mtodo putExtras(bundle).

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 5.- Implementacin lgica activity secundaria Ampliaremos el mtodo Oncreate obteniendo las referencias a los mtodos manipulados (etiqueta de texto). Recuperaremos la informacin pasada desde la actividad principal y la asignaremos como texto de la etiqueta mediante el mtodo getIntent() y recuperamos su informacin asociada (objeto Bundle) mediante el mtodo getExtras(). Construiremos el texto de la etiqueta mediante el mtodo setText(texto) y recuperamos el valor de la clave almacenada en el objeto Bundle meduante getString(clave).

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Utilizaremos el intent para llamar a una actividad desde otra de la misma aplicacin, pasaremos al constructor una referencia a la propia actividad llamadora (HolaUsuario.this), y la clase de la actividad llamada (FrmMensaje.class). Para pasar a la actividad el nombre del cuadro de texto creamos un objeto Bundle, que contendr una lista de pares clave-valor con toda la informacin a pasar entre las actividades. Aadiremos un dato de tipo String mediante el mtodo putString(clave, valor) y aadiremos la informacin al intent mediante el mtodo putExtras(bundle).

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 6.- Definicin AndroidManifest.xml Definiremos las actividades que componen nuestra aplicacin:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Paso 7.- Ejecucin y depuracin del proyecto

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Documentacin para desarrolladores


El punto de encuentro para desarrolladores Android es el sitio web que Google ha habilitado al respecto y donde podremos encontrar recursos para disear, desarrollar y distribuir nuestras aplicaciones. La direccin de Android Developers es: http://developer.android.com/intl/es/index.html

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Recursos para diseo de interfaces de usuario

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Guas de aprendizaje

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Gua completa de la API

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Referencia de la API

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Herramientas de desarrollo

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Descargas cdigo fuente de aplicaciones Android


Una de las mejores maneras de introducirse en el desarrollo Android y aprender a desarrollar aplicaciones profesionales, es mediante el estudio del cdigo fuente de aplicaciones ya existentes. En Internet existen numerosos recursos que ofrecen a la comunidad de desarrolladores Android la descarga de cdigo abierto de aplicaciones para su uso, estudio, modificacin y redistribucin. Pasaremos a enumerar los ms populares.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Proyectos de muestra de Eclipse

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Google Code (http://code.google.com)

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Github (www.github.com)

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

SourceForge (www.sourceforge.net)

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

SourceForge (www.sourceforge.net)

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Distribucin de aplicaciones Android


Google cuenta con un marketplace denominado Google Play ( https://play.google.com/) a travs del cual cualquier desarrollador puede distribuir sus aplicaciones a nivel mundial, siendo su pblico objetivo los ms de 300 millones de usuarios de Android en la actualidad. En la actualidad hay ms de 675.000 aplicaciones publicadas en Google Play.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Para empezar a publicar aplicaciones en Google Play es necesario abrir una cuenta como desarrollador http://developer.android.com/intl/es/distribute/index.html, previo pago de 25,00 $ lo cual nos da derecho a poder publicar nuestras aplicaciones mediante la consola de desarrollador Android. En Google Play podemos publicar aplicaciones de pago o gratuitas, pudiendo obtener ingresos mediante la venta de aplicaciones, por publicidad o por la prestacin de otros servicios. Para la publicacin de la aplicacin, slo necesitaremos el paquete .apk que encontraremos en la carpeta bin del proyecto compilado.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android nativas

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Desarrollo de aplicaciones Android con HTML5, CSS3 y JavaScript


Hemos visto como desarrollar aplicaciones Android de forma nativa, pero los programadores web con conocimientos HTML5, CSS3 y JavaScript estn de suerte ya que pueden desarrollar aplicaciones para Android sin conocimientos especficos en Java, como si lo hicieran de forma nativa. En la actualidad existen numerosos frameworks libres que vienen a cumplir con esta tarea y cada vez con ms cuota en el nmero de desarrolladores. Veamos algunos de ellos...

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript


JqueryMobile (www.jquerymobile.com) Es un framework de Javascript basado en jQuery y jQuery UI, para el desarrollo de aplicaciones web y de escritorio (nativas) en dispositivos mviles. Soportando una amplia variedad de dispositivos. Est basado en jQuery, por lo tanto la curva de aprendizaje ser mnima para aquellas personas que hayan utilizado jQuery. Su peso de (20kb) y el uso mnimo de imgenes en sus componentes. Uso de marcado HTML5 en la estructura de las pginas y componentes, utilizando los diferentes atributos para disparar automticamente los Widgets de jQueryMobile. Adems podemos aplicar los diferentes comportamientos que trae cada componente sin tener que aplicar ningn script adicional. Enfocado tanto a aplicaciones web como a aplicaciones nativas. Proporciona una potente herramientas para crear diferentes temas (themes): ThemeRoller.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript


PhoneGap (www.phonegap.com) Phonegap es un framework para desarrollar aplicaciones mviles que es un claro sinnimo de sencillo. Se basa en tecnologas como HTML, CSS, Javascript, JQuery o Sencha Touch entre otras. Este conjunto de herramientas, porta casi cualquier cdigo HTML, CSS, Javascript y dems en cdigo nativo listo para compilar en el SDK. Abstrayendo al programador de aprender cdigo nuevo y/o ms complejo, agilizando as el desarrollo y el mantenimiento de las aplicaciones. Phonegap basa todo su potencial en un fichero javascript y una librera que se encargan de hacer el port de un lenguaje a otro. Aparte, dispone de varias APIs para poder interactuar con elementos nativos del dispositivo como la cmara de fotos o vdeo, el acelermetro, las redes, etc. Si queremos usar los elementos propios de la interfaz grfica del SO tambin es posible acceder a los mismos mediante la instalacin de plugins como NativeControls.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

SenchaTouch (http://www.sencha.com/products/touch) Sencha Touch est especficamente desarrollado para aprovechar la mayor potencia y flexibilidad de HTML5, CSS3 y JavaScript, haciendo uso de los nuevos elementos disponibles en la nueva especificacin del estndar para utilizar video, audio, guardar datos offline, as como una librera con mltiples widgets de usuario y control para los eventos tctiles de los dispositivos mviles con efectos muy agradables gracias a la capa de CSS3 que incorpora.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

DojoMobile (http://dojotoolkit.org/features/mobile) Dojo Mobile, una extensin de Dojo Toolkit, proporciona una serie de widgets, o componentes, optimizados para su uso en un dispositivo mvil, como un telfono inteligente o una pizarra digital. Los componentes son modelados en sus contrapartes nativas, y tendrn una apariencia nativa para aquellos que estn familiarizados con aplicaciones de telfonos inteligentes. Los componentes son completamente personalizables utilizando temas que, por ejemplo, permiten obtener un conjunto de estilos para los usuarios de iOS y otro distinto para los usuarios de Android.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Appcelerator Titanium (http://www.appcelerator.com) Appcelerator Titanium es una plataforma para desarrollar aplicaciones mviles y de escritorio utilizando tecnologas web. Appcelerator Titanium est desarrollado por Appcelerator Inc. y fue lanzado en diciembre del 2008. En junio de 2009 se aadi soporte para el desarrollo de aplicaciones mviles para Android e iPhone.2 En abril de 2010 se aadi soporte para el desarrollo de aplicaciones para Ipad.3

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Caso prctico.- Desarrollando una aplicacin Android con JQueryMobile Para comenzar crearemos un nuevo proyecto Android en Eclipse.

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Creamos un objeto del tipo WebView que contendr la pagina web:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Creamos el archivo .html con el cdigo de la pgina en /assets/www/index.html:

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Desarrollo de aplicaciones Android HTML5+CSS3+Javascript

Introduccin al desarrollo de aplicaciones Android Ventajas y desventajas de aplicaciones nativas y web


Ventajas y desventajas de aplicaciones nativas y aplicaciones web Tabla 1. Aplicaciones nativas Ventajas

El cdigo es ms rpido y se ejecuta directamente en el sistema operativo del dispositivo sin la necesidad de una aplicacin de navegador intermediaria. Apuntar a distintos dispositivos requiere versiones completamente separadas de la misma aplicacin debido a las diferencias en los lenguajes de programacin y APIs en los diversos SDKs de plataformas. Pueden ser implementadas en una tienda de aplicaciones, ofreciendo un modelo de distribucin simple y costeable. Implementar aplicaciones nativas mediante una tienda de aplicaciones normalmente requiere la aprobacin de un tercero, lo que puede hacer considerablemente ms lento el tiempo para llegar al mercado. Los SDKs nativos tienen incontables dispositivos especficos para el dispositivo, normalmente completos con documentacin detallada y ejemplos. Las actualizaciones, incluso las pequeas incrementales, requieren pasar por un proceso de aprobacin, haciendo ms difcil entregar actualizaciones crticas a los usuarios.

Introduccin al desarrollo de aplicaciones Android Ventajas y desventajas de aplicaciones nativas y web

Desventajas

Apuntar a distintos dispositivos requiere versiones completamente separadas de la misma aplicacin debido a las diferencias en los lenguajes de programacin y APIs en los diversos SDKs de plataformas. Implementar aplicaciones nativas mediante una tienda de aplicaciones normalmente requiere la aprobacin de un tercero, lo que puede hacer considerablemente ms lento el tiempo para llegar al mercado. Las actualizaciones, incluso las pequeas incrementales, requieren pasar por un proceso de aprobacin, haciendo ms difcil entregar actualizaciones crticas a los usuarios.

Introduccin al desarrollo de aplicaciones Android Ventajas y desventajas de aplicaciones nativas y web


Tabla 2. Aplicaciones web mviles Ventajas

Escribir una aplicacin para varias plataformas. No ser requieren aplicaciones separadas para distintos dispositivos. Las aplicaciones distribuidas en la web para ser consumidas por los navegadores no tienen acceso a muchas funciones de dispositivo que las aplicaciones nativas s tienen (cmara, micrfono, etc.), aunque esto puede cambiar en el futuro. Las aplicaciones pueden ser implementadas en la web sin una tienda de aplicaciones de terceros para su distribucin. Necesita proporcionar la infraestructura para distribuir su aplicacin, lo que puede ser ms complicado y costoso que usar una tienda de aplicaciones. Usted mantiene todos los ingresos generados por sus aplicaciones (si cobra por ellas). Las aplicaciones nunca se ejecutarn tan rpido como sus contrapartes nativas, ya que son representadas en un navegador en lugar de ser ejecutadas por el sistema operativo mismo.

Introduccin al desarrollo de aplicaciones Android Ventajas y desventajas de aplicaciones nativas y web

Desventajas

Las aplicaciones distribuidas en la web para ser consumidas por los navegadores no tienen acceso a muchas funciones de dispositivo que las aplicaciones nativas s tienen (cmara, micrfono, etc.), aunque esto puede cambiar en el futuro. Necesita proporcionar la infraestructura para distribuir su aplicacin, lo que puede ser ms complicado y costoso que usar una tienda de aplicaciones. Las aplicaciones nunca se ejecutarn tan rpido como sus contrapartes nativas, ya que son representadas en un navegador en lugar de ser ejecutadas por el sistema operativo mismo.

MUCHAS GRACIAS POR SU ATENCIN

Antonio Francisco Domnguez Crespo

antoniodominguez@guadalux.org @adominguezc

Sevilla, 13 de Noviembre de 2012 Escuela Tcnica Superior de Ingeniera Informtica

Você também pode gostar