Consulta de Guías Docentes



Academic Year/course: 2020/21

18771 - MOBILE APP DEVELOPMENT

This is a non-sworn translation intended to provide students with information about the course


Information of the subject

Code - Course title:
18771 - MOBILE APP DEVELOPMENT
Degree:
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
734 - Graduado/a en Ingeniería Informática y Matemáticas (2019)
Faculty:
350 - Escuela Politécnica Superior
Academic year:
2020/21

1. Course details

1.1. Content area

Optativa

1.2. Course nature

Optional

1.3. Course level

Grado (EQF/MECU 6)

1.4. Year of study

722 - Graduado/a en Ingeniería Informática: 4
473 - Graduado/a en Ingeniería Informática: 4
734 - Graduado/a en Ingeniería Informática y Matemáticas (2019): 5

1.5. Semester

Second semester

1.6. ECTS Credit allotment

6.0

1.7. Language of instruction

Español, English

1.8. Prerequisites

-

1.9. Recommendations

This is a hands-on training course, which takes place in the computing laboratory. Attendance is most recommended and encouraged.

1.10. Minimum attendance requirement

Attendance is most recommended and encouraged.

1.11. Subject coordinator/s

Alejandro Sierra Urrecho

1.12. Coordinator of other university

-

1.13. Competences and learning outcomes

1.13.1. Competences

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. Learning outcomes

Upon completion of the course, the students will be able to:

  • Set up the Android Development Environment.

  • Use Android Studio, including the debugger and the development tools.

  • Explain the meaning and purpose of each element of an Android project: src, gen, .jar files, assets, bin, libs, res and manifest file.

  • Specify compelling user interfaces in layout files with material design elements.

  • Respond to input events by overriding the callback methods of event listeners. For instance, onClick() from the OnClickListener event listener.

  • Draw the diagram of the activity life cycle.

  • Guarantee the app's persistence against rotations by means of the class ViewModel.

  • Simplify view management by means of data binding.
  • Use intents to start an activity from another of the same project.

  • Make use of fragments to design flexible user interfaces.

  • Observe notifications of LiveData objects from activities and fragments.

  • Construct menus and show alert dialogs.

  • Distinguish between the different means of saving information: preferences, files, databases and content providers.
  • Make use of the ROOM library to build a local database.

  • Use content providers to share data between different applications.

  • Make use of services such as Firebase in order to synchronize data between devices.
  • Secure, package, and deploy Android applications.

1.13.3. Course objectives

The main objective of this course is to learn to design and build mobile applications using the Android platform. It encourages students to learn Android by developing a complete application step by step.

1.14. Course contents

  1. Kotlin

  2. The Android Development Environment

  3. Resources

  4. The layout file

  5. Event listeners

  6. Data binding

  7. Material design

  8. The activity's lifecycle

  9. ViewModel

  10. Intentions

  11. Fragments

  12. LiveData

  13. RecyclerView

  14. The ROOM library

  15. Menus

  16. Preferences

  17. Firebase

1.15. Course bibliography

2. Teaching-and-learning methodologies and student workload

2.1. Contact hours

 

#horas

Contact hours (minimum 33%)

53

Independent study time

97

 

This comprehensive hands-on course encourages learning by gradually adding features to an application. All sessions of the course take place in the computer lab. Students will make use of the ENCODE online tutorial, which will guide them step by step during their learning process. Teachers will program the content of the platform weekly and will make sure that students have correctly understood the main concepts.

Students will have to develop their own application gradually incorporating new features. There are three successive deliveries of the programming project throughout the course. The first delivery will not be graded. The second and third deliveries will be scored from 0 to 10. The final grade is calculated as a weighted sum of the grades obtained in the second and third deliveries.

At the end of the course, each student will create their own complete Android application that will incorporate most of the key aspects of the platform.

2.2. List of training activities

Activity

# hours

Lectures

0

Seminars

 

Practical sessions

 

Clinical sessions

 

Computer lab

43

Laboratory

 

Work placement

 

Supervised study

 

Tutorials

5

Assessment activities

5

Other

97

 

3. Evaluation procedures and weight of components in the final grade

3.1. Regular assessment

For the regular May grading, each student has to develop a programming project composed of three hand-overs:

  • In order to pass the subject, the hand-overs must be submitted in time:
    • The first delivery will not be assessed.
    • The second and third deliveries will be assessed from 0 to 10 (p2 and p3)
  • The final grade will be calculated according to the following formula:

               pmay = 0.4 p2 + 0.6 p3

  • The value of pmay must be greater than or equal to 5 in order to pass the subject:

  • The students who deliver no hand-overs or just the first one, will be graded as "No evaluado". Otherwise, they will be graded numerically.

3.1.1. List of evaluation activities

Evaluatory activity

%

Final exam

60

Continuous assessment

40

3.2. Resit

Extraordinary June grading:

  • Each student's project will be graded by means of the rubric corresponding to the third hand-over.

3.2.1. List of evaluation activities

Evaluatory activity

%

Final exam

100

Continuous assessment

 

4. Proposed workplan

Week

 

Content

 

Contact hours

Independent study

1

 

February 1 - 5

 

 

 Kotlin

 

 

 

3

 

5

 

2

 

February

8 - 12

 

 


 

 

3

 

 

 

5

 

3

 

February

15 - 19

 

 

3

 

First delivery

5

 

4

 

February

22 - 25

 

 

Android: RecyclerView, fragments, ViewModel and LiveData

3

 

 

5

 

5

 

March

1 - 5

 

 

3

 

5

 

6

 

March

8 - 12

 

 

3

 

5

 

7

 

March

15 – 19

 

 

3

5

 

8

 

March

22 - 26

 

3

 

5

 

9

 

April

6 - 9

 

 

3

 

Second delivery

5

 

10

 

April

12 - 16

 

Android: databases

 

3

5

 

11

 

April

19 - 23

 

 

 

3

 

5

 

12

 

April

26 – 30

 

 

 

 

 

3

 

5

 

 

 

13

 

May

3 - 7

 

 

3

 

 

5

 

14

 

May

10 – 14

 

 

 

3

 

 

5

 

15

 

May

17 – 21

 

 

 

3

 

 

Third delivery

5

 

 


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.1. Materia

Optativa

1.2. Carácter

Optativa

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

  1. Kotlin
  2. El entorno de desarrollo
  3. Recursos
  4. El fichero de diseño
  5. Escuchadores
  6. Data binding
  7. El diseño material
  8. El ciclo de vida de una actividad
  9. ViewModel
  10. Intenciones

  11. Fragmentos

  12. LiveData
  13. La vista recicladora

  14. La biblioteca ROOM

  15. Menús

  16. Preferencias

  17. 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 primera entrega no contribuirá a la calificación final.

    • La segunda y tercera entregas serán evaluadas entre 0 y 10 (p2 y p3)

  • 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.

  • El valor de pORD debe ser mayor o igual a 5 para aprobar la asignatura.
  • Recibirán la calificación de “no evaluado” los estudiantes que no presenten ninguna entrega o solo presenten la primera.

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

  • El proyecto entregado por cada estudiante será evaluado de acuerdo con la rúbrica de la segunda entrega de la convocatoria ordinaria.

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