Categoría: Programación | _PROGRAMACION


Curso: Programar patrones de diseño para Android

o

suscríbete para tener acceso ilimitado a toda la formación

Regala este curso

Comparte este curso:

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

Introducción

Introducción

Conoce a Juan Gabriel Gomila, tu instructor en Udemy

Aprender los patrones de diseño para programar mejor

La app que vamos a crear en el curso

Repositorio Git con todos los proyectos del curso

El patrón de la factoría

Patrón #1: Factory Pattern

El uso de las support libraries

Interfícies y el patrón de la factoría

Unified Modeling Language para clases de Java

La interficie gráfica para probar nuestra factoría

Logs, dispositivos, monitores y testing en general

Ejercicios sobre el patrón de la factoría

El patrón de la factorías abstracta

Ejercicio sobre la factoría de bebidas

¿Qué hemos aprendido sobre el patrón de la factoría?

Descarga los proyectos de la sección

Los patrones creacionales

Patrón #2: Creational Pattern

Los temas y los estilos de una app

El uso de las paletas de colores en una app

Textos primarios y secundarios

Las resoluciones en Android

Cómo adaptar las imágenes a las resoluciones

El widget de Card View

La documentación y best practices de las Card Views

El diseño de la tarjeta

Añadiendo nuestras clases e ingredientes al proyecto

El builder pattern

Un ejemplo de uso del builder pattern

¿Qué hemos aprendido sobre las Card Views y el patrón builder?

Descarga los proyectos de la sección

Los patrones para crear materiales

Patrón #3: Los patrones de diseño de materiales

Action bar vs app bar

Personalizando la apariencia de nuestra barra

Acerca del tamaño de las app bars

El menú de navegación

Resoluciones y tamaños

Las opciones del menú lateral

Desplegando y interactuando con el menú

Relaciones de aspecto en la pantalla

Fragmentos

El patrón del síngleton

Diagrama UML del patrón síngleton

¿Qué hemos aprendido sobre buenas prácticas de diseño y el síngleton?

Descarga los proyectos de la sección

Los patrones de layout

Patrón #4: Los patrones de layout

Layouts lineales y pesos

La gravedad de los widgets

Ejercicio: layouts anidados y distribuciones con pesos

Layouts relativos

La librería percent support

Las rotaciones de pantalla

Layouts de pantalla grande

Calificadores de layout

Alias de layouts

El patrón de la estrategia

El diseño de los layouts

Uniendo diseño y patrón de estrategia

¿Qué hemos aprendido sobre layouts y patrones de estrategia?

Descarga los proyectos de la sección

Listas de información y los patrones estructurales

Patrón #5: Los patrones para estructurar información

Generar listas con Coordinator Layouts y Recycler Views

Distribuciones de Listas de objetos

La gestión de los datos en nuestra app

Traduciendo la app a varios idiomas

El papel del Layout Manager y los Data Adapters

El patrón adapter

El patrón bridge

El patrón facade

El patrón criteria

Un ejemplo de uso del patrón criteria

Muchos patrones para una mejor estructura

Descarga los proyectos de la sección

Los patrones de activación

Patrón #6: Los patrones de activación e interacción con el usuario

Barras colapsantes

Barras colapsantes al detalle

Creando una selección de quesos con el patrón de la factoría

La celda de los ingredientes

El adaptador entre la recycler view y el modelo de datos

Barras separadoras en las celdas

Configurando el botón flotante

El constructor de diálogos en Android

Unos diálogos personalizados con XML

Implementando los gestos de Swipe en nuestra Recycler View

Los elementos del Builder Pattern

El patrón de diseño del builder

Combinando funcionalidades para una mejor programación

Descarga aquí los códigos fuentes de la sección

Combinación de patrones

Patrón #7: Los patrones de prototipo, decoradores e híbridos

Una idea de qué vamos a preparar

La sucesión de Fibonacci y los números primos

El patrón del prototipado

El diagrama UML del patrón del prototipado

El patrón decorador

Decorando nuestros bocadillos

Extendiendo nuestro decorador

Aplicando el patrón builder para hacer un sandwich a partir de ingredientes

Radio buttons, Check boxes y Switches para crear un bocadillo

Creando el bocadillo a partir de los ingredientes

Constructores vs Factorías Abstractas

Tostando el pan con un decorador

Uniendo interfaz y lógica del decorador

Decidir entre diferentes patrones

Descarga los códigos fuente de este sección del curso

El patrón de composición

Patrón #8: El patrón de composición

El patrón composite

El Composite robando ideas del Builder

La sección de noticias con el patrón composite

Inflando el texto y la imagen

El compuesto imagen con texto

El compuesto del layout

Formateando layouts por código con nuestro composite

La importancia de persistir la información en Android

Ficheros estáticos en Android

Ficheros de entrada y salida de datos

El ciclo de vida de una app

Las preferencias compartidas

El truco de la primera vez que se inicia una app 08:00

Un patrón para persistirlos a todos

Descarga los proyectos de esta sección

El patrón observador

Patrón #9: El observer pattern

Observadores, listeners y notificadores

El patrón del observador

El sistema de notificaciones locales en Android

La clase observer y observable en Java

Haciendo un buen uso de las notificaciones

Configurando un intent

Modificando el estilo básico de las notificaciones

Visibilidad y prioridad en las notificaciones de Android

Servicios y programar notificaciones para el futuro

Notificaciones y servicios para mantenerse informados

Descarga los proyectos de esta sección

Los patrones de comportamiento

Patrón #10: Los patrones de comportamiento

El template pattern

Implementando la plantilla

Extendiendo nuestra plantilla

El strategy pattern

El visitor pattern

Más funcionalidades al visitor pattern

El state pattern

Nuestros amigos, los patrones de comportamiento

Descarga los proyectos de esta sección

141 lecciones - | Creado por: Juan Gabriel Gomila Salas

Temas relacionados: