Architect Android apps with MVP, Dagger, Retrofit & RxJava
4.0 (981 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,737 students enrolled

Architect Android apps with MVP, Dagger, Retrofit & RxJava

Learn software architecture skills. Build apps with Model-View-Presenter pattern. Make apps more robust and fun.
4.0 (981 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
3,737 students enrolled
Last updated 2/2019
English [Auto-generated], Portuguese [Auto-generated], 1 more
  • Spanish [Auto-generated]
Current price: $126.99 Original price: $194.99 Discount: 35% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 5.5 hours on-demand video
  • 1 article
  • 5 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Build and architect Android apps using MVP pattern
  • Understand dependency injection and Dagger 2
  • Understand Gradle build system
  • Understand unit testing and JUnit for Android apps
  • Understand mocking objects using Mockito
  • Understand type-safe REST API client called Retrofit
  • Understand reactive programming and RxJava
  • Understand the MVP UI pattern
  • Understand how to migrate to RxJava 2
  • Understand Lambda syntax
  • Understand how to update to a new Android Studio version
  • Understand what the Diff Util is
  • Understand how to refactor code
Course content
Expand all 49 lectures 05:30:54
+ Welcome and introduction
3 lectures 15:14
Becoming an Online Instructor
Prepare for the course
+ The changing face of app development (moved)
1 lecture 00:21
Changing face of app development (moved)
+ Model-View-Presenter (MVP) pattern
2 lectures 22:21

In this module, we get more technical and examine how the MVP architecture might prove to be the answer that Android developers seek.

Preview 10:26
Introduction to MVP continued
Test your knowledge: MVP pattern
5 questions
+ MVP in action-I
8 lectures 48:28

In this session we will start to lay the foundation of demo projects in Android Studio to understand the concepts and techniques discussed so far in Architect flexible & scalable Android apps with MVP pattern

MVP pattern in action

Quick walk-through of the MVP architecture with the help of a simple demo project in Android Studio

MVP project - overview
MVP in action - dependency injection

You will understand what the fancy term Dependency Injection is and that you are doing this almost every day.

Dependency injection - introduction

You will now how to set up Dagger 2 in the Application class and the necessary interfaces that are required.

Dependency injection - setup Dagger 2

You will know how to program to an interface and how the different components of MVP are interacting together.

MVP project - setup
MVP project - implementation
MVP project - debugging session
Test your knowledge: MVP in action - I
4 questions
+ MVP in action-II
13 lectures 01:34:14

Learn the tools we will need.

MVP in action - tools and frameworks

You will write your first unit tests on the fast JVM.

JUnit and Mockito - setup unit testing

You will write more advanced junit test methods to cover your presenter logic.

JUnit and Mockito - unit testing continued
Retrofit - introduction

The basic setup of Retrofit and how to make it work with Dagger 2.

Retrofit - setup

You will be able to set up retrofit and consume a real world api and display the information the user.

Retrofit - in action
Reactive programming - introduction
Reactive programming - introduction continued

Demystifying RxJava and learn how to take your development career to the next level. 

RxJava - introduction

Easy thread jumping with RxJava. 

RxJava - schedulers

You will learn how to add RxJava and RxAndroid to your project. You will also combine Retrofit with RxJava for easy callback handling.

RxJava - setup

Learn what RxJava operators are see how you can filter results taken from a remote API.

RxJava - operators

Finally get rid off findViewById() and have a cleaner onCreate() with easy clickListeners.

Butterknife - introduction
Test your knowledge: MVP in action - II
7 questions
+ Putting it all together
6 lectures 01:04:04

Combine everything we learnt and build a modern Android Application from scratch. 

Putting it all together
Demo app - introduction

Setting up the MVP layers for the final application.

Demo app - setup MVP layers

Moving on to add more boilerplate code for Dagger 2 and Retrofit. 

Demo app - Dagger and Retrofit setup

Revisiting what we built and how we achieved it. 

Demo app - walkthrough

Checking step by step what is going on and how data is flowing throughout the app. 

Demo app - debugging session
+ Changing Face Of App Development
1 lecture 11:10
Changing face of mobile app development
Test your knowledge: The changing face of app development
2 questions
+ Rx Java 2 Migration Guide
6 lectures 23:59

Check out the new stuff that come with RxJava 2

RxJava 2 Intro

In this lecture we will update gradle and the Android SDK to the latest versions

Migrate to Android Studio 3 (Part 1)

In this lecture we will update the remaining dependencies

Migrate to Android Studio 3 (Part 2)
Migrate Retrofit to RxJava 2
Migrate the repository to RxJava 2
+ Bonus lectures
7 lectures 46:12

Learn how to use Lambdas and why they are better

Understanding Lambdas

We are going to refactor the final app example to accommodate the Diff Util and Lambdas. 

Major refactoring
More refactoring

See how to add and implement a swipe refresh layout.

Add a Swipe to refresh layout
Add lambdas to RxJava 2

Check out what the diff util is and how to create it and get control of the Recycler View adapter.

Create a Diff Util

Learn how to use the diff util in your code

Use the Diff Util
+ Conclusion
2 lectures 04:51
Thanks! (bonus lecture)
  • Basic information about software development processes
  • Desire to learn something new and continuous improvement

Developing Apps is it not? It’s really exciting to take an idea from the back of a paper napkin all the way to the App Store!

It is Not only fun but also lucrative. There are tremendous opportunities available out there for app developers and designers all over the world. 

Android offers an excellent platform for developing and delivering apps. Most of you might already be working on this platform. If so, you would know, Android platform and mobile app industry as a whole has a remarkable future ahead. 

Smartphones enable us to do a lot these days, from shopping our clothes, booking movie tickets, to ordering groceries and getting them delivered right to our doorsteps. It is hard to believe – but even after all these advancements – there is still a lot of paper-based work happening in the workplace and everyday lives. There are still untapped opportunities and workflows which need to move to the mobile platform. If you have a good idea – the world is your oyster. You can change the way how people live their lives by introducing a compelling app.

You may be working as a freelancer or may have a full-time job as an app developer or architect. Whether you create one app a year or multiple apps in a month - there must have been times when you got tired of looking at long strings of code tangled together into a spaghetti-like mess. 

This is particularly painful if you have to inherit a legacy code base and you have to add features to it or fix bugs.

Make your life easier and building apps learning tried and tested software architectural patterns. 

In this course – you will Get a detailed and behind the scenes look at Model-View-Presenter (MVP) pattern, which helps make code simple and clean. You also get familiar with other fundamental concepts like dependency injection, reactive programming, unit testing, mock objects which assist you throughout the app development lifecycle. Learn frameworks like Dagger 2, Retrofit, RxJava and RxJava 2, Junit, Mockito and others.

Gain valuable skills of architecting apps in a flexible and scalable manner. Advance your career and work on more cutting edge projects out there.

Who this course is for:
  • Mobile and Web App Developers
  • Software Architects
  • Tech Founders and Co-Founders (Technical or Non-Technical)