Curso optativo de la licenciatura en Ciencias de la Computación (plan 2013). El contenido del curso es sobre desarrollo de Android. Comienza con consideraciones más básicas sobre desarrollo móvil en general, luego introduce al Android SDK y Android Studio para empezar a explorar la plataforma de Android y las herramientas y conceptos más básicos para empezar a desarrollar aplicaciones con Android.
Participé en la impartición de este curso durante la pandemia por COVID-19; que motivó a trabajar los cursos a distancia. Hace algunos años, me preguntaba porqué la Facultad de Ciencas no ofrece ni una carrera en Modalidad Abierta o a Distancia. La respuesta que recibí por varios colegas en ese momento fue que "las carreras de ciencias son muy difíciles" (y cuál no) "y que por eso no se pueden dar a distancia"... Hasta que lo intentaron y resulta que siempre sí se podía, solo hacía falta intentarlo.
Las clases a distancia necesitan un modelo MUY diferente al de las clases presenciales; y si existe una opinión generalizada sobre la "mala" calidad de la enseñanza a distancia, tiene mucho que ver con que muchos docentes no fueron capacitados -o simplemente se negaron a cambiar su forma de trabajo- y durante la pandemia se presentó un modelo de educación "presencial a distnacia" que simplemente no dio el ancho. No solo lo ví como docente, sino también como estudiante de posgrado.
Tratando de adecuar este curso para la modalidad en línea, hice una reestructuración significativa a la organización de los temas y grabé las clases. Ahora presento ese material y las video clases en esta sección.
Los videos se encuentran hospedados en la comunidad
HardLimit, que reúne entusiastas de la
tecología digital y cuenta con una plataforma de video
basada en
PeerTube.
Recomiendo que abra el enlace dando click en el texto "PeerTube"
en la esquina inferior derecha del (los) video(s) que desee
consultar, pues en HardLimit los videos cuentan con una
descripción con marcas
de tiempo que desglozan detalladamente el contenido de cada
video.
Para su fácil acceso, dejo el enlace a la lista de reproduccón en HardLimit.
Tras esta ya no tan pequeña introducción, va una lista de los temas que he elaborado para este curso:
Introducción a AndroidEmpezamos el curso con una introducción muy general al desarrollo móvil, la historia de Android y sus características como Plataforma de desarrollo y Sistema Operativo |
Consideraciones generales del desarrollo móvilAntes de empezar a conocer las herramientas con las que vamos a desarrollar aplicaciones para Android, vamos a revisar algunas de las consideraciones del desarrollo móvil más importantes. |
Android StudioEmpecemos a conocer la herramienta principal con la que desarrollamos aplicaciones Android: Android Studio |
Trabajo en equipoTema opcionalLa estrategia de trabajo del curso; en el que al final los estudiantes completan una aplicación para un cliente real, sumada al trabajo a distancia por la pandemia; hacen que sea necesario revisar algunos conceptos en torno a la Ingeniería de Software. En este tema se introducen conceptos y práctias para el desarrollo en equipo; basadas en Metodologías Ágiles, Diseño Centrado en el Usuario y Colaboración asíncrona no precencial. Porque es posible crear software de calidad sin tener que compartir el mismo espacio que tus compañeros de trabajo (aunque compartir una cerveza durante una reta de Mario Kart siempre es deseable). |
Desarrollando aplicaciones para AndroidEn estas notas se presenta un proyecto que muestra algunos de los conceptos más básicos que son necesarios para empezar a desarrollar aplicaciones para Android. El proyecto que se desarrolla en estas notas está disponible en Gitlab: https://gitlab.com/nachintoch/cowboy-duel Por último, para desarrollar el proyecto se cuentan con los siguientes recursos (imágenes y sonidos para replicar la aplicación de ejemplo, pero puede usar otros si lo desea): recursos.zip |
Material designEl lenguaje de dieseño estándar de Android es Material Design . Estas notas introducen algunos de los fundamentos más básicos para implementar interfaces gráficas en Android siguiendo el estandar de diseño. Este tema está dividido en dos notas, la primera parte puede ser accedida aquí (el video incluye ambas partes). Estas notas inician el desarrollo de un proyecto que se retoma en varias notas más adelante. https://gitlab.com/nachintoch/gui-design-patterns-w-material-desig |
Ciclo de vida de una aplicación AndroidTodas las aplicaciones, programas y sistemas tienen un ciclo de vida: son instanciadas, puestas en marcha, consumen recursos, son pausadas y eventualmente crashean (o su ejecución termina). En este tema conoceremos cómo es el ciclo de vida de una aplicación Android, y el marco de trabajo que delimitan para nuestras apps. Este tema está dividido en dos notas, la segunda parte nos sugiere como diseñar y sobre todo documentar una aplicación Android, usando el marco de trabajo que delimita su Ciclo de Vida (el video incluye ambas partes). |
FragmentosEn estas notas, se retoma el proyecto de ejemplo de Material Design y se continua su desarrollo para conocer los fragmentos, que son pantallas que pueden acomodarse de la forma en que mejor nos convenga para implementar las interfaces de nuestras apps. Además, a diferencia de un Layout, los Fragmentos se definen en código; por lo que son pantallas con atributos y comportamiento. Los fragmentos se usan para implementar uno de los patrones de diseño de Android más preciados: Master-Detail Flow. Los fragmentos también se usan para implementar pantallas "predefinidas" que podemos usar para desarrollar rápido. Se agregará una Pantalla de Preferencias a la aplicación que ejemplifica Material Design también Enlace al repositorio de ejemplo: https://gitlab.com/nachintoch/gui-design-patterns-w-material-desig |
Proveedores de ContenidosEn este tema conoceremos el componente de una
aplicación Android que nos permite definir
repositorios de información que podemos incluso
compartir con otras aplicaciones (si así lo
configuramos). Enlace al proyecto de ejemplo: https://gitlab.com/nachintoch/gui-design-patterns-w-material-desig |
Diálogos emergentes con FragmentDialogLas actividades y fragmentos de una aplicación Android pueden configurarse para ser mostrados en forma de cuadros de texto o dialogos emergentes. Una de las estrategias más empleadas para construir Dialogos emergentes es definiendo subclases de DialogFragment Encontrará el repositorio del proyecto de ejemplo que se construye en el video en la siguiente liga: https://gitlab.com/nachintoch/ejemplo-dialogo-personalizado |
Realidad Aumentada (RA) con SceneFormPese a que Google ha sido inconsistente
respecto a la presencia de Realidad Aumentada
y Virtual en Android, la comunidad ha mantenido
paquetes que permiten una fácil
integración de estas tecnologías en
nuestras aplicaciones... Con ciertas
limitaciones... El proyecto que se desarrolla en estas notas se encuentra hospedado en el siguiente repositorio: https://gitlab.com/nachintoch/ejemplo-ar-sceneview |