Curso Académico:
2020/21
18771 - DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES
Información de la asignatura
Código - Nombre:
18771 - DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES
Titulación:
473 - Graduado/a en Ingeniería Informática
474 - Graduado/a en Ingeniería Informática y Matemáticas
722 - Graduado/a en Ingeniería Informática (Modalidad Bilingüe 2018)
734 - Graduado/a en Ingeniería Informática y Matemáticas (2019)
Centro:
350 - Escuela Politécnica Superior
Curso Académico:
2020/21
1. Detalles de la asignatura
1.3. Nivel
Grado (MECES 2)
1.4. Curso
473 - Graduado/a en Ingeniería Informática: 4
722 - Graduado/a en Ingeniería Informática (Modalidad Bilingüe 2018): 4
734 - Graduado/a en Ingeniería Informática y Matemáticas (2019): 5
1.5. Semestre
Segundo semestre
1.6. Número de créditos ECTS
6.0
1.7. Idioma
Español, English
1.8. Requisitos previos
-
1.9. Recomendaciones
Esta asignatura pertenece a las materias Tecnologías de la Información e Ingeniería del Software. Para sacar el mayor partido posible a la asignatura, son necesarios conocimientos de programación orientada a objetos. Estos conocimientos se adquieren principalmente en las asignaturas de Análisis y Diseño de Software y Proyecto de Análisis y Diseño de Software, de segundo curso del Grado en Ingeniería Informática.
1.10. Requisitos mínimos de asistencia
Este curso es eminentemente práctico y se desarrolla enteramente en los laboratorios de programación. La asistencia a clase es más que recomendable aunque no obligatoria.
1.11. Coordinador/a de la asignatura
Alejandro Sierra Urrecho
1.12. Coordinador de otra universidad
-
1.13. Competencias y resultados del aprendizaje
1.13.1. Competencias
TI1 Capacidad para comprender el entorno de una organización y sus necesidades en el ámbito de las tecnologías de la información y las comunicaciones.
TI3 Capacidad para emplear metodologías centradas en el usuario y la organización para el desarrollo, evaluación y gestión de aplicaciones y sistemas basados en tecnologías de la información que aseguren la accesibilidad, ergonomía y usabilidad de los sistemas.
TI6 Capacidad de concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación móvil.
1.13.2. Resultados de aprendizaje
Al finalizar el curso los estudiantes serán capaces de:
-
Instalar el entorno de desarrollo de Android.
-
Utilizar el entorno Android Studio, el depurador y las herramientas de desarrollo.
-
Explicar el significado y utilidad de cada elemento de un proyecto Android: src, gen, ficheros .jar, assets, bin, libs, res y fichero de manifiesto.
-
Utilizar recursos con naturalidad (cadenas, dimensiones, colores, …) en lugar de constantes en el código java y en los ficheros XML.
-
Especificar interfaces de usuario atractivas mediante ficheros XML de diseño, y el diseño material.
-
Responder a eventos de la interfaz de usuario mediante la sobrecarga de métodos callback pertenecientes a los escuchadores de eventos. Por ejemplo, onClick() del escuchador de eventos OnClickListener.
-
Dibujar el diagrama del ciclo de vida de una actividad.
-
Sobrecargar los métodos del ciclo de vida de cada actividad adecuadamente.
-
Garantizar la persistencia frente a rotaciones mediante la clase ViewModel.
- Simplificar la gestión de las vistas mediante data binding.
-
Utilizar intenciones (intents) para ejecutar una actividad desde otra del mismo proyecto.
-
Diseñar interfaces de usuario flexibles mediante fragmentos.
-
Programar la funcionalidad de los fragmentos mediante interfaces que deberán implementar las actividades que alojen los fragmentos.
- Observar objetos de tipo LiveData desde fragmentos y actividades.
-
Construir menús y mostrar diálogos de aviso.
-
Distinguir entre las distintas formas de almacenar información: preferencias, ficheros, bases de datos, proveedores de contenidos, …
-
Utilizar las preferencias para compartir información entre actividades en la forma de pares clave-valor.
-
Utilizar la biblioteca ROOM para crear una base de datos SQLite.
-
Utilizar servicios de Google como Firebase.
- Asegurar, empaquetar e instalar aplicaciones Android.
1.13.3. Objetivos de la asignatura
El principal objetivo de esta asignatura es que al final del curso los estudiantes sean capaces de diseñar y construir aplicaciones para dispositivos móviles usando la plataforma Android. Para alcanzar este objetivo, los estudiantes tienen que desarrollar paso a paso una aplicación Android completa.
Esta asignatura ayuda a adquirir las siguientes competencias de acuerdo con el currículo:
- TI3. Capacidad para emplear metodologías centradas en el usuario y la organización para el desarrollo, evaluación y gestión de aplicaciones y sistemas basados en tecnologías de la información que aseguren la accesibilidad, ergonomía y usabilidad de los sistemas.
- TI6. Capacidad de concebir sistemas, aplicaciones y servicios basados en tecnologías de red, incluyendo Internet, web, comercio electrónico, multimedia, servicios interactivos y computación móvil.
- IS3. Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles.
- CC3. Capacidad para evaluar la complejidad computacional de un problema, conocer estrategias algorítmicas que puedan conducir a su resolución y recomendar, desarrollar e implementar aquella que garantice el mejor rendimiento de acuerdo con los requisitos establecidos.
1.14. Contenidos del programa
- Kotlin
- El entorno de desarrollo
- Recursos
- El fichero de diseño
- Escuchadores
- Data binding
- El diseño material
- El ciclo de vida de una actividad
- ViewModel
-
Intenciones
-
Fragmentos
- LiveData
-
La vista recicladora
-
La biblioteca ROOM
-
Menús
-
Preferencias
-
Firebase
1.15. Referencias de consulta
El estudiante debe familiarizarse con la página de documentación que encontrará en la web de desarrollo de Android:
http://developer.android.com/index.html#
Esta documentación incluye áreas específicas sobre diseño, desarrollo y distribución de aplicaciones. Debido a la constante evolución del lenguaje, se trata de un recurso inapreciable debido a su constante actualización.
También es muy recomendable cursar los laboratorios que Google actualiza regularmente, con mucha probabilidad aquí encontraréis explicaciones claras y paso a paso de los últimos APIs del lenguaje:
https://codelabs.developers.google.com/codelabs/kotlin-android-training-welcome/index.html?index=..%2F..index#1
Lo que sigue es una lista de las principales referencias:
- Kotlin in Action. Dmitry Jemerov y Svetlana Isakova. Manning Publications, 2016.
Excelente introducción a Kotlin.
Se trata de la cuarta edición de un texto introductorio a la vez que completo sobre Android. Es probablemente uno de los mejores libros sobre esta materia, si bien es cierto que esta última edición no alcanza el nivel de las anteriores, en parte debido a la rápida evolución del lenguaje.
Este libro combina una introducción amigable a Android junto con una introducción a Kotlin, que es el lenguaje que utilizaremos durante el curso en lugar de Java.
2. Metodologías docentes y tiempo de trabajo del estudiante
2.1. Presencialidad
|
#horas
|
Porcentaje de actividades presenciales (mínimo 33% del total)
|
53
|
Porcentaje de actividades no presenciales
|
97
|
Esta asignatura tiene un carácter eminentemente práctico y fomenta el aprendizaje del estudiante mediante la incorporación gradual de funcionalidades a una aplicación. Los estudiantes trabajarán mediante una plataforma online, ENCODE, que les irá explicando paso a paso cada concepto de la materia. Los profesores programarán semanalmente el trabajo en la plataforma, y comprobarán que los estudiantes han entendido correctamente los conceptos estudiados.
Los estudiantes tendrán que desarrollar una aplicación de forma gradual incorporando y poniendo en práctica los conocimientos estudiados semanalmente. Además, la plataforma pondrá a prueba el aprendizaje planteando preguntas de tipo test y pequeños ejercicios de programación.
Habrá tres entregas del proyecto de programación durante el curso. La primera entrega en Kotlin no contará en la calificación final de la asignatura. Las siguientes dos entregas se calificarán entre 0 y 10. La calificación final de la asignatura será una media ponderada de las calificaciones de las dos últimas entregas.
Al finalizar la asignatura, cada estudiante, de manera individual, habrá desarrollado su propia aplicación Android incorporando la mayoría de los aspectos principales del lenguaje.
2.2. Relación de actividades formativas
Actividades presenciales
|
Nº horas
|
Clases teóricas en aula
|
0
|
Seminarios
|
|
Clases prácticas en aula
|
|
Prácticas clínicas
|
|
Prácticas con medios informáticos
|
|
Prácticas de campo
|
|
Prácticas de laboratorio
|
43
|
Prácticas externas y/o practicum
|
|
Trabajos académicamente dirigidos
|
|
Tutorías
|
5
|
Actividades de evaluación
|
5
|
Otras
|
97
|
3. Sistemas de evaluación y porcentaje en la calificación final
3.1. Convocatoria ordinaria
La calificación obtenida por el estudiante en esta asignatura será la correspondiente a un proyecto de programación, que se desarrollará individualmente y del que habrá tres entregas:
- Para aprobar la asignatura es indispensable presentar las tres entregas en plazo:
- La calificación final de la asignatura en la convocatoria ordinaria (pORD) se calculará de acuerdo con la siguiente fórmula:
pORD = 0.4 p2 + 0.6 p3.
3.1.1. Relación actividades de evaluación
Actividad de evaluación
|
%
|
Examen final (máximo 70% de la calificación final o el porcentaje que figure en la memoria)
|
60
|
Evaluación continua
|
40
|
3.2. Convocatoria extraordinaria
3.2.1. Relación actividades de evaluación
Actividad de evaluación
|
%
|
Examen final (máximo 70% de la calificación final o el porcentaje que figure en la memoria)
|
|
Evaluación continua
|
100
|
4. Cronograma orientativo
Semana
|
Contenido
|
Horas presenciales
|
Horas no presenciales
|
1
1 - 5 febrero
|
Kotlin
|
3
- Instalar IntelliJ Idea
|
5
- Leer la guía docente
- Matricularse en ENCODE.
|
2
8 - 12
febrero
|
|
3
- ENCODE: kotlin.
|
5
- Desarrollo de una aplicación de consola en kotlin.
- Presentación del borrador de la app a los profesores.
|
3
15 - 19
febrero
|
|
3
- ENCODE: Kotlin
Primera entrega
|
5
- Completar la lógica de la aplicación para la primera entrega.
|
4
22 - 25
febrero
|
Android: fragmentos, vista recicladora, ViewModel y LiveData
|
3
- Instalar Android Studio y los emuladores.
|
5
- ENCODE: Android.
|
5
1 - 5
marzo
|
|
3
- ENCODE: Android.
|
5
- ENCODE: Android.
- Comienzo del desarrollo de una app en Android
|
6
8 - 12
marzo
|
|
3
- ENCODE: Android.
- Utilización de un ViewModel para garantizar la persistencia frente a rotaciones
|
5
- ENCODE: Android.
- Desarrollo de fragmentos.
|
7
15 – 19
marzo
|
|
3
- ENCODE: Android.
- Resolución de la navegación entre fragmentos de la app
|
5
- ENCODE: Android.
- Presentación del borrador de la app a los profesores.
|
8
22 - 26
marzo
|
|
3
- Utilización de LiveData para implementar parte de la funcionalidad.
|
5
- ENCODE: Android.
|
9
6 - 9
abril
|
|
3
Segunda entrega
|
5
- ENCODE: Android.
|
10
12 - 16
abril
|
Bases de datos y comunicación entre fragmentos
|
3
- ENCODE: Android.
|
5
- ENCODE: Android.
|
11
19 - 23
abril
|
|
3
- ENCODE: Android.
- Mejora de la navegación mediante la utilización de argumentos de fragmentos.
|
5
- ENCODE: Android.
- Mejora de la navegación mediante la utilización de interfaces de interacción.
|
12
26 - 30
abril
|
|
- ENCODE: Android.
- La biblioteca ROOM
|
- ENCODE: Android.
|
13
3 – 7
mayo
|
|
3
- Incorporación de Firebase database al proyecto.
|
5
- Presentación del borrador del proyecto a los profesores.
|
14
10 - 14
mayo
|
|
3
- Incorporación de Authentication.
|
5
- ENCODE: Android.
- Mejora de la app mediante la inclusión del menú de preferencias.
|
15
17 – 21
mayo
|
|
3
Entrega final
|
5
|