ESTRUCTURA Y COMPONENTES DE UNA APLICACIÓN ANDROID

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