Dispositivos moviles

Transcripción

Dispositivos moviles
02-06-2008 | © Máster en Ingeniería Web
DISPOSITIVOS MÓVILES
IPHONE
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
TABLA DE CONTENIDO
INTRODUCCIÓN
4
Como leer este documento
5
Organización del documento
5
Mirar también
6
IPHONE, CARACTERÍSTICAS Y
7
FUNCIONALIDADES
7
iPhone
7
Renderizado de un sitio web
10
PLATAFORMA DE DESARROLLO
14
Herramientas de desarro"o
14
Lenguaje de desarro"o
19
Tecnologías en el iPhone
20
PROCESO DE DESARROLLO
24
DE UNA APLICACIÓN EN EL IPHONE
24
Tamaño de la panta"a
24
El uso de la memoria
25
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Aplicaciones simultáneas
25
Ventanas simultáneas
26
Simplicidad absoluta
26
Tipos de aplicaciones
26
Estilo de las aplicaciones
27
Diseño de una aplicación para el iPhone
29
Entorno de ejecución de una aplicación
30
Ciclo de vida de una aplicación
32
El SandBox y el Bundle
33
Integrar características del iPhone
35
APLICACIÓN DESARROLLADA
38
Rebote
38
DISTRIBUCION DE LAS
40
APLICACIONES
40
App Store
41
CONCLUSIONES
42
REVISIÓN HISTÓRICA DEL
43
DOCUMENTO
43
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
I N T RODUCCIÓN
El objetivo de este informe es en primer lugar, describir las funcionalidades del nuevo teléfono
de Apple Inc. y estudiar el entorno de desarrollo que nos brindan a los desarrolladores de dispositivos móviles, para posteriormente, realizar un análisis y diseño de la aplicación desarrollada para el curso de “Desarro"o de Dispositivos Móviles” del Máster de Ingeniería Web de la Universidad de Oviedo
A su vez, hay que tener claro y en mente, que estamos ante un nicho todavía en evolución, o
mejor dicho, en crecimiento continuo. El número de dispositivos móviles y el número de tecnologías nacidas a su alrededor es cada vez más grande. La presentación del iPhone en Enero
de 2007 fue un revulsivo en todo el panorama internacional pero aún lo fue más la salida en Febrero de 2008 del SDK para el iPhone OS, el conjunto de herramientas y documentación para
poder desarrollar, probar las aplicaciones para el iPhone.
El desarrollo para dispositivos móviles abarca uno de los aspectos más importantes y con más
evolución dentro de la informática de los últimos años. Invitamos al lector a que profundice en
este apasionante mundo todo lo que cree oportuno y comparta todo lo que sea necesario.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Como leer este documento
Este documento está dirigido a desarrolladores para dispositivos móviles y más concretamente
a desarrolladores de la plataforma Mac OS X y en su defecto de la plataforma iPhone OS.
Se estudiarán aspectos importantísimos del framework en el que se sustenta el iPhone OS, las
capas que lo forman así como el único lenguaje disponible actualmente para el desarrollo de las
aplicaciones.
La usabilidad y la riqueza de interfaces de usuario en dispositivos móviles también será un aspecto en los que se profundice y en los que el lector deberá prestar suma atención ya que su
importancia es sublime.
No pretende ser un tutorial ni de Cocoa Touch ni de Objetive-C aunque tras su lectura será capaz de iniciarse en el desarrollo de aplicaciones móviles en Objective-C para el iPhone OS.
Organización del documento
Este documento contiene los siguientes puntos:
• iPhone características y funcionalidades donde se hace un repaso a las características que hacen del iPhone un gran dispositivo móvil.
• Plataforma de desarrollo, donde se estudia que nos brinda Apple Inc para el desarrollo de una
aplicación para el iPhone
• Proceso de desarrollo de una aplicación en el iPhone, donde estudiamos cuales son los puntos
que hay que estudiar y conocer para desarrollar una buena aplicación
• Aplicación desarrollada, donde se explica cuál fue la aplicación creada.
• Distribución de las aplicaciones, donde se comenta como se lleva a cabo la distribución de las
aplicaciones.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Mirar también
Para un análisis más detallado de programación de aplicaciones para el iPhone en La Guía de
programación para el iPhone *
Para un análisis detallado de Cocoa, en La Guía fundamental de Cocoa. *
Información general para desarrolladores de la plataforma Mac OS X en el Apple Developer
Connection. *
Información específica para desarrolladores del iPhone en iPhone Developer Programa *
Información sobre el teléfono en la sección iPhone de la página oficial de Apple. *
Videopodcast en iTunes de ingenieros de Apple sobre Cocoa, Objective-C, tecnologías, frameworks y desarrollo para el iPhone.
Wiki en español para programadores Mac OS X.
Macprogramadores, página en español con diferentes manuales, recursos, noticias y enlaces
destinados a programadores Mac OS X.
*Requiere registro en la sección de desarro"adores de Apple
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
I P H O NE, CARACTERÍSTICAS Y
F U N CIONALIDADES
Como se ha comentado anteriormente, en un primer momento se describirán las principales
características y funcionalidades, que nos brinda al usuario, el primer terminal móvil desarrollado por Apple Inc. que tantas expectativas causo internacionalmente y que está causando en
España debido a su inminente salida en Junio de 2008.
iPhone
iPhone es el nombre que recibe el primer dispositivo móvil presentando por Apple el 9 de Enero de 2007 en la Macworld de ese año.
iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Estuvo disponible a la venta en Junio de ese mismo año, atado a un contrato de permanencia de
dos años con la compañía de telecomunicaciones AT&T.
Presenta las siguientes características:
• Peso de 135 gramos y tamaño de 115*61*11.6 mm.
• Pantalla de 3’5 pulgadas y resolución de 320*480 multitactil.
• Capacidad inicial de 4gb y 8gb. Actualmente los modelos disponibles son de 8gb y 16gb.
• Teléfono cuatribanda con tecnología Wi-Fi (802.11b/g), EDGE y Bluetooth 2.0
• Cámara de 2mpx
• Autonomía de 5 horas en conversación
• Dispone de sensores de proximidad, de luminosidad y de movimiento.
• Sistema operativo Mac OS X.
Pero en lo que destaca es por la cantidad de funcionalidades y aplicaciones que gracias al sistema operativo posee:
• Incorpora como reproductor de música un iPod, es decir, es además de un teléfono un iPod.
• Se sincroniza y se transfiere todo el contenido mediante la aplicación iTunes, por tanto funciona tanto si se es un usuario de Mac como de PC.
• Dispone de agenda, calendario, navegador web (Safari Mobile), aplicación para fotos y vídeos.
Todo ello transferible al PC o Mac gracias al iTunes.
• Dispone de Mail, permitiendo el uso de cuentas de correo de tipo IMAP y POP3
• Google Maps con geo-posicionamiento gracias a la triangulación de las antenas de las operadoras.
• Tecnología multitactil que revoluciona la manera de interactuar entre el usuario y el dispositivo.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Distintas aplicaciones en el iPhone
Internet, Video y Google Maps en el iPhone
Con la distribución del SDK del iPhone a los desarrolladores se prevé un auténtico aluvión de
aplicaciones para el iPhone a partir de Julio de 2008.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Renderizado de un sitio web
Por último, se muestran unas capturas de pantalla del renderizado que hace Webkit en Safari
Mobile, algo al que se tenderá paulatinamente en los navegadores web móviles y que ya los
terminales con Windows Mobile lo consiguen aunque con algunas limitaciones.
El sitio web se muestra tal como es, es decir, no se lleva a cabo ninguna redirección a una página equivalente y formateada para dispositivos móviles.
Lá página web testeada es la del alumno, accesible desde la dirección http://156.35.98.69:8080
Página principal
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Página principal en modo apaisado
Galería de fotos en el iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Página de datos personales
Formulario en un iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Página de contacto en modo apaisado
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
P L ATAFORMA DE DESARROLLO
Para el desarrollo de una aplicación para el iPhone y en su defecto para el iPod Touch, Apple
Inc. anunció de manera oficial a finales de Febrero de 2008 la salida del SDK del iPhone, un
conjunto de herramientas, tecnologías, documentación y código de ejemplo para el desarrollo,
testeo, depuración y simulación de las aplicaciones en el iPhone.
Hasta dicha fecha, la única manera de desarrollar aplicaciones para el iPhone era a través de
páginas web o proyectos web. Para ello se disponía y se sigue disponiendo de información en el
área de desarrolladores de Apple que guían al programador en dicho cometido de una manera
eficiente.
Pero el ansia de multitud de programadores, que habían conseguido hacer un Jailbreak del dispositivo (abril el terminal y conseguir instalar aplicaciones de terceros violando la política de
privacidad de Apple y poner en peligro la seguridad del teléfono) les llevo a elaborar una SDK
oficial permitiendo el desarrollo controlado de aplicaciones nativas para el iPhone.
Herramientas de desarrollo
Para el desarrollo de una aplicación que pueda ser instalada de manera oficial en el iPhone se
dispone de tres herramientas:
• Xcode
Es un IDE (entorno integrado de desarrollo) que permite escribir, compilar, ejecutar y depurar
el código, así como organizar los ficheros por proyectos e importarlos y exportarlos de manera
sencilla y eficiente.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Xcode
Esta herramienta trabaja con ficheros Java (.java), C/C++ (.h,.c,.cpp), Objective-C (.h,.m) y Objective-C++ (.h,.mm,.M), e incluso podemos hacer un programa parte en Objective-C y parte
en Java.
Pero concretamente, para desarrollar una aplicación para el iPhone sólo es disponible actualmente hacerlo en Objective-C.
Cuando se está desarrollando una aplicación en Xcode, se puede elegir entre realizar el build en
un simulador o en el propio terminal conectado al Mac.
El simulador provee un entorno local de ejecución sin la necesidad de tener que conectar el
iPhone, muy adecuado en las primeras fases del desarrollo.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Proyecto en Xcode
Los últimos test de la aplicación, antes justo de ser puesta en producción o distribuirla oficialmente, es recomendable llevarlos a cabo en el propio terminal.
• Interfaz Builder
Es la herramienta para el desarrollo visual de la interfaz gráfica de las aplicaciones tanto para
Mac como recientemente para el iPhone.
Mediante drag and drop ( arrastrar y soltar ) se van añadiendo los componentes, controles y
creando la interfaz de la aplicación.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Interfaz Builder
Se genera código envueltos en ficheros .nib ( ficheros de descripción de la componente gráfica )
que se cargan al arrancar la aplicación y que usa Cocoa Touch para pintar la ventana con sus
componentes, vistas y controles en la pantalla.
• Instruments
Instruments es una potente herramienta de depuración y de análisis de rendimiento de las aplicaciones. Permite ejecutar la aplicación tanto en el simulador como en el teléfono y realizar
trazas de la cantidad de memoria que está consumiendo en cada momento ( un aspecto vital de
las aplicaciones al ser ejecutadas en un entorno con más limitaciones de memoria y rendimiento que en una CPU) así como del uso de la batería que está haciendo.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Instruments
Permite comprobar a su vez el uso y/o consumo de la red que se está llevando.
Uso de Instruments para mejorar la aplicación
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Lenguaje de desarrollo
La plataforma iPhone OS usa el lenguaje Objective-C para el desarrollo de la aplicación. Objective-C es un lenguaje orientado a objetos que extiende el lenguaje estándar ANSI C. La sintaxis
básica así como el diseño están basados en Smaltalk, uno de los primeros lenguajes orientados a
objetos.
Provee sintaxis para la definición de clases, métodos, propiedades, protocolos e interfaces. A su
vez, toda la toma de decisiones se realiza en tiempo de ejecución y se dejan pocas decisiones
para el compilador.
Los diferentes tipos de fichero existentes se pueden resumir en la siguiente tabla:
EXTENSIÓN
TIPO
.h
Fichero de cabecera. Contiene las declaraciones de clases, el
tipo, funciones y constantes
.m
Fichero de recursos. Contiene el código en Objecive-C
.mm
Fichero de recursos. Contiene el código en C++. Sólo se utiliza
para referenciar a código anteriormente creado y que se quiere
enlazar en la aplicación.
Tabla con las extensiones de ficheros en Objective-C
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Tecnologías en el iPhone
La implementación del sistema iPhone OS se puede ver como un conjunto de capas, donde la
capa más baja corresponde a los servicios fundamentales en los cuales la aplicación delega
mientras las capas superiores contienen los servicios y tecnologías más sofisticadas.
Capas en el iPhone OS
• Cococa Touch
Cocoa Touch es la capa más importante de todas en el iPhone OS, ella comprende dos frameworks fundamentales, como son el UIKit y el Foundation framework.
Se puede decir que Cocoa Touch es una evolución del API, ya existente en la plataforma Mac,
llamada Cocoa ( traducido al español como chocolate, como referencia al café que tomaban los
programadores Java), añadiendo características para el soporte de la tecnología multitactil.
En la siguiente imagen podemos ver la pequeña diferencia a grandes rasgos entre Cocoa, utilizado en el desarrollo de aplicaciones para Mac OS X, y Cocoa Touch:
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Cocoa vs Cocoa Touch
Luego los dos Objective-C Frameworks que contiene son:
1. UIKit: Framework en Objective-C que provee la infraestructura para la implementación de
los gráficos, la estructura de la aplicación, el control de los eventos, el manejo de la interfaz,
la representación de las vistas y controles así como el soporte de texto y contenido web.
Soporta a su vez código para el manejo del acelerómetro, la cámara, la librería de fotos o
toda la información que posee el dispositivo.
Aunque el conjunto de clases es mucho más extenso, las más significativas se pueden
observar en la siguiente imagen:
UIKit
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
2. Foundation: Framework en Objective-C que define el acceso y manejo de objetos, provee
acceso a los tipos de datos primitivos, colecciones y servicios del sistema operativo.
• Media
Esta capa contiene los frameworks y servicios dependientes de Core Services y que proveen los
servicos de gráficos y multimedia a la capa superior, Cocoa Touch. Incluye Core Graphics,
OpenGLES, Core Animation, Core Audio y tecnologías de Video.
• Core Services
Los frameworks de esta capa proveen la manipulación de strings, colecciones, el manejo de
contactos y las preferencias así como las utilidades de URL o de la red.
Esta capa incluye el framework Core Foundation, el cúal ofrece una abstracción a los tipos de
datos, como strings y colecciones.
• Core OS
Esta es el nivel que contiene el Kernel, los ficheros del sistema y la infraestructura de red, seguridad, manejo de la memoria y los drivers del dispositivo.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Vale la pena terminar éste capítulo con un nuevo repaso y vista más profunda a una de las capas
más importantes del iPhone OS, Cocoa Touch.
Cocoa Touch
Quizás el framework más conocido de todos sea el UIKit, el cual como ya hemos comentado,
nos permite crear interfaces gráficas y todo lo que concierne al usuario como la aplicación, pero
no nos aislemos en un solo framework. El listado completado de Frameworks disponibles en el
SDK del iPhone OS, cuya descripción no entra en el ámbito de este documento es el siguiente:
1. Address Book
2. Address Book UI
3. Audio Toolbox
4. Audio Unit
5. CFNetwork
6. Core Audio
7. Core Foundation
8. Core Graphics
9. Core Location
10. Foundation
11. Media Player
12. OpenGL ES
13. Quartz Core
14. Security
15. System
16. System Configuration
17. UIKit
Listado de Frameworks en iPhone OS
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
P RO CESO DE DESARROLLO
D E U NA APLICACIÓN EN EL IPHON E
El proceso desarrollo de una aplicación para el iPhone y en su defecto para el iPod Touch, pasa
por un ciclo de vida, además de conocer la plataforma y las tecnologías a utilizar ( vistas brevemente en el capítulo anterior ), que pasaremos a resumir a continuación.
Lo primero de todo es tener en cuenta que desarrollar para un teléfono no es lo mismo que hacerlo para un ordenador , es decir, no es lo mismo hacer una aplicación para el iPhone que para
un Mac. Los motivos de tal afirmación son:
Tamaño de la pantalla
El tamaño de la pantalla es considerablemente menor que en un Mac, por tanto el desarrollador
debe tener en cuenta dicho aspecto durante todo el desarrollo y más concretamente durante el
diseño de la interfaz de usuario.
El tamaño es exactamente en el iPhone de 480*320, por tanto la interfaz de usuario se debe de
centrar en lo esencial que el usuario pueda necesitar en cada pantalla, o mejor dicho en cada
vista.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
El uso de la memoria
El uso de la memoria es crucial en cualquier software, pero cuando estamos hablando de móviles aún más. El iPhone no dispone de espacio de cache para la memoria luego hay que tener especial cuidado con el uso de memoria que la aplicación lleva a cabo en cada momento. Para
ello, como ya se ha comentado anteriormente, se ofrece al desarrollador la aplicación Instruments a través de la cual podemos monitorizar el uso que está realizando nuestra aplicación en
cada momento.
El iPhone introduce un mecanismo a través del cuál se produce un evento cuando el dispositivo
se está quedando sin memoria. En el caso de que no se haga nada, la aplicación se cerrará inmediatamente, por tanto es nuestro deber ( por el bien del usuario ) implementar que hacer en
caso de que se produzca dicho evento o aviso ( guardar datos, estado de la aplicación etc.).
Aplicaciones simultáneas
El iPhone sólo permite que haya una aplicación corriendo o ejecutándose (aplicaciones desarrolladas por nosotros, este es el motivo por el cuál no es posible introducir una máquina virtual
de Java y desarrollar aplicaciones en Java; por ahora) a la vez.
Luego si se está utilizando nuestra aplicación y el teléfono suena o nos llega un mensaje la aplicación se cerrara (entra en modo pausa) y es nuestro deber guardar tanto los datos como el estado de la aplicación lo más rápido posible, para ofrecer al usuario un entorno rico y agradable,
y no ofrecerle una experiencia de usuario negativa.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Ventanas simultáneas
Esta es una de las gran diferencias entre una aplicación de escritorio y una aplicación para un
móvil, y es que el iPhone sólo permite una ventana ( por motivos obvios ) simultánea en el dispositivo. Dicha ventana puede tener varias vistas pero el usuario accederá a ellas de manera secuencial y nunca simultáneamente.
Simplicidad absoluta
Este es uno de los aspectos en los que actualmente muchas aplicaciones para móvil carecen. Y
es que el usuario una vez arrancada la aplicación nunca debe de preguntarse que hacer o como
hacer tal cosa. La simplicidad de la aplicación debe ser absoluta evitando en primer lugar tener
que recurrir a implementar una ayuda.
Tipos de aplicaciones
Una vez conocido los aspectos anteriores, hay que decidir que tipo de aplicación desarrollar.
Existen tres opciones actualmente:
1. Aplicación web
Aplicación basada solamente en contenido web, adaptado a la pantalla y uso del iPhone.
2. Aplicación nativa
Aplicación que reside en el teléfono y que hace uso de todas las tecnologías del iPhone. Es
nuestro propósito para la aplicación de ejemplo desarrollada.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
3. Híbrido entre los dos anteriores
Aplicación nativa en el iPhone pero que parte de sus funcionalidades e infraestructura la lleva a
cabo a través de una aplicación web. Aunque no es el cometido de nuestra aplicación de ejemplo, si es un buen punto de partida y por dónde seguro irán muchos desarrolladores de aplicaciones para el iPhone.
Estilo de las aplicaciones
Decidido que tipo de aplicación desarrollar ( en nuestro caso nativa en el iPhone ), hay que saber que existen, fundamentalmente, tres tipos de estilo de aplicaciones:
1. Aplicaciones Productivas
Las aplicaciones productivas son esa clase de aplicaciones donde prima ante todo la organización y manipulación de la información. El usuario en este tipo de aplicaciones agradece ante
todo encontrar fácilmente la información, sin prestar demasiada atención a la interfaz de usuario.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
La información, en este tipo de aplicaciones, se aconseja mostrarla de lo más general a lo más
específico, permitiendo que sea el usuario quien navega si lo desea de menús más generales a
menús con un nivel de detalle mayor.
2. Aplicaciones de utilidad
Las aplicaciones de utilidad se caracterizan por requerir la mínima acción del usuario para mostrar la información. Suelen ser visualmente atractivas y la información se organiza en una sucesión de vistas, en contraste con las productivas que la información se organiza de manera...
El usuario no necesita navegar en vistas más específicas para encontrar la información, sino que
el tipo de información es la misma en cada vista. El usuario navega por las diferentes vistas para
encontrar la misma información pero de diferentes objetos.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
3. Aplicaciones a pantalla completa
Este tipo de aplicaciones ofrecen todo su contenido a pantalla completa y con una riqueza visual excelente. Videojuegos, música o reproductores de vídeo son las que encajan en este tipo
de aplicaciones donde lo que busca el usuario es divertirse y pasarlo bien.
Se basan en el contenido visual y en la experiencia de usuario. Utilizan una cantidad enorme de
información pero que no se muestra al usuario, por lo que éste no necesite que se le muestren
barras de navegación o métodos de acceder a la información como sucede en las dos clases anteriores de aplicaciones.
Diseño de una aplicación para el iPhone
Elegido el tipo de aplicación, y el estilo que más se acorde a nuestro objetivo final, como desarrolladores deberíamos seguir unas recomendaciones básicas para obtener una buena aplicación
de móvil, en este caso para el iPhone:
• Definir exactamente nuestro producto o aplicación.
• Conocer la audiencia hacia la cual va dirigida nuestra aplicación, si son novatos o usuarios expertos. Si buscas que se diviertan o resuelvan un problema o necesidad. Está dirigida a personas jóvenes, ejecutivos o personas mayores. Se va a ejecutar todos los días como puede ser leer el correo o sólo en momentos puntuales a lo largo de la semana.
• Recordar que la aplicación se ejecutará en un móvil, luego tiene que ser sencilla y debe de
abrirse y cerrarse lo más rápido posible.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
• Utilizar una gama de colores para la interfaz gráfica que consiga transmitir al usuario un feeling de lo que es la aplicación.
• Hacer la aplicación simple y fácil de usar.Para ello minimizar la entrada de datos por parte del
usuario y centrarse en lo que el usuario requerirá en cada vista de la aplicación.
• Separar adecuadamente los botones, o cualquier objeto sustancial de ser pulsado con los dedos, para evitar pulsaciones erróneas por parte del usuario.
• Utilizar barras de estado adecuadas para la aplicación. Las barras de estado son las barras superiores que se muestran en las vistas de la aplicación.
• Evitar pantallas de bienvenida o Acerca de nada más lanzarse la aplicación, esto nada más que
hace retrasar el uso de la aplicación por parte del usuario y puede llegar a irritarle cuando su
uso es continuo.
• Por defecto, el uso debe de ser en modo vertical y no forzar que cuando la aplicación se lance
el usuario tenga que rotar el dispositivo.
• Almacenar el estado de la aplicación cuando se cierra y restaurarla adecuadamente para ofrecer una experiencia de uso rica.
• Implementar o tener presente en todo momento que hacer cuando la aplicación recibe una
notificación de falta de memoria, evento que puede producirse dentro del ciclo de vida de
una aplicación tal como se comentará a continuación.
Entorno de ejecución de una aplicación
Por último, conocer el entorno de ejecución de las aplicaciones es fundamental y último requisito que como desarrolladores debemos estudiar para poder abordar el desarrollo de la aplicación de forma eficiente.
El entorno de ejecución de una aplicación en el iPhone está continuamente recibiendo eventos
del sistema y respondiendo a dichos eventos presentándolos al usuario de manera adecuada.
Este es el patrón de diseño llamado “Event and drawing cycle”.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Diagrama de Apple Developers que ilustra el Event and drawing Cycle
Una vez que la aplicación se ejecuta, el sistema operativo del iPhone llama a la función Main
(punto de entrada en cualquier aplicación). La principal clase es la UIApplicactionMain, la cual
inicializa el Event and Drawing Cycle.
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool* pool = [NSAutoreleasePool new];
UIApplicationMain(argc, argv, @"UIApplication", @"AppController");
[pool release];
return 0;
}
Main en una aplicación del iPhone
El sistema detecta los eventos ocurridos en el dispositivo y los coloca en “la cola de eventos de
la aplicación”. El objeto de la aplicación coge el evento superior de la cola y lo delega en el objeto determinado para su ejecución.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Ciclo de vida de una aplicación
Por último, conocer el entorno de ejecución de las aplicaciones es fundamental y último requisito que como desarrolladores debemos estudiar para poder abordar el desarrollo de la aplicación de forma eficiente.
Diagrama de Apple Developers que ilustra el Ciclo de vida de una aplicación
Como se muestra en el diagrama anterior, una vez que el usuario presiona el icono de la aplicación se inicia el Events and Drawing cycle, el cual captura los eventos y responde ante ellos. Pero existen eventos que pueden parar dicho ciclo de ejecución, como puede ser que el usuario
presione el botón de Home o reciba una llama de teléfono o recibe una notificación de falta de
memoria.
Al sólo poder ejecutarse una aplicación simultáneamente, la actual se cerrará terminando su
ejecución.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
El SandBox y el Bundle
El SandBox es un conjunto de controles que limitan a la aplicación (por motivos de seguridad)
el acceso a ficheros, recursos de red, de hardware etc. Toda aplicación instalada reside en un
espacio de disco donde ninguna otra aplicación tiene acceso.
Gracias al directorio root de la aplicación y su identificador único, el sistema construye el path
o ruta del directorio único de la aplicación:
/ApplicationRoot/ApplicationID
Por tanto, durante la instalación, el sistema configura el entorno de ejecución de la aplicación,
copia el Bundle en el directorio único y crea los subdirectorios correspondientes en el inicio.
Este Sandbox (espacio único de cada aplicación) simplifica las operaciones de acceso, restauración y desinstalación.
ApplicationHome/
MiAplicacion.app
Documentos/
Library/Preferences
Tmp/
Directorios del SandBox
El Bundle es un directorio en el sistema de ficheros del iPhone que agrupa los recursos comunes de la aplicación (ejecutable, imágenes, recursos de internacionalización)
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
ApplicationHome/
MiAplicacion.app (ejecutable de la aplicación)
Settings.bundle (preferencias de la aplicación)
Icono.png (icono de la aplicación)
Default.png (imagen de la pantalla de bienvenida si la hay)
info.plist (lista de propiedades de la aplicación)
yo.png (una imagen cualquiera)
en.lproj (recursos de internacionalización)
es.lproj (recursos de internacionalización)
El bundle de una aplicación
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Integrar características del iPhone
Aunque no entra dentro del ámbito de éste documento y de la aplicación desarrollada, debido a
su alta complejidad, estudio a realizar y poco tiempo del que se dispone, los desarrolladores
pueden hacer uso y de ésta manera explotar completamente las tecnologías del iPhone, de numeras características y funcionalidades extras como son, por ejemplo:
• Uso del acelerómetro
Utilizar el acelerómetro que viene integrado en el iPhone para dotar de mayor riqueza visual y
experiencia de usuario a la aplicación, pudiendo cambiar las vistas y el interfaz gráfico según la
posición del iPhone.
Acelerómetro en el iPhone
A continuación un ejemplo de como recibir un evento por medio del acelerómetro
(void)accelerometer:(UIAccelerometer *)accelerometer
didAccelerate:(UIAcceleration *)acceleration
{
UIAccelerationValue x, y, z;
x = acceleration.x;
y = acceleration.y;
z = acceleration.z;
// utilizar los valores para lo que queramos..
}
Uso de acelerómetro
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
• Uso de la cámara
Integrar la cámara en la aplicación desarrollada, permitiendo hacer fotos ( vídeo aún no) y trabajar con ellas directamente desde nuestro software.
A continuación un ejemplo de como iniciar la cámara desde nuestra aplicación
-(BOOL)startCameraPickerFromViewController:(UIViewController*)controller
usingDelegate:(id<UIImagePickerControllerDelegate>)delegateObject
{
if ( (![UIImagePickerController
isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
|| (delegateObject == nil) || (controller == nil))
return NO;
UIImagePickerController* picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = delegateObject;
picker.allowsImageEditing = YES;
// Ahora es cuando se muestra el interfaz de manera asíncrona
[controller presentModalViewController:picker animated:YES];
return YES;
}
Uso de la cámara integrada en el iPhone
• Uso de la localización del dispositivo
Gracias al Framework Core Location, podemos conocer la posición actual del dispositivo utilizando para ello la triangulación de la señal emitida y recibida por la antena.
Un ejemplo de ello es la aplicación de Google Maps que viene ya integrada con el iPhone, la
cuál nos muestra nuestra localización en el mapa.
A continuación un ejemplo del uso de la localización mediante el framework Core Location.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
@implementation MyLocationGetter
- (void)startUpdates
{
// Creamos el manejador de la localización.
if (nil == locationManager)
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.distanceFilter = 1000; // 1 kilometro
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
[locationManager startUpdatingLocation];
}
// Método a implementar del protocolo CLLocationManagerDelegate.
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
// Ahora impedimos que se actualice para ahorrar la batería.
[manager stopUpdatingLocation];
printf("latitude %+.6f, longitude %+.6f\n",
newLocation.coordinate.latitude,
newLocation.coordinate.longitude);
}
@end
Uso de la localización en el iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
A P L I CACIÓN DESARROLLADA
Para el curso de “Desarro"o de dispositivos móviles” de la Universidad de Oviedo se ha optado por
el desarrollo de una aplicación sencilla (debido al poco tiempo disponible y utilizado sobre todo para investigar y documentar las tecnologías utilizadas en el iPhone, las herramientas disponibles, el proceso de desarrollo y el ciclo de vida de una aplicación para el iPhone) dentro del
marco denominado Aplicaciones de Utilidad.
El código fuente del proyecto se adjunta con ésta documentación.
Rebote
La aplicación desarrollada se llama Rebote. Se basa en una de las aplicaciones que los desarrolladores de Apple utilizan para ilustrar el iPhone SDK, como es el famoso Hello World.
En este caso el botón o rectángulo puede moverse por la pantalla gracias a la captura de eventos en el interfaz llevada a cabo por el controlador ReboteView. A su vez el botón una vez movido cambia un poco de tamaño y tras unos segundos vuelve a su posición de partida. Si se lanza contra la barra de estado rebota.
Es una sencillísima aplicación que intenta ilustrar mediante la captura de eventos, y el dibujado
de ellos, el “Event and drawing cycle” estudiando con detenimiento en éste documento.
Para la interfaz gráfica se ha utilizado Interfaz Builder mientras que para el desarrollo del código Xcode.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Aplicación Rebote en el simulador del iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
DI S T RI B U CI O N DE LAS
A P L I CACIONES
Una vez desarrollada y probada la aplicación, el siguiente paso es su distribución para ponerla
en manos de los usuarios, y cuantos más mejor.
Para ello, Apple ha puesto a disposición de los desarrolladores una plataforma de venta online
llamada App Store.
Ciclo de desarro"o de una aplicación, finalizando con su distribución.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
App Store
Actualmente sólo está disponible para EEUU aunque previsiblemente, a partir de Julio de
2008, también lo esté para España. Para poder las aplicaciones a disposición de los usuarios,
hay que darse de alta en uno de los tres planes que Apple ha puesto a disposición de los desarrolladores.
Una vez elegido el plan (comercial, autónomo o empresa) y realizado el pago de la correspondiente cuota anual, el desarrollador puede categorizar su aplicación y ponerla/ subirla a la plataforma de distribución App Store eligiendo el mismo el precio de la misma así como permitir su
descarga gratuita.
El usuario, por contraste, accederá al App Store desde la aplicación iTunes de su Mac o PC.
Una vez elegida la aplicación ha descargar y realizado el pago si ésta lo requiere se descargará
automáticamente a su PC o Mac y ya podrá instalarla en el iPhone o iPod Touch de nuevo a
través de la aplicación iTunes.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
CO N CLUSI O N ES
Los desarrolladores de dispositivos móviles y desarrolladores de la plataforma Mac OS X han
encontrado en la salida del iPhone y la distribución del SDK una oportunidad única de crear
aplicaciones sobre un dispositivo que integra una cantidad enorme de nuevas tecnologías. El
uso de la interfaz multitactil, los acelerómetros o la localización permiten crear aplicaciones o
videojuegos con una riqueza visual, interfaz y sobre todo experiencia de usuario sobresaliente.
Disponer a su vez de buenas herramientas de desarrollo y de una plataforma estable que lo sustenta todo, basada en Mac OS X y con Cocoa Touch como estandarte, hace que el proceso de
desarrollo de una aplicación para el iPhone se centre exclusivamente en transmitir correctamente nuestro objetivo o finalidad de la aplicación desarrollada.
El periodo de aprendizaje se centra en conocer el lenguaje Objective-c y estudiar el framework
Cocoa Touch, a partir de ahí, el desarrollo y la distribución es sumamente sencillo.
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
R E V I SIÓN HISTÓRICA DEL
DO C UMEN TO
La siguiente tabla describe los cambios realizados en Dispositivos móviles, iPhone.
FECHA
02/06/2008
CAMBIOS
Publicado el documento original de Dispositivos móviles, iPhone
Eduardo González Fernández, [email protected]
02-06-2008 | © Máster en Ingeniería Web
Eduardo González Fernández, [email protected]

Documentos relacionados