Advanced Android – Architecture with Dagger 2 and more
Learn to build production-grade Android apps, not just make them “work”
What you’ll learn
- Build an Android app with an easy to maintain and testable architecture. (Hint: Not everything belongs in Activities/Fragments!)
Setup a project with dependency injection using Dagger 2.
Understand RxJava and how to architect Android applications with Reactive Programming in mind.
- Use Reactive View Models to make unit testing UI possible and make handling view state more straightforward.
- Use mock data to be able to run and test your app without needing network access
- Use Dagger 2 to swap test versions of your dependencies during Espresso/UI tests
- Intermediate Android development experience
- Development environment capable of running Android Studio (Windows/Linux/Mac)
Hello everyone and thank you for your interest in Advanced Android!
Android development has a lot of great benefits, such as low barrier to entry, low cost to be a published developer, and of course, being able to run your creations on millions of devices.
Developing a maintainable and testable application that is easy to add new features to can be difficult. It requires thinking ahead about the architecture of your application and getting beyond the “just make it work” stage. This is something I personally find the most fun about development, however. My goal is to help you get into the same mindset and teach you about architecture patterns that will accomplish the previously mentioned items.
This course is an intermediate course, so familiarity with the Android development process will help greatly. It will move quickly, but advanced concepts will be explained thoroughly. That said, we will be building an application from the very beginning, so by following along, no matter what your skill level, you will be able to complete this course and have a fully functioning Android app with the kind of architecture that you would hope to see in an enterprise level project. That’s not to say that all companies have applications with great architecture (if only we developers could be so lucky), but after this course you will be able to identify if a project doesn’t—and have an idea on how to fix it!
Here are some of the things you will learn in this course:
- Dependency Injection with Dagger 2
- Making network requests with Retrofit
- Unit testing with Junit and Mockito
- Using test doubles in Espresso tests with Dagger 2
- MVP / MVVM architecture (yes, a mixture! Read below for details) using Reactive View Models
In regards to the MVP / MVVM architecture point:
The classic software architecture patterns are baseline frameworks attempting to describe how layers of your software communicate with each other. It is important to remember that forming the patterns to what works best for you is the key; as long as you follow basic software architecture principles, any architecture is a good architecture! In this course you will learn how using Reactive View Models with Presenters can help you separate responsibilities and make your application much easier to test.
With all that said I’m excited to get started showing you how to create applications that will make your life, and those of the developers following you, easier and more enjoyable!
- Anyone who wants to learn how to create apps with an easy to maintain, testable architecture.
- Android developers looking to learn more advanced techniques.
- Android developers interested in dependency injection and why it’s so popular.
- Android developers wanting to understand RxJava, and Reactive Programming in general.