Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence CBT
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
Development Software Engineering Android Development

Arquitectura de aplicaciones - MVP, Dagger, RxJava, Retrofit

Aprende habilidades de arquitectura de software creando apps más robustas y divertidas utilizando Model-View-Presenter
Rating: 4.7 out of 54.7 (251 ratings)
1,265 students
Created by Juan Gabriel Gomila Salas +300.000 estudiantes online
Last updated 1/2021
Spanish
Spanish [Auto]
30-Day Money-Back Guarantee

What you'll 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
Curated for the Udemy for Business collection

Course content

9 sections • 90 lectures • 13h 13m total length

  • Preview05:20
  • Preview02:25
  • Preview02:41
  • La comunidad de Discord para aprender todos juntos
    03:37
  • Repositorio Git del curso
    00:05

  • Un pequeño comentario antes de empezar la sección
    01:04
  • Un resumen de la parte teórica (por si quieres saltarte la sección)
    16:32
  • Preview03:45
  • Entendiendo la arquitectura de Android
    08:57
  • Preview05:24
  • Las necesidades del desarrollo de apps
    08:54
  • Preview03:54
  • El principio SOLID
    03:58
  • Desacoplando la arquitectura
    08:14
  • El MVP en acción
    04:58
  • Arquitectura clean y MVP
    07:28
  • El flujo de dependencias
    07:56
  • Y en resumen...
    01:32

  • Dagger II de Google
    03:34
  • Portal de Dagger II
    00:08
  • Dependencias
    03:17
  • Inyección de dependencias
    09:41
  • Ejemplo de inyección de dependencias
    05:41
  • La interfaz gráfica de usuario
    11:34
  • Añadir las dependencias de Dagger
    04:33
  • La estructura para usar Dagger en Android
    15:03
  • Estructura de paquetes recomendada
    05:33
  • Estructura de clases para MVP
    12:51
  • Los métodos de las interfaces de MVP
    05:45
  • Implementación de la Vista
    06:53
  • Implementación del Presentador
    10:08
  • Implementación del Modelo
    08:55
  • Configuración del módulo y las dependencias
    09:32
  • Visualizando MVP línea por línea
    10:02
  • MVP y dagger
    6 questions

  • Librerías para el Test Driven Development
    14:35
  • Portal de Mockito para pruebas unitarias
    00:04
  • Configurando Mockito para Unit Tests
    32:03
  • Ejercicios con Mockito (I)
    13:01
  • Ejercicios con Mockito (II)
    05:13
  • Ejercicios con Mockito (III)
    10:05
  • Ejercicios con Mockito (IV)
    06:24

  • Retrofit, un cliente seguro de HTTP para Android y Java
    05:22
  • Web y recursos de Retrofit
    00:06
  • Configurando Retrofit en Android
    12:26
  • Cómo usar Gradle como un profesional
    15:38
  • Generar clases de Java a partir de ficheros JSON
    22:51
  • Conversor de ficheros JSON a POJO
    00:10
  • Registro en el portal de la API de Twitch
    06:00
  • API del portal de videojuegos Twitch
    00:03
  • Cómo usar Retrofit para conectarnos a la API de Twitch
    20:36
  • Descargando datos desde Twitch
    20:21
  • Práctica: Retrofit y APIs
    3 questions

  • Programación reactiva vs imperativa
    11:28
  • Conoce el proyecto ReactiveX
    17:19
  • Un ejemplo sencillo de programación reactiva
    09:23
  • Un ejemplo un poco más elaborado
    11:25
  • Webs de recursos de ReactiveX
    00:04
  • Integrando RxJava en Android
    09:06
  • Los objetos observables
    07:29
  • Flujo de datos reactivos
    16:12
  • Documentación de Reactive para desaprender
    06:08
  • Un ejercicio para ti
    12:07
  • Llamadas a Twitch con programación reactiva
    3 questions

  • Butter Knife, una herramienta muy útil
    02:09
  • Portal web de Butter Knife
    00:05
  • Integración de Butter Knife
    04:05
  • Plugin para Butter Knife
    00:31
  • Un ejemplo sencillo de Butter Knife
    07:51
  • Butter Knife para otros recursos
    14:39
  • Fragmentos, Adapters y listas de Vistas
    14:55
  • Binding de métodos y modificadores
    12:18
  • Frameworks para dar y tomar
    9 questions

  • El proyecto final del curso
    04:49
  • Las librerías y dependencias
    12:39
  • Diseño de la vista
    15:18
  • ButterKnife y la interfaz de MVP
    11:03
  • Configuración de Dagger e inyecciones de dependencias
    10:07
  • Configurando el adapter de la recycler view
    15:05
  • Implementando la lógica de la vista
    07:42
  • Implementando la lógica del presentador
    10:37
  • Implementando la lógica del modelo
    08:53
  • Las Apis de 'The Movie Database' y 'OMDb'
    19:42
  • Dos APIs para el mundo del cine
    00:04
  • Los módulos e implementaciones de las APIs
    11:04
  • El binding de Dagger 2 para compilar el proyecto
    18:15
  • Implementando los clientes de Retrofit con claves de API
    11:35
  • Crear una cache de datos
    12:31
  • Descargar los datos con RxJava y Retrofit
    15:50
  • Ultimando detalles de configuración
    15:04
  • Resolución de bugs finales
    06:35
  • Debugging de nuestro código por capas
    15:36

  • Enhorabuena por acabar el curso
    01:44
  • BONUS - Un regalo para ti
    00:15

Requirements

  • Información básica acerca del proceso de desarrollo de software
  • Conocimiento básico de la arquitectura de programación y diseño de Android
  • Desear conocer y aprender nuevas formas de crear código sostenible con patrones de diseño
  • Es recomendable aunque no indispensable haber tomado el curso de Patrones de Diseño para Android del prof. Juan Gabriel Gomila

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!

Who this course is for:

  • Estudiantes de ingeniería informática
  • Desarrolladores de apps móviles y web
  • Arquitectos de Software
  • CTOs y fundadores de empresas tecnológicas (técnicos o no técnicos)
  • Programadores en empresas tecnológicas

Instructor

Juan Gabriel Gomila Salas +300.000 estudiantes online
CEO de Frogames, Matemático, Data Scientist & Game Designer
Juan Gabriel Gomila Salas +300.000 estudiantes online
  • 4.6 Instructor Rating
  • 43,401 Reviews
  • 314,351 Students
  • 95 Courses

Soy licenciado en matemáticas, especializado en el análisis de datos para empresas de videojuegos con R y Python, en Game Design para videojuegos de social casino, en el desarrollo de aplicaciones móviles para iOS y para Android y desarrollador de videojuegos utilizando los motores Unreal Engine y Unity tanto para PC como para móvil desde el año 2011.

Me encanta programar, crear apps y videojuegos que la gente utilice y sobretodo enseñar tanto en el mundo online, como en la Universidad presenciamente.

Aquí en Udemy, llevo como profesor online desde verano de 2015 he lanzado ya más de 90 cursos online con más de 300.000 estudiantes en más de 160 países de todo el mundo que han aprendido en castellano  temáticas de desarrollo tan diversas como el mundo de las apps para iOS en Objective-C, Swift y SpriteKit,  en Android con Java, desarrollo de videojuegos con Unity y Unreal Engine cubriendo desde lo más básico hasta aspectos avanzados para crear juegos profesionales o incluso análisis de datos masivos, big data, machine learning y data science con R, Tidyverse y Python. 

Soy también Instructor Certificado de Unity (UCI), lo cual me permite viajar por todo el mundo asesorando y dando formación en desarrollo de videojuegos para empresas de CAD, o estudios de renombre como por ejemplo Team 17 (Worms, The Escapists), Genera Games (Disney's Frozen, Star Wars) o Ubisoft (Assassin's Creed, CSI Hidden Crimes)

Además, los propios estudiantes online de varias partes del mundo me han contactado para ir a dar conferencias y compartir mis experiencias en lugares tan bonitos como Colombia, Dinamarca, USA, México, Suecia, Holanda, Londres o Bolivia entre otros. Si no conoces aún ninguno de los cursos que imparto aquí en Udemy, tómate un tiempo para visitar los diversos cursos gratuitos que tengo publicados aquí mismo.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.