We may earn an affiliate commission when you visit our partners.
Course image
Vasiliy Zukanov

In this course you'll journey into the depths of Android Architecture and learn to build clean and maintainable Android applications.

Read more

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 Single Responsibility 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.

Enroll now

What's inside

Learning objectives

  • Master the most important architectural concepts in android development
  • Decouple the user interface logic using mvvm architectural pattern
  • Organize the screens' navigation logic in one component
  • Use dependency injection to separate functional and construction concerns in your codebase
  • Encapsulate the business flows in reusable and testable classes that follow the single responsibility principle
  • Discover the drawbacks of the so-called repository pattern
  • Structure the packages inside the codebase to reflect the project's core business domain
  • Avoid spaghetti code and god classes in your android application

Syllabus

Introduction
Tutorial Application
Software Architecture
Package Structure
Read more
Package by Feature
Package Presentation Logic
Package Common and Generic Logic
Package Structure Summary
Presentation Layer
Screens
Centralizing the Navigation Logic in One Place
Fixing a Bug in Bottom Tabs Navigation
ScreensNavigator
Presenter
Exercise 1
Solution Exercise 1
Simple Presenter Limitations
Fixing a Bug in Coroutines Lifecycle
ViewModel
Exercise 2
Solution Exercise 2
Model View ViewModel (MVVM)
Presentation Layer Summary
Domain Layer
UseCase (Interactor) Objects
Presentation vs Domain Layer Caching
Exercise 3
Solution Exercise 3
Real-World UseCase Objects
Decouple From the External Data Structures
Repository (Anti) Pattern
Domain Layer Summary
Dependency Injection
Manual (Pure) Dependency Injection vs Dependency Injection Frameworks
Adding Hilt to the Project
Hilt Application and Entry Point
Injecting ViewModel Using Hilt
Exercise 4
Solution Exercise 4
Decouple UI Logic with Dependency Injection
Global Data Cache
Dependency Injection Summary
Course Summary
[OLD COURSE] Architecture
Course Overview
Udemy Review System
[OLD COURSE] MVx Architectural Patterns
Presentation Layer Architectural Pattern
MVx
[OLD COURSE] Review of Android Architecture Blueprint
Offiicial Android Architecture Blueprints
Review of MVP Architecture Blueprint
[OLD COURSE] MVx in Android
My Journey to MVx in Android
The Main Benefit of MVx
Extracting UI Logic from Activities
From MVx to MVC
MVx in Android Summary
[OLD COURSE] MVC Basics
StackOverflow Client Application
Straightforward Implementation
[OLD COURSE] MVC View
[OLD COURSE] ViewHolder in ListView
[OLD COURSE] MVC View in ListView
[OLD COURSE] MVC View in RecyclerView
[OLD COURSE] Extraction of ViewMvc Interface
[OLD COURSE] Extraction of ObservableViewMvc Interface
[OLD COURSE] Extraction of BaseViewMvc Abstract Class
Extraction of BaseObservableViewMvc Abstract Class
Activity as Controller
Android Views are Non-Optimal Choice for MVC Views
MVC Basics Summary
[OLD COURSE] Dependency Injection
Dependency Injection Architectural Pattern
Composition Root
Controller Composition Root
MVC Views Factory
MVC Views Factory in Lists
[OLD COURSE] Controller
Question Details Requirements
Implementation of Question Details Screen
Use Case
Separation of Controllers from Networking Logic
Standalone Controller for Unit Testing
View Listener Management
Controller Summary
[OLD COURSE] Packages Structure
Importance of Packages Structure
Review of Packages Structure
Cleanup of Packages Structure
[OLD COURSE] Nested MVC Views
Introduction of Toolbar

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Android architectural best practices, ensuring maintainability and extensibility
Led by instructor Vasiliy Zukanov, recognized for Android development expertise
Emphasizes clean and maintainable code, improving project quality
Requires no prior knowledge, making it accessible to Android developers of all levels
Provides hands-on labs and interactive materials, enhancing learning
Focuses on practical skills immediately applicable to real-world Android development

Save this course

Save Android Architecture Masterclass to your list so you can find it easily later:
Save

Reviews summary

Android architecture for beginners

According to students, this Android Architecture course is a great way to learn the basics of Android architecture and development. They say that the way of teaching is perfect and simple, making it easy to follow along. Students highly recommend this course for anyone looking to build their own Android apps.
Course is perfect for beginners.
"I was looking to build my app which would be easy to maintain in a long term. Way of teaching is just perfect and as simple as it gets. Highly recommended."
Highly recommended course.
"I was looking to build my app which would be easy to maintain in a long term. Way of teaching is just perfect and as simple as it gets. Highly recommended."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Android Architecture Masterclass with these activities:
Connect with experienced Android developers or architects
Access valuable insights, guidance, and support from experts in the field, accelerating your learning and growth as an Android developer.
Browse courses on Mentorship
Show steps
  • Attend industry events or meetups.
  • Join online communities and forums.
  • Reach out to individuals you admire in the field.
Read Clean Architecture: A Craftsman's Guide to Software Structure and Design
Provides a thorough understanding of clean architecture principles and best practices, enhancing your ability to design and develop maintainable and extensible Android applications.
Show steps
  • Purchase a copy of the book.
  • Set aside dedicated time for reading.
  • Take notes and highlight important concepts.
  • Apply the principles discussed in the book to your own Android projects.
Read Head First Design Patterns
Provides a comprehensive understanding of design patterns and their application in software development, enhancing your ability to design reusable and maintainable code in Android.
Show steps
  • Purchase a copy of the book.
  • Set aside dedicated time for reading.
  • Take notes and highlight important concepts.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Follow tutorial on Android Architecture Components
Builds a strong foundation in Android Architecture Components, improving your ability to structure and manage complex applications efficiently.
Show steps
  • Search and select a comprehensive tutorial on Android Architecture Components.
  • Work through the tutorial step-by-step, building a simple Android application.
  • Experiment with different components and patterns to gain practical experience.
Solve coding challenges on LeetCode or HackerRank
Sharpens your problem-solving and coding skills, which are crucial for building robust and efficient Android applications.
Browse courses on Data Structures
Show steps
  • Choose a platform like LeetCode or HackerRank.
  • Select coding challenges that align with the course topics.
  • Solve the challenges, focusing on developing optimal solutions.
Attend a workshop on Android Architecture and Best Practices
Gain in-depth knowledge and hands-on experience in Android architecture and best practices, enhancing your ability to design and build high-quality applications.
Browse courses on Android Architecture
Show steps
  • Identify relevant workshops in your area or online.
  • Register and attend the workshop.
  • Actively participate in discussions and hands-on exercises.
Build an Android app that implements MVVM architecture
Provides practical experience in implementing MVVM architecture in an Android application, solidifying your understanding and ability to build complex and maintainable UIs.
Browse courses on MVVM
Show steps
  • Define the scope and requirements of your application.
  • Design the architecture of your application using MVVM principles.
  • Implement the application, following best practices for code organization and maintainability.
  • Test your application to ensure it meets the requirements.
Build a small Android application that demonstrates clean architecture principles
Provides hands-on experience in applying clean architecture principles, reinforcing your understanding and solidifying your skills.
Browse courses on Clean Architecture
Show steps
  • Define the scope and requirements of your application.
  • Design the architecture of your application using clean architecture principles.
  • Implement the application, following best practices for code organization and maintainability.
  • Test your application to ensure it meets the requirements.

Career center

Learners who complete Android Architecture Masterclass will develop knowledge and skills that may be useful to these careers:
Android Engineer
Android Engineers are in charge of designing, developing, and testing mobile applications that run on Android operating systems. This course helps build a foundation in Android development by delving into the depths of Android Architecture. After completing this course, you'll be writing clean and maintainable code. This will impress prospective employers and strengthen your value as an Android Engineer.
Mobile Application Developer
Mobile Application Developers design, develop, and test mobile applications for various platforms, including Android and iOS. This course can help build a foundation for success in this field by teaching you how to build clean and maintainable Android applications.
Android Developer
Android Developers design, develop, and test mobile applications for the Android operating system. This course helps build a foundation in Android development by providing hands-on experience with real-world projects.
Software Architect
Software Architects design and develop software systems that meet the needs of businesses and organizations. This course introduces advanced architectural techniques that will guarantee the long-term success of your Android applications. These techniques include Clean Architecture, Model-View-X architectural patterns, and Dependency Injection architectural patterns.
Software Development Manager
Software Development Managers plan, organize, and direct the activities of software development teams. This course may be useful for those aspiring to become Software Development Managers, as it teaches advanced architectural techniques that can be used to improve the quality and efficiency of software development projects.
Cloud Architect
Cloud Architects design and implement cloud computing solutions that meet the needs of businesses and organizations. This course may be useful for those aspiring to become Cloud Architects, as it teaches advanced architectural techniques that can be used to design and implement scalable and reliable cloud-based applications.
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams, ensuring that software is developed and deployed efficiently and reliably. This course may be useful for those aspiring to become DevOps Engineers, as it teaches advanced architectural techniques that can be used to improve the quality and efficiency of software development and deployment processes.
Data Architect
Data Architects design and implement data management solutions that meet the needs of businesses and organizations. This course may be useful for those aspiring to become Data Architects, as it teaches advanced architectural techniques that can be used to design and implement data-intensive applications.
Technical Lead
Technical Leads mentor and guide software development teams, ensuring that projects are completed on time and within budget. This course may be useful for those aspiring to become Technical Leads, as it teaches advanced architectural techniques that can be used to improve the quality and efficiency of software development projects.
Enterprise Architect
Enterprise Architects design and implement IT solutions that meet the needs of large organizations. This course may be useful for those aspiring to become Enterprise Architects, as it teaches advanced architectural techniques that can be used to design and implement complex and scalable IT systems.
Solution Architect
Solution Architects design and implement technology solutions that meet the needs of businesses and organizations. This course may be useful for those aspiring to become Solution Architects, as it teaches advanced architectural techniques that can be used to design and implement complex software systems.
Software Engineer
Software Engineers design, develop, and test software applications. This course may be useful for those aspiring to become Software Engineers, as it provides a foundation in software engineering principles and practices.
Software Tester
Software Testers design and execute tests to ensure that software applications meet the requirements and specifications. This course may be useful for those aspiring to become Software Testers, as it provides a foundation in software testing principles and techniques.
Java Developer
Java Developers develop software applications using the Java programming language. This course may be useful for those aspiring to become Java Developers, as it provides a solid foundation in Java programming and its application in Android development.
Information Technology (IT) Specialist
IT Specialists provide technical support to users of computer systems and networks. This course may be useful for those aspiring to become IT Specialists, as it provides a foundation in computer systems and networks.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Android Architecture Masterclass.
This highly influential book introduces the Clean Architecture principles, which emphasize decoupling and separation of concerns. It offers a valuable foundation for understanding architectural concepts covered in the course.
This influential book promotes the principles of clean coding, which are essential for developing maintainable and extensible software. It complements the course's focus on code quality.
This classic work explores domain-driven design principles, providing insights into modeling complex business domains. It complements the course's focus on architecting applications based on business requirements.
This approachable book uses a humorous and engaging style to introduce fundamental design patterns commonly used in software development, including the MVVM and Repository patterns covered in the course.
Provides a comprehensive introduction to Kotlin, the programming language used in the course. It offers a solid understanding of Kotlin's features and syntax.
This comprehensive book provides a thorough introduction to Android development, covering core concepts and advanced topics. It offers a solid foundation for understanding the course material.
This classic book offers practical advice on writing effective Java code. It covers principles and techniques that are also applicable to Android development.
This practical book focuses on using Android Studio, the IDE used in the course. It provides hands-on guidance on setting up the environment and using the tools effectively.
Focuses on Jetpack Compose, a modern UI framework for Android development. While not directly covered in the course, it provides a valuable reference for those interested in learning this new approach.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Android Architecture Masterclass.
Adapting CLEAN Architecture in Android Apps
Most relevant
ASP.NET Core Clean Architecture
Most relevant
Java: Writing Readable and Maintainable Code
Most relevant
Java Best Practices
Most relevant
Engineering Maintainable Android Apps
Most relevant
SOLID Principles of Object Oriented Design and...
Most relevant
Clean Code
(Jetpack, Architecture & More)Advanced Android Bootcamp...
Programming Design Patterns For Unity: Write Better Code
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser