Atributos
Sigla: 
CI-0153
Créditos: 
4
Horas: 
5
Correquisitos: 
Clasificación: 
Curso propio
Descripción: 

Este curso ofrece el sustento teórico y las habilidades prácticas para diseñar, desarrollar y publicar aplicaciones móviles. Se utilizarán una o más plataformas como base para enseñar las técnicas de programación y los patrones de diseño en relación al desarrollo de aplicaciones móviles. Se hace énfasis en los procesos, herramientas y marcos de desarrollo necesarios para desarrollar aplicaciones en dispositivos móviles actuales y emergentes.  Los estudiantes deberán trabajar en todas las etapas del ciclo de desarrollo del software, desde el análisis hasta la implementación, prueba y publicación en un repositorio de aplicaciones. Esto permitirá a los estudiantes entender mejor el impacto de las características de usuario, las capacidades del dispositivo, la infraestructura de telecomunicaciones y el ambiente de puesta en marcha, en el desarrollo de software para dispositivos móviles.  El curso está enfocado a estudiantes avanzados de  la  carrera  de  Bachillerato  en  Computación  e Informática y en particular se perfila como una profundización de conocimiento para el énfasis de Ingeniería de Software.  Se espera que una vez concluido este curso, el estudiante muestre la capacidad de desempeñarse como desarrollador en proyectos de aplicaciones móviles de mediana complejidad. Se sugiere utilizar aprendizaje basado en problemas y aprendizaje basado en proyectos como estrategias didácticas para lograr los objetivos de aprendizaje de este curso.

Objetivo general: 

El objetivo general del curso es que los estudiantes adquieran conocimientos y habilidades de desarrollo de software nativo en distintos tipos de dispositivos móviles, a través de la realización de todas las tareas del ciclo de vida de desarrollo, desde el análisis, hasta la implementación, la prueba y la publicación, con el fin de que entiendan el impacto de las características de usuario, las capacidades de los dispositivos, la infraestructura de telecomunicaciones y el ambiente de puesta en marcha en los requerimientos de un proyecto de software para dispositivos móviles.

Objetivos específicos: 

Durante este curso el estudiante desarrollará habilidades para:

  1. Explicar las limitaciones y retos de trabajar en un entorno móvil e inalámbrico, con el fin de reconocer oportunidades comerciales y de investigación presentadas por estas tecnologías, mediante el estudio de las características de los dispositivos móviles actuales y emergentes.
  2. Explicar los diferentes modelos y arquitecturas de software usados para desarrollar aplicaciones móviles, para reconocer cómo y cuándo aplicarlos, mediante su uso práctico.
  3. Utilizar los diferentes componentes y la estructura de los marcos de trabajo (frameworks) para el desarrollo de aplicaciones móviles, con el fin de determinar cómo y cuándo aplicarlos en el contexto de un sistema, mediante su uso práctico en una aplicación móvil.
  4. Utilizar los diferentes componentes y la estructura de los marcos de trabajo (frameworks) para el desarrollo de aplicaciones móviles, con el fin de determinar cómo y cuándo aplicarlos en el contexto de un sistema, mediante su uso práctico en una aplicación móvil.
  5. Trabajar con las limitaciones y las capacidades de un rango de dispositivos móviles computacionales, para reconocer su impacto en los requerimientos de un proyecto de software móvil, a través del diseño, implementación y puesta en marcha de aplicaciones móviles en un entorno de desarrollo apropiado.
Contenidos: 
Objetivo específico Eje temático Desglose
1, 2 Introducción al desarrollo de aplicaciones móviles Dispositivos móviles:  historia, características especiales.
Aplicaciones móviles:  historia (evolución), tipos (web y nativas).
Plataformas:  historia (versiones), lenguajes, entornos de desarrollo, comparación entre unas y otras, ventajas entre unas y otras (iOS, Android, Windows, BlackBerry 10, Firefox OS, Symbian, Tizen, Ubuntu, etc.).
 
2, 3, 4, 5 Diseño de la interfaz de usuario móvil Prototipado:  prototipado en papel, prototipado con mockups.
Interfaz gráfica de usuario:  uso efectivo de la pantalla, uso de recursos, uso de los elementos visuales, principios de usabilidad, internacionalización, accesibilidad, personalización (estilos).
2,3,5 Multitarea y comunicación Multitarea:  tareas asíncronas, comunicación entre procesos.
Comunicación:  sockets, conexiones HTTP y HTTPS, notificaciones push, procesamiento de los tipos de medios recibidos en la comunicación (XML y JSON), NFC, Bluetooth, Wifi, Wifi-Direct, Miracast, micro-HDMI. Comunicación con un back-end.
2,3,5 Sensores Sensores:  sistema de posicionamiento global (GIS), acelerómetro, giroscopio, sensores de luz, proximidad, otros sensores emergentes
3, 5 Almacenamiento Almacenamiento:  archivos locales (binarios y texto), bases de datos locales y remotas, almacenamiento en la nube.
2,4 Patrones de diseño Patrones de diseño:  Model-View-Controller (MVC), Model-View-Presenter (MVP), enlace de datos (data binding), Model-View-ViewModel (MVVM), guías y mejores prácticas.
2, 3, 4 Seguridad Seguridad:  cuentas, permisos de aplicaciones, firma de aplicaciones, niveles de acceso por rol, protección de datos sensibles, API de cifrado nativo.
2, 3, 5 Depuración del rendimiento Rendimiento y optimización:  herramientas de depuración, manejo de memoria (prevención y depuración de fugas de memoria), manejo adecuado de la batería, depuración de tiempos de ejecución, bitácoras internas y externas.
2,5 Publicación de aplicaciones Publicación de aplicaciones en repositorios o tiendas:  requisitos, procedimiento de publicación y aprobación, actualizaciones, aplicaciones de pago, microtransacciones, suscripciones, evaluación del éxito, optimización en los resultados de búsqueda de las tiendas.
Bibliografía: 

Libro de texto recomendado:

  1. McWherter J., Gowell D., Professional Mobile Application Development, John Wiley & Sons, 2012.

Otra bibliografía de apoyo:

  1. Hermes D., Xamarin Mobile Application Development: Cross-Platform C# and Xamarin.Forms Fundamentals, Apress, 2015.
  2. Ludin A., Learn BlackBerry 10 App Development, A Cascades Driven Approach, Apress, 2014.
  3. Shackles G., Mobile Development with C#: Building Native iOS, Android, and Windows Phone Applications, O'Reilly Media, Inc., 2012.
     
LIberación de responsabilidad: 

Este no es un documento oficial. Documentos oficiales se entregan en la secretaría de la escuela.