What you'll learn:
- Use modern Android Development tools in a real Android app: Kotlin, Jetpack Compose, Compose Navigation, MVVM, Hilt, Room, Coroutines
- Decouple the user interface logic from the rest of the application
- Organize the screens navigation logic in one class with a clean and convenient interface
- Leverage Dependency Injection to separate functional and construction concerns in your codebase
- Create reusable and testable Use Case classes for individual business flows
- Discover the drawbacks of the Repository Pattern
- Structure the app's packages to reflect its core business domain
- Avoid dirty code and God Classes in your Android application
In this course you'll journey into the depths of Android Architecture and learn to build clean and maintainable Android applications.
Developing an Android application takes effort and skill, but it's even more challenging to keep this application maintainable and extensible in the long term. Just writing code to "make it work", without giving consideration to the big picture, can easily lead to a messy codebase.
Unfortunately, dirty code is all too common in Android development. Many projects suffer from classes containing hundreds or even thousands of lines of code, circular dependencies, excessive coupling, code duplication, obscure naming conventions, poorly structured packages, and other deficiencies. These are serious issues that impede project progress and can make Android development a miserable experience.
Said that, Android development doesn't have to be a struggle, even with mature and complex projects! In this course, you’ll learn advanced architectural techniques that will guarantee the long-term success of your Android applications:
Clean Architecture
Proper way to structure application's packages
Model-View-X architectural patterns
How to create reusable components that adhere to the SingleResponsibility Principle
Dependency Injection architectural pattern
and more...
After completing this course, you'll be writing clean and maintainable code. Different features will be encapsulated in focused, decoupled classes. The classes themselves will be distributed among well-organized, properly named packages. You'll be using standard architectural patterns, so other developers will have easier time understanding your code. Your business flows will be encapsulated in standalone, reusable components. And much more...
No more classes with hundreds of lines of code!
No more excessive coupling!
No more code duplication!
No more changes in many places each time you add a new feature!
No more spaghetti code!
So, if you want to master advanced Android development techniques to build well-architected, clean Android applications, this course is perfect for you!