dispositivos mÓviles iphonediagramas.diagramasde.com/otros/iphoneintro.pdf · el número de...

44
DISPOSITIVOS MÓVILES IPHONE 02-06-2008 | © Máster en Ingeniería Web Eduardo González Fernández, [email protected]

Upload: others

Post on 16-Oct-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

DISPOSITIVOS MÓVILESIPHONE

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 2: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 3: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 4: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

INTRODUCCIÓ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 dis-positivos móviles, para posteriormente, realizar un análisis y diseño de la aplicación desarrolla-da para el curso de “Desarro"o de Dispositivos Móviles” del Máster de Ingeniería Web de la Uni-versidad 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 tec-nologí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 Fe-brero 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 5: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 as-pecto 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á ca-paz 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 ha-cen 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 6: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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, fra-meworks 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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 7: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

IPHONE, CARACTERÍSTICAS Y FUNCIONALIDADES

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 desarro-llado 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 Ene-ro de 2007 en la Macworld de ese año.

iPhone

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 8: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 siste-ma 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 fun-ciona 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 opera-doras.

• Tecnología multitactil que revoluciona la manera de interactuar entre el usuario y el disposi-tivo.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 9: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 10: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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ági-na 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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 11: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Página principal en modo apaisado

Galería de fotos en el iPhone

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 12: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Página de datos personales

Formulario en un iPhone

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 13: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Página de contacto en modo apaisado

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 14: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

PLATAFORMA 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 dis-positivo (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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 15: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Xcode

Esta herramienta trabaja con ficheros Java (.java), C/C++ (.h,.c,.cpp), Objective-C (.h,.m) y Ob-jective-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 actual-mente 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 16: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Proyecto en Xcode

Los últimos test de la aplicación, antes justo de ser puesta en producción o distribuirla oficial-mente, 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 17: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 apli-caciones. 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 rendimien-to que en una CPU) así como del uso de la batería que está haciendo.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 18: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 19: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Lenguaje de desarrollo

La plataforma iPhone OS usa el lenguaje Objective-C para el desarrollo de la aplicación. Objec-tive-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:

E X T E N S I Ó N T I P O

.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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 20: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 fra-meworks 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, utili-zado en el desarrollo de aplicaciones para Mac OS X, y Cocoa Touch:

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 21: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 22: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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, segu-ridad, manejo de la memoria y los drivers del dispositivo.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 23: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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:

Listado de Frameworks en iPhone OS

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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 24: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

PROCESO DE DESARROLLO DE UNA APLICACIÓN EN EL IPHONE

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 breve-mente 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 ha-cerlo 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 25: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

El uso de la memoria

El uso de la memoria es crucial en cualquier software, pero cuando estamos hablando de móvi-les aún más. El iPhone no dispone de espacio de cache para la memoria luego hay que tener es-pecial 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 Instru-ments 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á in-mediatamente, 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 desarro-lladas 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 apli-cación se cerrara (entra en modo pausa) y es nuestro deber guardar tanto los datos como el es-tado 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 26: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 dis-positivo. Dicha ventana puede tener varias vistas pero el usuario accederá a ellas de manera se-cuencial 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 27: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 ejem-plo, si es un buen punto de partida y por dónde seguro irán muchos desarrolladores de aplica-ciones para el iPhone.

Estilo de las aplicaciones

Decidido que tipo de aplicación desarrollar ( en nuestro caso nativa en el iPhone ), hay que sa-ber 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 organiza-ció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 usua-rio.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 28: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 mos-trar la información. Suelen ser visualmente atractivas y la información se organiza en una suce-sió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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 29: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

3. Aplicaciones a pantalla completa

Este tipo de aplicaciones ofrecen todo su contenido a pantalla completa y con una riqueza vi-sual 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 an-teriores 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 desa-rrolladores 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 ex-pertos. Si buscas que se diviertan o resuelvan un problema o necesidad. Está dirigida a perso-nas jóvenes, ejecutivos o personas mayores. Se va a ejecutar todos los días como puede ser le-er 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 30: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

• Utilizar una gama de colores para la interfaz gráfica que consiga transmitir al usuario un fe-eling 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 de-dos, 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 su-periores 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 ofre-cer 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 requi-sito que como desarrolladores debemos estudiar para poder abordar el desarrollo de la aplica-ció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”.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 31: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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.

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 obje-to determinado para su ejecución.

#import <UIKit/UIKit.h> int main(int argc, char *argv[]) { NSAutoreleasePool* pool = [NSAutoreleasePool new]; UIApplicationMain(argc, argv, @"UIApplication", @"AppController"); [pool release]; return 0; }

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 32: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Ciclo de vida de una aplicación

Por último, conocer el entorno de ejecución de las aplicaciones es fundamental y último requi-sito que como desarrolladores debemos estudiar para poder abordar el desarrollo de la aplica-ció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 aplica-ción se inicia el Events and Drawing cycle, el cual captura los eventos y responde ante ellos. Pe-ro 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 33: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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, restaura-ción y desinstalación.

Directorios del SandBox

El Bundle es un directorio en el sistema de ficheros del iPhone que agrupa los recursos comu-nes de la aplicación (ejecutable, imágenes, recursos de internacionalización)

MiAplicacion.appApplicationHome/ Documentos/ Library/Preferences Tmp/

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 34: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

El bundle de una aplicación

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)ApplicationHome/ 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)

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 35: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 nu-meras 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

Uso de 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.. }

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 36: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

• Uso de la cámara

Integrar la cámara en la aplicación desarrollada, permitiendo hacer fotos ( vídeo aún no) y tra-bajar con ellas directamente desde nuestro software.

A continuación un ejemplo de como iniciar la cámara desde nuestra aplicación

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 utili-zando 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.

-(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; }

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 37: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Uso de la localización en el iPhone

@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

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 38: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

APLICACIÓ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 to-do para investigar y documentar las tecnologías utilizadas en el iPhone, las herramientas dispo-nibles, 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 desarro-lladores 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 even-tos en el interfaz llevada a cabo por el controlador ReboteView. A su vez el botón una vez mo-vido cambia un poco de tamaño y tras unos segundos vuelve a su posición de partida. Si se lan-za 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ódi-go Xcode.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 39: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

Aplicación Rebote en el simulador del iPhone

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 40: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

DISTRIBUCION DE LAS APLICACIONES

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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 41: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

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 desa-rrolladores.

Una vez elegido el plan (comercial, autónomo o empresa) y realizado el pago de la correspon-diente cuota anual, el desarrollador puede categorizar su aplicación y ponerla/ subirla a la plata-forma 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 42: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

CONCLUSIONES

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 sus-tenta 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 correcta-mente 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.

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 43: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

REVISIÓN HISTÓRICA DEL DOCUMENTO

La siguiente tabla describe los cambios realizados en Dispositivos móviles, iPhone.

F E C H A C A M B I O S

02/06/2008 Publicado el documento original de Dispositivos móviles, iPhone

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]

Page 44: DISPOSITIVOS MÓVILES IPHONEdiagramas.diagramasde.com/otros/iPhoneIntro.pdf · El número de dispositivos móviles y el número de tec-nologías nacidas a su alrededor es cada vez

02-06-2008 | © Máster en Ingeniería Web

Eduardo González Fernández, [email protected]