Udemy

Platform

Español

Language

Software Engineering

Category

Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit

Aprende habilidades de arquitectura de software creando apps más robustas y divertidas utilizando Model-View-Presenter

4.35 (264 reviews)

Students

13 hours

Content

Jan 2021

Last Update
Regular Price

SKILLSHARE
SkillShare
Unlimited access to 30 000 Premium SkillShare courses
30-DAY FREE TRIAL

What you will learn

Comprender la evolución del desarrollo de software y cómo nacen las necesidades de usar los patrones de diseño

Construir y crear apps de Android usando el patrón MVP

Utilizar Dagger II como framework de inyección de dependencias para Android

Conocer y saber aplicar correctamente las pruebas unitarias a través de JUnit y Mockito

Entender las bases de la programación reactiva y su correcta implementación a través de RxJava

Conectarte correctamente a APIs externas o protocolos HTTP con Retrofit


Description

Crear aplicaciones es algo divertido y que siempre entusiasma a uno como has podido comprobar en los cursos y bootcamps de creación de apps tanto para iOS como para Android de Juan Gabriel Gomila, ¿verdad? El proceso completo de tener una idea, prepararla y plasmarla sobre el papel o una servilleta seguido de todo el proceso de escribir el código, investigar librerías y solucionar bugs hasta subirla a la App Store es sin duda una de las experiencias más gratificantes que uno pueda llevar a cabo. Incluso si no eres consciente de ello, es un proceso lucrativo, muchos somos los desarrolladores que hemos dejado nuestros trabajos regulares porque podemos vivir con los ingresos que generan nuestras apps. Hay oportunidades más que de sobra para los desarrolladores y diseñadores para vivir con los ingresos de sus propios productos.


Android nos ofrece una plataforma magnífica y libre para desarrollar y subir apps a la Store de Google. La mayoría ya lo sabéis porque sois estudiantes míos en mis cursos de Android, boot camps y de patrones de diseño avanzados.


Sin duda alguna estos últimos años ha cambiado muchísimo la forma en la que el software se desarrolla. Los smartphones nos permiten hacer de todo sin levantarnos del sofá: la compra, ver series y películas, que nos traigan la comida a la puerta de casa, o incluso pedir artículos electrónicos... las posibilidades son casi ilimitadas. Y pensaréis que en este panorama el mercado ha está saturado y no hay margen de mejora. Pues no! Aun hay tareas que se hacen a mano o a papel en muchos sectores y rutinas cotidianas, así que todavía uno puede sorprenderse y lanzar el próximo hit en la Store de móvil. Una buena idea puede ser el inicio de un proyecto y una idea de negocio que pueda cambiar la vida de millones de personas.


Pero tanto para freelancers como empleados como desarrolladores de apps o arquitectos de aplicaciones, tanto si lanzamos una app al año o 50, tanto si mantenemos nuestras apps o contratamos a alguien para que lo haga, muchas veces nos encontramos con problemas: código repetido, errores, código spaghetti, mal documentado, elaborado sin seguir ningún patrón específico... Si alguna vez habéis hecho una app vosotros mismos, seguro que sabéis de lo que os hablo. Esto se acentúa muchísimo cada vez que queréis revisitar el código para corregir un error, un bug o lanzar una nueva actualización. Es entonces cuando entráis en un ataque de pánico y reconocéis que hacer apps no siempre es fácil y divertido, si no que muchas veces acaba siendo un gran dolor de cabeza.


Por eso tenéis que aprender patrones de diseño testados, probados, y que funcionan, sobretodo los patrones de arquitectura y las herramientas asociadas a los mismos que os traigo en este curso.


El núcleo fundamental del curso se basa en entender el marco teórico de cómo funciona el patrón de arquitectura del modelo vista presentador o MVP. Es un patrón de arquitectura moderno, actualizado y que aboga por la redacción de un código simple y sobretodo limpio. En el camino aparecerán otros conceptos fundamentales en los que haremos hincapié como la inyección de dependencias, la programación reactiva, las unit testings o la simulación de objetos o mocking que nos ayudaran muchísimo en nuestro camino como desarrolladores de aplicaciones. En particular haremos uso de unos frameworks muy interesantes como:

  • Dagger II para la inyección de dependencias y librería fundamental para establecer la división de roles con MVP

  • JUnit y Mockito para las pruebas unitarias o unit tests que agilizan la fase de testing cuando abogamos por un desarrollo  Test Driven Development o TDD

  • Retrofit para conectarnos a APIs externas y descargar datos desde protocolos HTTP

  • RxJava 2 para la programación reactiva que nos elevará las habilidades al máximo exponente para hacer unas apps mas funcionales e interactivas.

  • Butter Knife para agilizar el proceso de vincular widgets de tus XML y otros recursos a tus actividades o fragmentos.

Y todo en un mismo curso, donde aprenderemos juntos las habilidades de arquitectura de aplicaciones combinando la teoría con la parte práctica y de un modo escala le, con ejercicios y casos prácticos. Ha llegado el momento de formarte en las habilidades más demandadas por las empleas de tecnología del siglo XXI y que te conviertas en todo un profesional con el curso más avanzado de Android de todo el mercado hispano de Udemy!


Screenshots

Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit
Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit
Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit
Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit

Content

Introducción al curso

Introducción

Conoce a Juan Gabriel Gomila, tu instructor online

Acerca de la valoración prematura del curso en Udemy

La comunidad de Discord para aprender todos juntos

Repositorio Git del curso

MVP al completo

Un pequeño comentario antes de empezar la sección

Un resumen de la parte teórica (por si quieres saltarte la sección)

Introducción al MVP

Entendiendo la arquitectura de Android

MVP en Android

Las necesidades del desarrollo de apps

Un ejemplo concreto en Android

El principio SOLID

Desacoplando la arquitectura

El MVP en acción

Arquitectura clean y MVP

El flujo de dependencias

Y en resumen...

Inyección de dependencias con Dagger II

Dagger II de Google

Portal de Dagger II

Dependencias

Inyección de dependencias

Ejemplo de inyección de dependencias

La interfaz gráfica de usuario

Añadir las dependencias de Dagger

La estructura para usar Dagger en Android

Estructura de paquetes recomendada

Estructura de clases para MVP

Los métodos de las interfaces de MVP

Implementación de la Vista

Implementación del Presentador

Implementación del Modelo

Configuración del módulo y las dependencias

Visualizando MVP línea por línea

MVP y dagger

Pruebas unitarias con JUnit, Mockito y Retrofit

Librerías para el Test Driven Development

Portal de Mockito para pruebas unitarias

Configurando Mockito para Unit Tests

Ejercicios con Mockito (I)

Ejercicios con Mockito (II)

Ejercicios con Mockito (III)

Ejercicios con Mockito (IV)

Llamadas HTTP y a APIs con Retrofit

Retrofit, un cliente seguro de HTTP para Android y Java

Web y recursos de Retrofit

Configurando Retrofit en Android

Cómo usar Gradle como un profesional

Generar clases de Java a partir de ficheros JSON

Conversor de ficheros JSON a POJO

Registro en el portal de la API de Twitch

API del portal de videojuegos Twitch

Cómo usar Retrofit para conectarnos a la API de Twitch

Descargando datos desde Twitch

Programación reactiva con RxJava

Programación reactiva vs imperativa

Conoce el proyecto ReactiveX

Un ejemplo sencillo de programación reactiva

Un ejemplo un poco más elaborado

Webs de recursos de ReactiveX

Integrando RxJava en Android

Los objetos observables

Flujo de datos reactivos

Documentación de Reactive para desaprender

Un ejercicio para ti

Binding anotado con Butter Knife

Butter Knife, una herramienta muy útil

Portal web de Butter Knife

Integración de Butter Knife

Plugin para Butter Knife

Un ejemplo sencillo de Butter Knife

Butter Knife para otros recursos

Fragmentos, Adapters y listas de Vistas

Binding de métodos y modificadores

Frameworks para dar y tomar

Proyecto final - Una app de película

El proyecto final del curso

Las librerías y dependencias

Diseño de la vista

ButterKnife y la interfaz de MVP

Configuración de Dagger e inyecciones de dependencias

Configurando el adapter de la recycler view

Implementando la lógica de la vista

Implementando la lógica del presentador

Implementando la lógica del modelo

Las Apis de 'The Movie Database' y 'OMDb'

Dos APIs para el mundo del cine

Los módulos e implementaciones de las APIs

El binding de Dagger 2 para compilar el proyecto

Implementando los clientes de Retrofit con claves de API

Crear una cache de datos

Descargar los datos con RxJava y Retrofit

Ultimando detalles de configuración

Resolución de bugs finales

Debugging de nuestro código por capas

BONUS - Un regalo para ti

Enhorabuena por acabar el curso

BONUS - Un regalo para ti


Reviews

L
Lucas10 July 2020

Muy buen curso, no le doy 5 estrellas porque el profe se la pasa diciendo ''interficie'' e ''interactuación'' xd

F
Fernando7 May 2020

Excelente curso, si ya era un muy buen curso al mostrar y explicar como funcionan las herramientas por separado, pero se vuelve excelente al crea un app al final que las combina para darte un ejemplo muy completo de como usarlo en un proyecto real.

J
Juan16 April 2020

Un excelente curso, muchas gracias por enseñar con detalle el patrón de diseño MVP y las bases de retrofit y RxAndroid. El profesor explica muy bien, en lapsos las clases pueden ser tediosas, pero es directo y las prácticas son muy bien elaboradas.

I
Ian24 February 2020

Muy buen curso, muy completo sobre los temas. Única recomendación, cuando le den ganas de toser en el micro porque los escucho con audífonos los cursos y lastima el oído profe. xD

E
Edwin19 February 2020

Excelente curso, la explicación de todas las herramientas utilizadas es súper buena, se plantean pequeños ejercicios durante las clases que ayudan a aterrizar o a generar mas dudas respeto a lo trabajado, Juan Gabriel tiene el don de hacer ver todo muy sencillo, lo que facilita el aprendizaje en estos temas que no son tan fáciles de asimilar, definitivamente vale la pena el curso

C
Cristian19 November 2019

Muy buen curso de Juan Gabriel, me encantó el uso de RxAndroid, pero creo que se pudo profundizar un poco más en los temas en general, como lo hace en sus cursos de iOS.

L
Lucas14 September 2019

Infelizmente, eu acho que fala muito rápido! mas estou ganhando bons conhecimentos nesse curso, aprendendo bastante!

A
Aldo8 September 2019

El patron MVP cumple, pero para este tiempo seria genial encontrarnos con MVVM, no por eso deja de ser bueno el curso, es lo que me esperaba.

J
Joshua5 September 2019

Tomando en cuenta mis conocimientos previos al curso, puedo decir con mucha alegría que aprendí los fundamentos básicos del contenido del curso. No obstante dictas el curso de una manera en la que el estudiante fácilmente llega a perderse, te sugiero como estudiante que mejores ese aspecto al enseñar y bueno muchas gracias por el curso.

C
Cristina24 August 2019

El mejor curso que he hecho en Udemy hasta ahora! MUY bien explicado todo, con cosas útiles para el trabajo y con ejemplos prácticos. Me ha gustado mucho la metodología del curso :-) Muchas gracias!

J
Jose14 July 2019

Empezo desde lo basico con las nuevas librerias aunque me hubiera gustado que hubiera adentrado mas en RxJava

J
Jhon18 June 2019

Aprendi las mejores librerias y las mas utilizadas de una manera muy comoda y bien explicada. Muchas gracias.

L
Luis10 May 2019

aprendí mucho, espero poder aplicar todos los conocimientos en mis proyectos. Buen profesor, se hace entender y no es aburrido.

E
Eugenio18 April 2019

Aprendes todo lo mencionado en el curso, la única cosa que he podido echar en falta han sido más pruebas para realizar solo, pero entiendo que esto es complicado de conseguir en un curso online. En definitiva un muy buen curso para aprender MVP, Dagger, Retrofit, RxJava.

L
Luis2 February 2019

El curso era realmente lo que esperaba, te enseña a integrar todas las dependencias y MVP en un solo proyecto dando un ejemplo de una aplicación de la vida real. Eso precisamente era lo que estaba buscando, ya que tenía conocimientos previos de cada librería o dependencia explicada en el curso pero me costaba un poco la integración de rxJava, retrofit y dagger utilizando MVP o clean. Un punto que me quedó dando vuelta es que la palabra interficie no existe -> https://dle.rae.es/?w=interficie En resumen excelente curso y preciso, cumple el objetivo.


Coupons

DateDiscountStatus
6/27/202192% OFFExpired
7/9/202192% OFFValid

1865140

Udemy ID

8/19/2018

Course created date

11/23/2019

Course Indexed date
Bot
Course Submitted by