Curso Académico:
2023/24
18771 - DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES
Información del Plan Docente
Código - Nombre:
18771 - DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES
Titulación:
473 - Graduado/a en Ingeniería Informática
734 - Graduado/a en Ingeniería Informática y Matemáticas (2019)
772 - Graduado/a en Ingeniería Informática (2022)
773 - Graduado/a en Ingeniería Informática (2022)
774 - Graduado/a en Ingeniería Informática (Modalidad Bilingüe 2022)
776 - Graduado/a en Ingeniería Informática y Matemáticas (2022)
Centro:
350 - Escuela Politécnica Superior
Curso Académico:
2023/24
1. Detalles de la asignatura
1.3. Nivel
Grado (MECES 2)
1.4. Curso
772 - Graduado/a en Ingeniería Informática (2022): 4
776 - Graduado/a en Ingeniería Informática y Matemáticas (2022): 5
473 - Graduado/a en Ingeniería Informática: 4
774 - Graduado/a en Ingeniería Informática (Modalidad Bilingüe 2022): 4
773 - Graduado/a en Ingeniería Informática (2022): 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. Competencias y resultados del aprendizaje
1.12.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.12.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.12.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.13. 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.14. 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.
- Android Studio 4.1 Development Essentials - Kotlin Edition. Neil Smyth. Payload Media, 2020.
Una buena introducción a Android Studio, el entorno de desarrollo que utilizamos en el curso, junto con una introducción al lenguaje kotlin y la biblioteca Jetpack: data binding, ViewModel, LiveData, Navigation, ...
2. Metodologías docentes y tiempo de trabajo del estudiante
2.1. Presencialidad
|
|
#horas
|
|
Porcentaje de actividades presenciales (mínimo 33% del total)
|
56
|
|
Porcentaje de actividades no presenciales
|
94
|
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
|
|
|
Seminarios
|
|
|
Clases prácticas en aula
|
|
|
Prácticas clínicas
|
|
|
Prácticas con medios informáticos
|
56
|
|
Prácticas de campo
|
|
|
Prácticas de laboratorio
|
|
|
Prácticas externas y/o practicum
|
|
|
Trabajos académicamente dirigidos
|
|
|
Tutorías
|
|
|
Actividades de evaluación
|
|
|
Otras
|
|
3. Sistemas de evaluación y porcentaje en la calificación final
3.1. Convocatoria ordinaria
Existen dos métodos de evaluación en esta asignatura, evaluación continua y no continua. La evaluación continua precisa la entrega de 3 partes del proyecto en los plazos programados.
Método de evaluación continua:
El estudiante será evaluado teniendo en cuenta el proyecto de programación como sigue:
- La primera entrega no contribuirá a la calificación final.
- La segunda y tercera entregas serán evaluadas entre 0 y 10 (P2, P3) de acuerdo con sus rúbricas correspondientes.
- Las calificaciones final se calculará de la siguiente manera:
F = 0.4 P2 + 0.6 P3
- Para superar la asignatura será necesario obtener una calificación igual o mayor que 5 (F >= 5).
Método de evaluación no continua:
- El estudiante será evaluado teniendo en cuenta su proyecto de programación, de acuerdo con una rúbrica específica para este método de evaluación.
- Para superar la asignatura será necesario obtener una calificación igual o mayor que 5.
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)
|
|
|
Evaluación continua
|
100
|
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
|
Kotlin
|
4
Instalar IntelliJ Idea
|
5
Leer la guía docente
Matricularse en ENCODE
|
|
2
|
Kotlin. Clases
|
4
ENCODE
|
5
ENCODE
|
|
3
|
Kotlin. Interfaces
|
4
ENCODE
|
5
ENCODE
|
|
4
|
Kotlin. Extensions and files
|
4
Primera entrega
|
5
ENCODE
|
|
5
|
Android
|
4
ENCODE
Instalación de Android Studio
|
5
ENCODE
|
|
6
|
Android. El ciclo de vida de la actividad
|
4
ENCODE
|
5
ENCODE
|
|
7
|
Android. ViewModels e intenciones
|
4
ENCODE
|
5
ENCODE
|
|
8
|
Android. Fragmentos
|
4
ENCODE
|
5
ENCODE
|
|
9
|
Android. La vista recicladora
|
4
ENCODE
|
5
ENCODE
|
|
10
|
Android. El diseño material
|
4
ENCODE
Segunda entrega
|
5
ENCODE
|
|
11
|
Android. La biblioteca Room
|
4
ENCODE
|
5
ENCODE
|
|
12
|
Android. Menús y preferencias
|
4
ENCODE
|
ENCODE
|
|
13
|
Android. Firebase
|
4
ENCODE
|
5
ENCODE
|
|
14
|
|
4
Entrega final
|
5
ENCODE
|