Guiones de las sesiones Pr acticas de Programaci on para...

20
Guiones de las sesiones Pr´acticas de Programaci´onparaDispositivosM´oviles Inteligentes Luis Montesano y Ana C. Murillo DIIS - Universidad de Zaragoza. Resumen Estos guiones sirven como base para la realizac´ on de un conjunto de sesiones pr´ acticas de laboratorio para practicar diferentes concep- tos relacionados con programaci´ on sobre telefonos inteligentes. Estas actividades est´ an dise˜ nadas con dos prop´ ositos. En primer lugar, co- mo ejemplo ilustrativo y eje principal de las pr´ acticas de asignaturas de programaci´ on orientada a objetos, en particular, Tecnolog´ ıas de la Programaci´ on del cuarto cuatrimestre del grado de Inform´ atica. En segundo lugar, como un curso espec´ ıfico (optativo o de libre elec- ci´ on) sobre el desarrollo de aplicaciones para m´ oviles. Los conceptos principales y las competencias a desarrollar por el alumno durante la realizaci´ on de las pr´ acticas son independientes de la tecnolog´ ıa espec´ ıfica utilizada. En esta memoria, se ha elegido IOS como plata- forma de desarrollo. Descripci´onGeneral Las sesiones de pr´ acticas estan organizadas en funci´ on de las competen- cias generales que el alumno debe adquirir durante el curso: Conocer, entender y usar adecuadamente los conceptos de programa- ci´ on orientada a objetos (herencia, polimorfismo, dinamismo, patrones de comunicaci´ on entre objetos, ...) 1

Transcript of Guiones de las sesiones Pr acticas de Programaci on para...

Guiones de las sesiones Practicas deProgramacion para Dispositivos Moviles

Inteligentes

Luis Montesano y Ana C. MurilloDIIS - Universidad de Zaragoza.

Resumen

Estos guiones sirven como base para la realizacon de un conjuntode sesiones practicas de laboratorio para practicar diferentes concep-tos relacionados con programacion sobre telefonos inteligentes. Estasactividades estan disenadas con dos propositos. En primer lugar, co-mo ejemplo ilustrativo y eje principal de las practicas de asignaturasde programacion orientada a objetos, en particular, Tecnologıas dela Programacion del cuarto cuatrimestre del grado de Informatica.En segundo lugar, como un curso especıfico (optativo o de libre elec-cion) sobre el desarrollo de aplicaciones para moviles. Los conceptosprincipales y las competencias a desarrollar por el alumno durantela realizacion de las practicas son independientes de la tecnologıaespecıfica utilizada. En esta memoria, se ha elegido IOS como plata-forma de desarrollo.

Descripcion General

Las sesiones de practicas estan organizadas en funcion de las competen-cias generales que el alumno debe adquirir durante el curso:

Conocer, entender y usar adecuadamente los conceptos de programa-cion orientada a objetos (herencia, polimorfismo, dinamismo, patronesde comunicacion entre objetos, ...)

1

Introduccion y toma de contacto con tecnologıas de programacion:bases de datos, interfaz de usuario, gestion de memoria, gestion deeventos, programacion de tareas, redes ...

Ver ficha tecnologıas

En paralelo, el alumno tambien debera adquirir competencias especıficassobre la programacion de telefonos inteligentes:

Entender las especificidades de un dispositivo movil con recursos li-mitados (procesador, bateria,...)

Utilizar los sensores integrados en el dispositivo

Gestion de notificaciones

Gestion de datos (local y remota)

Conocer los modelos de negocio y gestion de aplicaciones para moviles

Estan disenadas de forma incremental de forma que el alumno va tra-bajando sobre un mismo proyecto a lo largo de todas las sesiones. Estaorganizacion obliga al alumno a adquirir las competencias basicas antes deabordar las mas avanzadas y permite implementar facilmente un sistema deevaluacion continua. Para facilitar la incorporacion de los alumnos atrasadosa las practicas, en aquellas sesiones que lo requieran se pondra a disposicionde los alumnos una solucion que pueda ser utilizada para la realizacion delas sesiones siguientes.

El programa basico consta de 7-8 sesiones practicas para un total de 15horas de laboratorio cumpliendo con las horas de laboratorio de la asignatu-ra Tecnologıas de la Progrmacion (cuarto semestre, grado de Informatica).Estan divididas en cinco sesiones iniciales guiadas seguidas de dos o tressesiones de proyecto (individual o por parejas) en las que el(los) alumnosdeben resolver un problema relacionado con los conceptos vistos durante elcurso de forma autonoma seleccionando las tecnologias adecuadas, disenan-do la solucion al problema de acuerdo a estas tecnologıas, desarrollandolay, finalmente, presentando y defendiendo el trabajo realizado.

Al programa basico se han anadido sesiones adicionales que pueden com-pletar el curriculum a traves de un estudio mas en profundidad tanto de lascompetencias generales como de aquellas especıficas de dispositivos movilesinteligentes. Estas actividades se han anadido siempre que ha sido posiblejunto con la sesiones relacionadas del programa basico. Los temas adicio-nales aparecen al final y pueden ser parte de las sesiones del proyecto.

2

Practica 1Introduccion a Orientacion a Objetos yObjective-C. PatronModel-View-Controller.

1.1. Descripcion

En esta sesion de laboratorio el alumno aprendera a declarar clases enObjective C y a utilizar las construcciones basicas proporcionadas con estelenguaje (la NSFoundation). La implementacion de estos elementos basicosse integraran en una aplicacion para iOS dada ”vacıa”, solamente con lainterfaz construida para poder visualizar los datos.

El alumno debe implementar dos nuevas clases, alumno y curso, que con-tengan al menos un elemento de las estructuras basicas del NSFoundationexplicadas en clase.

La aplicacion dada requiere que la clase alumno tenga dos atributosdel tipo NString con nombres nombre y apellidos que se visualizaran en lavista basica dada. El resto de elementos, se pueden visualizar mediante laescritura por la consola (NSLog).

1.2. Objetivos

Al final de esta practica el alumno debe ser capaz de:

Crear una clase

Diferenciar entre las partes publicas y privadas y entre el interfaz yla implementacion

3

1. Practica 1 - L. Montesano, A. C. Murillo

Utilizar elementos basicos de la NSFoundation (Arrays, Dictionary,...)

Familiarizarse con el patron de diseno Model-View-Controler (MVC):integrar el modelo dentro de una estructura MVC dada.

Familiarizarse con el entorno de desarrollo que se utilizara durante elcurso

1.3. Material proporcionado y herramientas a utilizar

X-Code (entorno de desarrollo y depuracion en OS X)

Simulador iOS

Aplicacion basica para el iPhone donde integrar y visualizar las clasesdisenadas.

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

(a) (b)

Figura 1.1: Ventana de la aplicacion basica dada donde integrar/visualizarlas clases disenadas (a) y captura de la consola donde se visualizan losmensajes NSLog.

4

Practica 2Diseno de vistas basicas para interfacessobre iOS. Delegacion entre clases.

2.1. Descripcion

En esta sesion de laboratorio el alumno implementara el esquema basicode diseno de interfaces en aplicaciones para telefonos moviles (en iOS enparticular). El alumno implementara un ”Hello World”basico para ver comofunciona el entorno visual de diseno de interfaces, junto con una aplicacionsencilla que siga el patron Model-View-Controller e incluya ejemplos deutilizacion del concepto de delegacion.

2.2. Objetivos

Implementar el Hello World - aplicacion basica sin modelo de datos.

Familiarizarse con el entorno de desarrollo que se utilizara durante elcurso

Implementar una aplicacion sencilla pero que incluya todos los ele-mentos del patron MVC.

Anadir un ejemplo de uso de delegado a la aplicacion implementada.

5

2. Practica 2 - L. Montesano, A. C. Murillo

2.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Interface Builder

Depurador

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

(a) (b)

Figura 2.1: Vistas del Hello World (a) y ejemplo esquematico de la aplicacionMVC basica a implementar (b).

6

Practica 3Opciones de navegacion enaplicaciones para iOS. Controladoresde vistas.

3.1. Descripcion

En esta sesion el alumno implementara las opciones basicas de navega-cion en aplicaciones para iOS. Pestanas de navegacion (Tab − Bar), pilasde vistas (Navigation− controller) y vistas de tablas (Table− V iew).

3.2. Objetivos

Al final de esta sesion el alumno debe ser capaz de:Implementar e inte-grar con la vista basica desarrollada en las practicas anteriores

Diferenciar los distintas organizaciones de una aplicacion en funcionde los distintos tipos de pares de controladores y vistas:

• Menu tabulado: tab− bar

• Menu navegacion: navigation− controller

• Vista tabla: table− view

Extender la aplicacion anterior para mostrar listas de datos en unavista tabla y detalles en una vista simple, dentro de un controladorde tipo navegacion.

7

3. Practica 3 - L. Montesano, A. C. Murillo

(a) (b)

(c)

Figura 3.1: Vistas a desarrollar sobre el proyecto base, anadiendo las distin-tas opciones de navegacion requeridas en esta sesion: tab-bar incluyendo lavista simple desarrollada en sesiones anteriores (a), un navigation-controllersencillo (b) y una table-view desde la cual gestionar que datos se visualizanen la vista simple (c).

3.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Ejemplos basicos dados en clase: MyTabBar y PushPop.

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

8

3.4. Ampliaciones

3.4. Ampliaciones

En caso de que el curso en el que se incluyen estas sesiones sea especıficode programacion sobre smartphones, se podran ampliar las sesiones practi-cas de este bloque relacionados con dos sesiones adicionales que sirvan parapracticar mas opciones de vistas, controladores y navegacion en aplicacionessobre iOS.

Practica 3b: Vistas avanzadas I

Creacion de tu propia vista personalizada. Incluir una nueva vista disea-da completamente por codigo (sin IB), en la cual se incluyan ejemplos de usode los conceptos explicados en este bloque: Canvas, Subvistas, Sistemasde referencia,... En esta vista, se realizara un dibujo sobre la pantalla quepueda variar segun algun control de interaccion con el usuario (un botonque cambie la curvatura de un trazo, el color de los trazos,...).

Practica 3c: Vistas avanzadas II

Hacer uso de las vistas especıficas para mostrar contenidos web en laaplicacion. Al menos anadir a la aplicacion base una de cada vista de estostipos:

Vistas web

Vistas mapa

9

3. Practica 3 - L. Montesano, A. C. Murillo

(a) (b)

Figura 3.2: Ejemplos de algunas vistas mas avanzadas que se pueden anadiral proyecto: vistas con navegador web (a) o con un mapa (b).

10

Practica 4Gestion de eventos predefinidos:interfaz tactil, sensores de movimiento.

4.1. Descripcion

En esta sesion el alumno pondra en practica los conceptos aprendidospara manejo basico de eventos relacionados con sensores de movimiento y deeventos multi-touch en la interfaz tactil. Estos conceptos son especialmenteinteresantes para realizar en una sesion practica con dispositivos reales, yaque muchos de estos eventos son complicados de simular en el simulador delentorno de programacion.

4.2. Objetivos

Las tareas concretas a conseguir durante esta sesion son:

Entender un caso practico de programacion orientada a eventos y lastecnologıas usadas para implementarlo

Conocer los enventos del sistema e implementar un ejemplo de mane-jador para eventos ”predefinidos”de movimiento (rotacion del interfaz,shake).

Eventos de interaccion tactil - implementar un gestureRecognizerpara manejar la captura de al menos uno de los gestos ”standard.en lainterfaz multi-tactil del dispositivo (pinch, pan, doble click, scroll,...).

11

4. Practica 4 - L. Montesano, A. C. Murillo

4.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Dispositivos fısicos para realizar las pruebas (iPod touch y iPhone)

Ejemplos basicos dados en clase: AlternateViews y Multitouch.

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

4.4. Ampliaciones

En caso de que el curso en el que se incluyen estas actividades seaespecıfico de programacion sobre smartphones, se podran ampliar el bloquede actividades sobre este tema con dos sesiones adicionales que sirvan paraprobar mas tipos de eventos e implementar controladores mas avanzados delos mismos.

Practica 4b: Gestion avanzada de eventos I

Gestion manual de eventos. Ademas de capturar los gestos tıpicos sobrela interfaz tactil, se pueden disenar manejadores totalmente personalizadosde secuencias de distintos toques del usuario en la pantalla tactil. En estasesion, el alumno debe implementar una vista personalizada en la que sevaya haciendo un trazo a lo largo de la zona marcada con el dedo en lapantalla. Segun el numero de dedos utilizados, mostrar distintos colores ogrosores de trazo.

Practica 4c: Gestion avanzada de eventos II

Gestion de eventos de movimiento avanzados y servicios de localizacion.Anadir a la aplicacion base un ejemplo de utilizacion de uno de los servi-

cios para acceder a informacion de movimiento (CoreMotion, MotionManager)o de localizacion (LocationManager).

12

Practica 5 - Persistencia de datos:bases de datos y almacenamiento depreferencias.

5.1. Descripcion

En esta sesion el alumno debe desarrollar un sistema de gestion de datospersistente utilizando: 1) archivos para las preferencias del usuario y 2) basesde datos para recuperar informacion del catalogo alumnos y cursos.

5.2. Objetivos

Conocer y diferenciar las distintas tecnologıas disponibles para dotarde persistencia a los datos

Ser capaz de seleccionar entre ellas en base a los requisitos de la apli-cacion

Implementar un sistema persistente para los datos desarrollados enlas sesiones anteriores

Acceder a una base de datos remota

13

5. Practica 5 - L. Montesano, A. C. Murillo

5.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Base de datos accesible a traves de un servicio web remoto para lagestion de los datos persistentes

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

14

Practica 6 - Notificaciones 1

6.1. Descripcion

Las notificaciones automaticas se utilizan en muchas aplicaciones, porejemplo en las aplicaciones de e-email y mensajerıa, para avisar cuandohay mensajes nuevos o sin leer. En esta sesion el alumno debera utilizar elsistema de notificaciones para manejar tareas y para obtener informacionde un servidor remoto de forma periodica.

6.2. Objetivos

Entender el uso de notificaciones como forma de comunicacion con elusuario

Implementar un sistema de notificacion para avisos desde un calen-dario (la agenda del profesor, por ejemplo)

Implementar un sistema de encuesta periodica a un servidor remotobasado en notificaciones

6.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Servicio remoto para hacer encuestas de datos

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

1Sesiones adicionales para cursos especıficas sobre programacion para Smartphones

15

Practica 7 - Optimizacion, depuraciony profiling 1

7.1. Descripcion

Dadas las caracterısticas especıficas de los dispositivos moviles, una delas tareas mas importantes en el desarrollo de una aplicacion es asegurarque esta ultima hace un uso adecuado de los recursos del sistema. Paraello, los sistemas de desarrollo proporcionan habitualmente herramientasque permiten evaluar el uso de recursos (memoria, procesador, bateria)durante la ejecucion. En esta practica el alumno debera evaluar el proyectodesarrollado durante las sesiones anteriores para detectar y corregir fallos ylos cuellos de botella del sistema.

7.2. Objetivos

Conocer las metricas de rendimiento importantes en estos dispositivos

Utilizar las herramientas de depuracion y analisis del codigo (Instru-ments) para obtener las metricas para un proyecto

Ser capaz de analizar una aplicacion, detectar fallos y corregirlos ade-cuadamente

1Sesiones adicionales para cursos especıficas sobre programacion para Smartphones

17

7. Practica 7 - L. Montesano, A. C. Murillo

7.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

18

Sesion final (doble) - Proyecto: Agendadel profesor.

8.1. Descripcion

Durante las ultimas sesiones de practicas, el alumno debera proponeruna extension a la aplicacion de agenda desarrollada durante las sesionesanteriores para anadir una funcionalidad de entre una lista proporcionadaa los alumnos. Ejemplos de posibles extensiones son:

Parseo de un xml obtenido remotamente

Integracion de una libreria especıfica (por ejemplo, vision o realidadvirtual)

Uso de agenda, multimedia, mapas, sensores, ...

Derivar una vista/controlador de las clases bases

8.2. Objetivos

El alumno desarrollara un proyecto de un tamano y complejidad ma-yor que los de las sesiones individuales, enfocadas a practicar un temaen concreto.

En este trabajo se trabajara el depurado de la aplicacion y el desarrollocuidado de una interfaz realista.

Con este trabajo, el alumno tiene la oportunidad de profundizar enlos puntos que mas le interesen y motiven y realizar una aplicacionmas realista y cercana a un posible producto para un cliente.

19

8. Sesion final - L. Montesano, A. C. Murillo

8.3. Material proporcionado y herramientas a utilizar

(ademas de las descritas en sesiones anteriores)

Lista de proyectos a realizar sugeridos junto con los materiales aso-ciados

Documentacion listada disponible en la web del curso:http://webdiis.unizar.es/∼anacris/proyectoInnova.html.

20