Desarrollo de Aplicaciones para Dispositivos Móviles
Profesor
Jorge E. Camargo, PhD
jecamargom@unal.edu.co
Con el crecimiento exponencial que han tenido los dispositivos móviles en los últimos años, los usuarios cada vez más utilizan tabletas, celulares inteligentes y otros dispositivos para realizar actividades de diferente índole: trabajo, diversión, búsqueda de información, reconocimiento automático de objetos, etc. Este curso busca dar un overview del tipo de aplicaciones móviles que se construyen y los modelos computacionales que las soportan.
Objetivos
Revisar el estado del arte en la construcción de aplicaciones para dispositivos móviles
Fomentar el emprendimiento de base tecnológica mediante la resolución de problemas reales utilizando aplicaciones móviles.
Desarrollar y fortalecer las competencias que el estudiante necesita para abordar proyectos de desarrollo y de investigación que usen dispositivos móviles.
Metodología
El profesor guiará a los estudiantes en los temas más relevantes del curso
Los estudiantes estudiarán y presentarán de manera grupal un tema propuesto
Se desarrollará una aplicación móvil (proyecto) que se completará semana a semana de manera incremental
Prototipado
Elaboración de mockups
Diseño de la interfaz gráfica de usuario
Arquitectura y entorno de desarrollo
Instalación y configuración de Android Studio
Creación de una aplicación (Hello world)
Conceptos básicos de Kotlin
Depuración en Android Virtual Device y Dispositivos Físicos
Arquitectura de la plataforma Android
Estructura y componentes de una aplicación Android
Paradigma MVVM
Conceptos básicos de Kotlin II
Construcción de Apps
ViewGroups y Views. ConstraintLayout y CoordinatorLayout.
Creación y ciclo de vida de un Activity. Creación de Fragments y DialogFragments. Creación del home y splash screen
Linear Layout, Relative Layout. Diseño con RecyclerView y CardViews
Adaptadores e Interfaces. ViewBinding.
Material Design y Material Components. Personalización con Shapes. AppBar Layout, Toolbar y BottomNavigationView.
Android Jetpack y Android X. Componente Navigation.
Carga de datos desde el ViewModel. Envío y recepción de datos a diálogos.
Mecanismos de persistencia
Persistencia local
Persistencia en la Nube
El servicio Firebase
Creación del login con FirebaseUI
Interacción con servicios en la nube
Integración con iniciativas Open Data (Consumo de Webservices)
Retrofit
Cloud Firestore
Integración de servicios de mapas
API Google Maps
API Open Street Maps
Publicación en tiendas de aplicaciones
Android Play Store
Apple App Store
Talleres Individuales
Reto 0: Hola mundo en Android (15/AGO/2023)
Reto 3: Juego Triqui (31/AGO/2023)
Reto 4: Menus y Diálogos (14/SEP/2023)
Reto 5: Gráficos y Sonidos (28/SEP/2023)
Reto 6: Cambio de Orientación y Guardando Estado (12/OCT/2023)
Reto 7: Jugando Triqui Online (2/NOV/2023)
Reto 8: Persistencia utilizando SQLite (9/NOV/2023)
Reto 9: Accediendo al GPS (16/NOV/2023)
Reto 10: Consumiendo Webservices (23/NOV/2023)
Entregables Proyecto
Reto 1: Idea de app (24/AGO/2023)
Reto 2: Canvas y Prototipo (31/AGO/2023)
Reto 3: Primer Avance del Proyecto (26/OOCT/2023)
Entrega final (30/NOV/2023)
Evaluación
Talleres: 60%
Exposición en grupo: 10%
Proyecto en grupo: 30%
Notas (link)
Componentes del proyecto
Reporte en formato IEEE (10%)
Presentación (10%)
Video (10%)
Poster (10%)
App (60%)
Referencias
[DARCEY] Darcey L. Android Wireless Application Development (2nd Edition)
[HUGHES] Android Apps Marketing: Secrets to Selling your Android Apps
[McCOWN] McCown, F. Android App Development course
[Niroshinie13] Niroshinie Fernando, Seng W. Loke, Wenny Rahayu, Mobile cloud computing: A survey, Future Generation Computer Systems, Volume 29, Issue 1, January 2013, Pages 84-106, ISSN 0167-739X
[Varshney14] Upkar Varshney, Mobile health: Four emerging themes of research, Decision Support Systems, Available online 22 June 2014
Recursos
Github Developer Kit for Developers
Emulador Android alternativo: Genymotion
API de Google para geolocalización
Proyecto Open Data en Colombia
Servicios web de acceso público de la ciudad de Chicago (EEUU)
API de Google para acceder a Google Maps
Herramienta en línea para crear videos: goanimate.com
Librería Xtend para Android: Xtendroid
Herramienta para proyectar el móvil en pantalla: Movizen, Droidscreen, vysor
Hosting free para desplegar componente servidor: GAE, OpenShift, Hostinger, AWS
Video en donde se explica cómo publicar en el App Store y en el Play Store
El poder de las Apps - Revista Sistemas (Enero-Marzo 2016)
Creación de videos online (Powtoon)
Progressive WebA pps (link)
Enlaces de Interés
UnSecureLab reasearch group
Tuapp: Torneo inter-universitario de apps
El Poder de las Apps (Revista SISTEMAS)