Programar patrones de diseño para Android
Requisitos:
Sería recomendable estar familiarizado con la programación en Java, aunque durante el curso se proporcionará material complementario para poder tener un nivel adecuado de programación
Usaremos Java 8, Android Studio 2.3 y Android O, de modo que sería recomendable haber llevado a cabo el curso Crea tus apps para Android N: de cero a experto de Juan Gabriel o otro similar.
Descripción:
Bienvenido al curso de Aprende a programar usando patrones de diseño para Android. Tal vez hayas hecho ya algún curso de programación de Android conmigo, o con algún otro instructor y hayas aprendido muchas cosas nuevas: layouts, estilos, temas, procesamiento de ficheros, llamadas a servidores... Eso está muy bien. Pero ahora, te llegan tus primeros clientes, quieres empezar a construir una app y a ganar dinero con las técnicas aprendidas y te das cuenta de que... no sabes por donde empezar.
En efecto. Esto me pasó a mi (y me ha pasado muchos años) hasta que he aprendido a hacer las cosas bien y a pensar en qué patrones de diseño me conviene utilizar para que cada vez que quiera añadir o modificar algo en mi app, no me vea envuelto en una odisea de cambio de código... Los patrones de diseño definen una forma de trabajo, unas directrices que pueden seguirse o no, y la verdad en muchos casos hacen que el código sea más legible, se pueda trabajar mejor y con un lenguaje común para el resto de desarrolladores. Los patrones de diseño son la base para la búsqueda de soluciones a problemas comunes en el desarrollo de software. Un patrón de diseño resulta ser una solución a un problema de diseño. Para que una solución sea considerada un patrón debe poseer ciertas características. Una de ellas es que debe haber comprobado su efectividad resolviendo problemas similares en ocasiones anteriores. Otra es que debe ser reutilizable, lo que significa que es aplicable a diferentes problemas de diseño en distintas circunstancias.
En particular, en este curso quiero enseñarte a utilizar en un caso de uso muy concreto los siguientes patrones de diseño haciendo uso de Java y en una app para Android enfocada a un negocio local de una ciudad imaginaria:
Patrón de la factoría. Consiste en utilizar una clase constructora (al estilo del Abstract Factory) abstracta con unos cuantos métodos definidos y otro(s) abstracto(s): el dedicado a la construcción de objetos de un subtipo de un tipo determinado.
Patrones creacionales. Corresponden a patrones de diseño de software que solucionan problemas de creación de instancias. Nos ayudan a encapsular y abstraer dicha creación.
Builder: abstrae el proceso de creación de un objeto complejo, centralizando dicho proceso en un único punto.
Patrones materiales. Una aplicación debe ser fácil de usar, usable e intuitiva para tener garantías de éxito. Revisaremos las directrices de Google para saber diseñar materiales gráficos de forma correcta.
Síngleton: garantiza la existencia de una única instancia para una clase y la creación de un mecanismo de acceso global a dicha instancia. Restringe la instanciación de una clase o valor de un tipo a un solo objeto.
Patrones de Layout. Los XML y layouts conforman una de las formas de representar objetos y actividades. Veremos algunos patrones de diseño para gestionar la versatilidad de interfaces y dispositivos de una app.
Strategy: Permite disponer de varios métodos para resolver un problema y elegir cuál utilizar en tiempo de ejecución.
Patrones estructurales. Son los patrones de diseño software que solucionan problemas de composición (agregación) de clases y objetos.
Bridge: Desacopla una abstracción de su implementación.
Facade: Provee de una interfaz unificada simple para acceder a una interfaz o grupo de interfaces de un subsistema.
Adapter o Wrapper: Adapta una interfaz para que pueda ser utilizada por una clase que de otro modo no podría utilizarla.
Decorator: Añade funcionalidad a una clase dinámicamente.
Patrones de activación. Tan importante es lo que el usuario ve así como interactúa con la app, así que veremos patrones de interactuación usuario-app.
Combinación y composición de patrones: los patrones de diseño por si solos son muy potentes, pero donde de verdad empiezan a ganar es cuando nos vemos capaces de combinarlos y conseguir resultados increíbles!
Patrón observador: no podemos estar pendientes siempre de lo que ocurre a nuestro alrededor, por eso ponemos un observador que nos notifique y nos avise de todos los posibles cambios en la app.
Y mucho más en un curso completísimo de desarrollo de Android avanzado usando patrones de diseño y mejores prácticas de la mano del profesor Juan Gabriel Gomila, que con más de 30000 estudiantes, es uno de los instructores más demandados del mercado español y latino y combina su tarea docente en la Universidad de las Islas Baleares con su pasión por los videojuegos dando charlas por todo el mundo.
¿A quién está dirigido?
Este curso de patrones de diseño con Android va dirigido a los principiantes con conocimientos básicos de Java y de Android
Alumnos del curso de introducción a Android y el curso de cero a experto de Android N que quieran aprender las técnicas de programación avanzadas del sistema operativo de Google
Finalmente, es un curso que explica en detalle todo lo que ocurre en cada línea de código, por tanto puede ser interesante para programadores de Android o de Java que no saben muy bien cómo funciona una actividad, una clase, una instancia, herencia...