ESTRUCTURA Y COMPONENTES DE UNA APLICACIÓN ANDROID 1 • Introducción al Desarrollo Móvil 2 • Introducción a Android 3 • Instalación del SDK 4 • Primera aplicación 5 • Proyecto: Lector de RSS 6 • Guías de diseño 7 • Publicación en Google Play ¿Qué es un dispositivo móvil? Un dispositivo móvil es un aparato electrónico con capacidades limitadas, de tamaño reducido, fácil de transportar y el cual otorga funcionalidades de almacenamiento, procesamiento y/o red en cualquier momento. ¿Cómo se clasifican? • Teléfonos Móviles • PDA’s • SmartPhones • Tablet PC • Tablet ¿Por qué desarrollar para dispositivos móviles? • Se han convertido en una herramienta indispensable para todas las personas • Y más que una herramienta de comunicación, son considerados una herramienta de productividad • Necesidad de acceso a la información 24 horas al día • La oferta de servicios móviles basados en datos es cada vez mayor ¿TENDENCIA TECNOLOGICA? FUENTE: INEI ¿TENDENCIA TECNOLOGICA? ¿TENDENCIA TECNOLOGICA? • El número de usuarios de telefonía móvil va en constante aumento • El aumento en la adquisición de dispositivos móviles va de acuerdo a los nuevos servicios que se ofrecen: correo, mensajería instantánea, TV, etc. ¿Qué tipos de aplicaciones se pueden desarrollar? Desarrollo Web Requieren un navegador y acceso a Internet. Desarrollo hibrido (smart-client) Aplicaciones instaladas en el dispositivo móvil con conexión a Internet. Desarrollo stand-alone Aplicaciones instaladas en el dispositivo que no requieren Internet. ¿Cuáles son las plataformas de desarrollo? Compañía Apple Google Microsoft Firefox Lenguaje de programación Objective-C Java C# C++, Rust Firefox APP Manager IDE de desarrollo XCode Eclipse Visual Studio Distribución de Apps App Store Android Market* Market Place Firefox Market Place ¿Qué es Android? • Es una plataforma para dispositivos móviles que incluye: • Sistema operativo • Middleware • Aplicaciones clave Este sistema operativo está basado en Linux y la idea era tener un nuevo software para dispositivos móviles con pantalla táctil como son los teléfonos inteligentes y las tablets. El sistema fue desarrollado por Android, Inc., que Google respaldó económicamente en su momento y que más tarde compró en el 2005. La compañía original era de Palo Alto, California (fundada en 2003). Entre los cofundadores de Android que se fueron a trabajar a Google están Andy Rubin (co-fundador de Danger), Rich Miner (co-fundador de Wildfire Communications, Inc.), Nick Sears (alguna vez VP en T-Mobile), y Chris White (quien encabezó el diseño y el desarrollo de la interfaz en WebTV). Android se presentó en el 2007 junto con la Open Handset Alliance, un consorcio de compañías de hardware, software y telecomunicaciones, con la intención de avanzar en los estándares de los sistemas abiertos. El primer teléfono con Android fue el HTC Dream, que empezó a venderse en octubre del 2008 : Apple Pie (v1.0), Tarta de manzana B: Banana Bread (v1.1), Pan de plátano C: Cupcake (v1.5), Panque. D: Donut (v1.6), Rosquilla. E: Éclair (v2.0/v2.1), Pastel francés. F: Froyo (v2.2), (Abreviatura de «frozen yogurt») Yogur helado. G: Gingerbread (v2.3), Pan de jengibre. H: Honeycomb (v3.0/v3.1/v3.2), Panal de miel. I: Ice Cream Sandwich (v4.0), Sándwich de helado. J: Jelly Bean/Gummy Bear (v4.1/v4.2/v4.3), K: KitKat (v4.4). El logotipo de la palabra Android fue diseñado con la fuente Droid, hecha por Ascender Corporation. El verde es el color del robot de Android que distingue al sistema operativo. El color print es PMS 376C y color GBN en hexadecimal es #A4C639, como se específica en la Android Brand Guidelines. La tipografía de Android se llama Norad, solo usado en el texto del logo. Para Ice Cream Sandwich se introduce una tipografía llamada Roboto, que, según los propios creadores, está pensada para aprovechar mejor la legibilidad en los dispositivos de alta resolución. Características • Framework de aplicaciones • Maquina Virtual (Dalvik Virtual Machine) optimizada para dispositivos móviles • Navegador Web integrado basado en el motor WebKit • SQLite para el almacenamiento de datos. • Soporte de medios audio, video, imágenes. • Gráficos optimizados 2D/3D • Completo entorno de desarrollo Arquitectura del Sistema Applications Application Framework Libraries Linux Kernel Android Runtime Fundamentos de aplicaciones • Las aplicaciones son escritas en Java • El código y los recursos de una aplicación se compilan en un archivo con extensión *.apk • Los archivos *.apk son aplicaciones listas para instalar en dispositivos Android • Android es un sistema multiusuario en el que cada aplicación es un usuario. Fundamentos de aplicaciones • El sistema le asigna a cada aplicación un ID de usuario y permisos de acceso • Solo el ID de usuario asignado a la aplicación puede acceder a los recursos y archivos de la misma. • Si es necesario, una aplicación puede solicitar permisos de acceso a datos y componentes del dispositivo como: Cámara, Bluetooth, Contactos, etc. Componentes de una aplicación • Activities: Son componentes de la interfaz de usuario, cada Activity representa una pantalla para el usuario • Services: Se ejecutan en segundo plano y realizan operaciones de larga duración o procesos remotos • Content Providers: Son proveedores de contenido. Administran el accesos a un conjunto de datos de la aplicación • Broadcast Receivers: Responde a los avisos del sistema y de otras aplicaciones. Componentes de una aplicación • Views: Son los componentes de la interfaz de usuario como botones, cuadros de texto, listas, etc. • Intents: Son mensajes de notificaciones entre actividades y servicios. Es la forma de comunicación entre los componentes de una aplicación y entre distintas aplicaciones • Manifest: El archivo AndroidManifest.xml es donde se configura la aplicación, se agregan actividades, permisos, etc. Requerimientos previos • • • • Sistema Operativo: Windows XP (32 bit), Vista (32 ó 64 bit), Windows 7 (32 ó 64 bit) Mac OS X 10.5.8 o superior (x86 únicamente) Linux Hardware: • 10 GB en disco • 2 GB en RAM (mínimo) • Procesador Dual-Core 2Ghz o superior (Recomendado 3Ghz)* Entorno de desarrollo: • Kit de Desarrollo de Java ( JDK 5 o JDK 6 ) • Eclipse IDE 3.6 (Helios) o superior Instalación del SDK de Android • Descargar el SDK de la pagina de Android Developers: http://developer.android.com/sdk/ind ex.html • Instalar el SDK en una carpeta segura. • Instalar herramientas y plataformas Instalación del plug-in para Eclipse 1. Desde la ventana “Install New Software”, hacer clic en el boton “Add” 2. En el cuadro de diálogo que aparece agregar la URL: https://dlssl.google.com/android/eclipse/ 3. De la lista de software disponibles, seleccionar “Developer Tools” y clic en “Next” 4. Aparecera la lista de elementos a descargar, clic en “Next” 5. Leer y aceptar los terminos de licencia y clic en “Finish” Configuración del plug-in para Eclipse • Desde Eclipse seleccionar el menu “Windows > Preferences” • Seleccionar la sección “Android” en el panel de la izquierda. • En el cuadro “SDK Location”, clic en “Browse” y seleccionar la carpeta en donde esta instalado el SDK. • Clic en “Apply” y luego “OK”. IDE Primera aplicación Creación del proyecto Creación de emulador Pruebas en emulador Pruebas en dispositivo real Estructura de un proyecto src/ Código fuente de la aplicación (.java) gen/ Binarios de recursos generados assets/ Recursos externos de la aplicación: Audio, Video, Documentos de texto bin/ Archivos compilados y el ejecutable (.apk) libs/ Librerías externas (.jar) Estructura de un proyecto res/ Recursos de la aplicación layout drawable values menu AndroidManifest.Xml Permisos, componentes, versión de la app, y versión del S.O. Proceso de desarrollo Acceso a contenido web Parseo de datos XML Declaración de vistas Mostrar los datos en pantalla Navegación entre pantallas Estructura de la Aplicación 1. Datos / Objetos: Toda la lógica de la aplicación: clases, objetos, accesos a datos, etc. 2. Activities / Fragments: Controlan la presentación de los datos en pantalla. 3. Views / Layouts: La parte gráfica de la aplicación. Definen el diseño y presentación de los datos. Guías de diseño: Estructura básica de una App 1. Action Bar: Incluye las principales “acciones” que se pueden realizar en una vista e incluye elementos de navegación. 2. View Control: Permite al usuario cambiar entre diferentes vistas de la App. 3. Content Area: El área donde el contenido es mostrado. 4. Split Action Bar: Permite redistribuir las “acciones” en la parte inferior de la vista (Opcional para dispositivos pequeños). Guías de diseño: Action Bar Guías de diseño: Action bar 1. App Icon: Regularmente es el icono de la aplicación. Es posible utilizarlo como apoyo para la navegación entre vistas. 2. View Control: Permite al usuario cambiar entre diferentes vistas de la App. 3. Action Icons: Las “acciones más importantes” disponibles para esta vista. 4. Overflow button: Permite incluir más “acciones” que por cuestiones de espacio no se incluyen en el Action Bar. Guías de diseño: Split Action Bar and Tab Navigation 1. Main Action Bar 2. Top Bar: Espacio designado para el “View Control” cuando la navegación es por “Tabs”. 3. Bottom Bar: El área designada para mostrar las “acciones” cuando se habilita el Split Action Bar. Guías de diseño: Dispositivos y pantallas • Flexible: Ajustar el contenido a diferentes tamaños, altos o anchos. • Optimizado: Utilizar eficientemente el espacio disponible, en especial en pantallas grandes. • Tamaños y escalas: Proveer recursos (como imágenes) para diferentes tamaños y resoluciones de pantalla. Guías de diseño: Dispositivos y pantallas • Tamaño de la pantalla: En pulgadas. • Resolución de la pantalla: En pixeles. • Orientación: Landscape o Portrait. • Densidad de la pantalla: En DPI o Puntos por pulgada “Dots Per Inch”. • Medida final del recurso: En DIP/DP o Pixel independiente de la resolución “Density Independent Pixel”. Guías de diseño: Iconografía Action Bar: • Representa las funciones mas importantes que el usuario puede realizar dentro de la App. • Generalmente son monocromáticos, sin fondo y planos. • Medidas: 18x18(ldpi), 24x24(mdpi), 36x36(hdpi), 48x48(xhdpi) Guías de diseño: Iconografía Launcher: • Es la representación de la aplicación en la pantalla de Home o en la lista de Aplicaciones. • Medidas: 36x36(ldpi), 48x48(mdpi), 72x72(hdpi), 96x96(xhdpi) Guías de diseño: Iconografía Small / Contextual: • Funcionan como acciones sobre un elemento de una lista o para indicar un estado de un elemento. • Solo utilizan un color neutral y otro no-neutral para indicar dos diferentes estados. • Medidas: 12x12(ldpi), 16x16(mdpi), 24x24(hdpi), 32x32(xhdpi) Guías de diseño: Iconografía Notifications: • Solo si la App lanza notificaciones, identifica la notificación en la barra de estado. • Generalmente deben ser blancos, sin fondo y planos. • Medidas: 18x18(ldpi), 24x24(mdpi), 36x36(hdpi), 48x48(xhdpi) Requisitos para la publicación en Google Play • Cuenta en Gmail: Diferente a tu cuenta personal. • Pago único para publicar en Google Play: $ Dolares • Generar un certificado digital: Utilizando la herramienta “keytool” disponible en el JDK • Firmar digitalmente del APK: A través de Eclipse o NetBeans • Contenido: Preparar el apk, los datos y recursos para la publicación. • Publicación Recursos SDK: http://developer.android.com/sdk/index.html Guía de Diseño: http://developer.android.com/design/index.html Eclipse IDE: http://www.eclipse.org/ Android Developer Studio http://developer.android.com/sdk/installing/studio.html Android Developers: http://developer.android.com/index.html