Android Applications Architecture
4.9 (27 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.
260 students enrolled

Android Applications Architecture

Develop clean and maintainable Android applications using the most advanced architectural patterns
Highest Rated
4.9 (27 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.
260 students enrolled
Created by Vasiliy Zukanov
Last updated 9/2018
English
English
30-Day Money-Back Guarantee
Includes
  • 4 hours on-demand video
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Interactive Features
This course offers interactive exercises and downloadable resources. Learn more.
  • 1 Downloadable resource
Training 5 or more people?

Get your team access to Udemy's top 2,500+ courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Develop clean and maintainable Android applications
  • Understand the benefits of MVC, MVP, MVVM, etc. architectural patterns

  • Implement the most advanced presentation layer architectural pattern in Android

  • Combine MVx with Dependency Injection
  • Learn to write reusable and composable presentation layer components
  • Structure application's packages to support and highlight its fundamental architecture
Curriculum For This Course
61 Lectures
04:00:11
+
MVx Architectural Patterns
3 Lectures 06:38
+

Architecture is Difficult

2 Lectures 09:35
Offiicial Android Architecture Blueprints
01:25
Review of MVP Architecture Blueprint
08:10
+

MVx in Android

5 Lectures 17:13
The Main Benefit of MVx
04:13
Extracting UI Logic from Activities
05:22
From MVx to MVC
02:56
MVx in Android Summary
00:46
+
MVC Basics
13 Lectures 52:08
StackOverflow Client Application
01:34
Straightforward Implementation
03:23
MVC View
13:13
ViewHolder in ListView
03:45
MVC View in ListView
10:19
MVC View in RecyclerView
01:32
Extraction of ObservableViewMvc Interface
02:31
Extraction of BaseObservableViewMvc Abstract Class
04:02
Android Views are Non-Optimal Choice for MVC Views
02:55
+
Dependency Injection
6 Lectures 22:55
Dependency Injection Architectural Pattern
06:01
Composition Root
04:19
Controller Composition Root
03:58
MVC Views Factory
03:19
MVC Views Factory in Lists
03:19
+
Controller
8 Lectures 30:25
Question Details Requirements
01:13
Exercise 1
02:14
Implementation of Question Details Screen
02:32
Use Case
08:38
Standalone Controller for Unit Testing
10:17
View Listener Management
02:23
Controller Summary
01:48
+
Packages Structure
3 Lectures 07:54
Review of Packages Structure
02:04
Cleanup of Packages Structure
04:18
+
Nested MVC Views
4 Lectures 07:47
Introduction of Toolbar
02:25
Exercise 2
01:48
Toolbar Up Navigation
01:55
Nested MVC Views Summary
01:39
+
Nested MVC Views through Inheritance
7 Lectures 30:25
Introduction of Navigation Drawer
10:22
Exercise 3
00:34
Making Hamburger Button Open Navigation Drawer
04:21
Making Back Button Close Navigation Drawer
06:48
Exercise 4
00:38
Reuse of Navigation Drawer
04:45
Nested MVC Views through Inheritance Summary
02:57
+
Nested Controllers
7 Lectures 45:03
Why Fragments
00:58
Refactoring of Questions List Screen to Fragment
08:05
Exercise 5
00:53
Refactoring of Question Details Screen to Fragment
09:07
Refactoring to "Single Activity" Approach
15:28
Introduction of FragmentFrameHelper
05:17
1 More Section
Requirements
  • Hands-on experience with Android development (preferably 6 months or more)
  • Knowledge of Java
Description

Welcome to the advanced Android applications design and architecture course. Here you'll learn the craft of development of clean Android applications, optimized for long-term maintenance. By the end of this course you'll understand the theory behind the most beneficial architectural patterns (MVx, "clean architecture", etc.) and practice them with non-trivial hands-on exercises.

Students who had already taken the course found it interesting, insightful and practically useful:

★★★★★: "In one word: amazing! The best course in android architectural design seen so far."

★★★★★: "With the help of this course, I'm confident that I can make my future apps better."

★★★★★: "Wow!! I will not be able to praise this course enough. Take it and see it for yourself. You won't regret!"


Android powers more than two billion devices and it's relatively easy to develop small Android apps. However, when it comes to development of clean, readable and maintainable applications that will stand the test of time, things tend to get very difficult.

Unfortunately, Android developers usually learn the hard way how quickly Android apps can turn into tightly coupled mess, bogged down with classes that contain thousands lines of unreadable code.

It turns out that the only way to go fast and keep your Android app maintainable in the long term is to be mindful about its design and architecture at all times. Fortunately for Android developers, much knowledge in this context has already been captured in the form of so-called architectural patterns.

That's what this course is all about: the most advanced architectural patterns for professional Android development.

MVx

You'll learn about MVx family of presentation layer architectural patterns (MVC, MVP, MVVM, etc.) and understand why it's great to use them in your apps. Then, we'll derive the most advanced MVx pattern for Android development from the first principles of good design and architecture.

Clean Architecture

In this course we will touch upon the most important concepts of so-called "Clean Architecture" school of though. Specifically, you'll learn how to implement "use cases" (also known as "interactors"), structure application's packages according to its architecture and manage inter-dependencies between components.

Dependency Injection

Since this course concerns software architecture, it would be incomplete without a discussion of dependency injection architectural pattern. I will show you how to implement so-called Pure Dependency Injection in your Android app without any third-party frameworks, and then explain how it integrates with MVx for the maximal architectural benefits.


Throughout the course I'll highlight many important design and architectural trade-offs which you'll need to consider as a professional Android developer. These seemingly small and often overlooked trade-offs can make a difference between clean and maintainable applications and tightly coupled, unmaintainable code.

We will conclude the course with a general discussion of the goals, the benefits and the scope of the software architecture. This will allow you to grasp the bigger picture and understand what's required of professional software developers in context of real-world projects.


  • Professional grade design and architecture for Android applications

  • Optimized for experienced Android developers

  • Concise

  • Hands-on exercises

  • Source code of tutorial app on GitHub with step-by-step commits history for easy review


This course is a culmination of my multi-year research into the best architectural patterns for Android development. All the concepts and techniques that you'll learn have already been tested in real-life applications and proved themselves over the years.

So, if you already know how to write Android applications and want to take your design and architectural skills to the next level - this course is for you.

I can't wait to see you inside.

Who is the target audience?
  • Professional Android developers