Consulta de Guías Docentes



Academic Year: 2023/24

18771 - MOBILE APP DEVELOPMENT

This is a non-sworn machine translation intended to provide students with general information about the course. As the translation from Spanish to English has not been post-edited, it may be inaccurate and potentially contain errors. We do not accept any liability for errors of this kind. The course guides for the subjects taught in English have been translated by their teaching teams


Teaching Plan Information

Code - Course title:
18771 - MOBILE APP DEVELOPMENT
Degree:
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)
Faculty:
350 - Escuela Politécnica Superior
Academic year:
2023/24

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

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

Alejandro Sierra Urrecho

1.12. Competences and learning outcomes

1.12.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.12.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.12.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.13. 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.14. Course bibliography

The student should familiarize themselves with the documentation page found on the Android development website:

http://developer.android.com/index.html#

This documentation includes specific areas on application design, development and distribution. Due to the constant evolution of the language, this is an invaluable resource.

It is also highly recommended to take the labs that Google regularly updates, most likely here you will find clear, step-by-step explanations of the latest language APIs:

https://codelabs.developers.google.com/codelabs/kotlin-android-training-welcome/index.html?index=..%2F..index#1

The following is a list of the main references:

  • Kotlin in Action. Dmitry Jemerov and Svetlana Isakova. Manning Publications, 2016.

Excellent introduction to Kotlin.

  • Android Programming: The Big Nerd Ranch Guide. Bill Phillips and Chris Stewar. Big Nerd Ranch Guides, fourth edition, 2019.

This is the fourth edition of an introductory yet comprehensive text on Android. It is probably one of the best books on this subject, although it is true that this latest edition does not reach the level of the previous ones, partly due to the rapid evolution of the language.

  • Android Studio 4.1 Development Essentials - Kotlin Edition. Neil Smyth. Payload Media, 2020.

A good introduction to Android Studio, the development environment we use in the course, along with an introduction to the Kotlin language and the Jetpack library: data binding, ViewModel, LiveData, Navigation, ...

2. Teaching-and-learning methodologies and student workload

2.1. Contact hours

 

#horas

Contact hours (minimum 33%)

42

Independent study time

108

 

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

 

Seminars

 

Practical sessions

 

Clinical sessions

 

Computer lab

42

Laboratory

 

Work placement

 

Supervised study

 

Tutorials

 

Assessment activities

 

Other

 

 

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

3.1. Regular assessment

There are two evaluation methods in this subject, continuous and non-continuous evaluation. The continuous method requires the delivery of the three parts of the project within the scheduled deadlines.

Continuous evaluation method:

The student will be evaluated taking into account the programming project as follows:

  • The first delivery will not contribute to the final grade.
  • The second and third deliverables will be evaluated between 0 and 10 (P2, P3) according to their corresponding rubrics.
  • The final grade will be calculated as follows:

             F = 0.4 P2 + 0.6 P3.

  • In order to pass the course it will be necessary to obtain a grade equal or higher than 5 (F >= 5).

Non-continuous evaluation method:

  • The student will be evaluated taking into account the programming project, according to a rubric specific to this evaluation method.
  • In order to pass the course it will be necessary to obtain a grade equal or higher than 5.

3.1.1. List of evaluation activities

Evaluatory activity

%

Final exam

0

Continuous assessment

100

 

3.2. Resit

Extraordinary June grading:

  • Each student's project will be graded by means of a new rubric that will be provided in advance.

3.2.1. List of evaluation activities

Evaluatory activity

%

Final exam

 

Continuous assessment

100

 

4. Proposed workplan

Week

 

Content

 

Contact hours

Independent study

1

 

 

 

Kotlin

 

 

 

3

Installation of IntelliJ Idea

5

The syllabus of the course

Registration in ENCODE

2

 

 

 

 

Kotlin. Classes

 

 

3

 ENCODE

 

 

5

ENCODE

3

 

 

 

Kotlin. Inheritance

3

 ENCODE

5

 ENCODE

4

 

 

 

 

Kotlin. Extensions and files

3

First delivery

5

 ENCODE

5

 

 

 

 

Android

3

Installation of Android Studio 

 

5

 ENCODE

6

 

 

 

Android. The activity's lifecycle

3

 ENCODE

5

 ENCODE

7

 

 

 

Android. ViewModels and intents

3

ENCODE

5

 ENCODE

8

 

 

 

Android. Fragments

3

 ENCODE

5

 ENCODE

9

 

 

 

Android. The RecyclerView view

3

ENCODE

5

 ENCODE

10

 

 

 

Android. The material design

 

3

Second delivery

5

 ENCODE

11

 

 

 

 

Android. The Room library

3

ENCODE

5

 ENCODE

12

 

 

 

 

Android. Menus and preferences

 

 

3

 ENCODE

5

 ENCODE

 

13

 

 

 

Android. Firebase

3

 ENCODE

 

5

 ENCODE

14

 

 

 

 

 

3

Third delivery

5

 ENCODE

 


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

Optativa

1.2. Carácter

Optativa

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

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

  • Los estudiantes deberán presentar un proyecto de programación individual cuya rúbrica será publicada con anterioridad.

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