Android Developer = Compose + MVVM + Clean Architecture
- Descrição
- Currículo
- FAQ
- Revisões
Hello and welcome to my Android Development Architecture course!
In this course, we’ll build an app from scratch that displays an infinite list of movies that load lazily in blocks. We will implement a search function with real-time API calls and the ability to save movies to a local database in two different ways.
We’ll first create the screens by using the old layouts, then I’ll show you how to migrate to Compose in simple steps. You might be wondering: why not do this directly in Compose? Well, the answer is simple. Compose is a fairly new technology and not all projects have been migrated yet. You never know what kind of projects you’ll end up with. If you understand both systems and work with them as a professional, you will stand out from the crowd. A big advantage is that you can organize and design the migration yourself within your team!
But the most important thing about this app is not its functionality or its design. But how do we architect it and that’s why we will use tools that are proven to work best for Android development.
Here is a list of the technologies we will use:
Retrofit – One of the main network call libraries
Room – Google-recommended library for local databases
Koin – The pragmatic Kotlin Dependency Injection framework
Coil – to load network images
Gson – Json converter for API responses
Kotlin Flow and Coroutines – Asynchronous or non-blocking programming as an important part of the development landscape.
Ktlint – kotlin-linter
And also the Jetpack libraries offered by Google:
Pagination – for simple and infinite data loading
Navigation – for easy navigation between screens
Materials design – design framework
Compose – the latest Android UI framework
They are all configured and packaged in the standard MVVM or Model-View-ViewModel and Clean Architecture.
You’ll end up with 2 base projects, first with legacy xml layouting and second with the newest Compose technology. And because we’ll be using TMDB service, after this course you’ll have to possibility to develop your own ideas on top of it and thus, practice the fresh knowledge you just got!
This course is intended to be continually updated, meaning new modules will be added over time, increasing the price, but if you have already purchased the course you will not have to pay extra. And there’s always a 30-day money back guarantee if you decide to issue a refund!
-
1Important! Before you start.Vídeo Aula
In this video I'll show you how to get the TMDB API key that we are going to use in our app development.
Please note that this API is free for learning purposes! If you decide to publish this app or gain profits from using this API you must get in touch with TMDB team! -
2Android Studio setup (tools, plugins and cosmetics)Vídeo Aula
In this lesson we'll go through our Android Studio setup that we're going to use for this course. To avoid any problems that may occur during this course I would highly recommend to make sure that you're using the same tools as showcased in this video!
You'll get a first glance at JetBrains Toolbox app that makes Android Studio version management very easy.Also I'll show you the cosmetic setup that I prefer as well as plugins that are very useful for any Android Developer!
Such as ktlint and Json To Kotlin ClassRules to disable for ktlint:
trailing-comma-on-call-site, trailing-comma-on-declaration-site
(just copy this into Disable Rules field and click apply) -
3Get the base project and overviewVídeo Aula
We'll start from a base project that I have created for this course. I will be empty and contain only setup for libraries that we're going to use. So in that lecture I will go through it and will explain why and how I've set it up like this.
-
4Packages - How to organise your files and not get lostVídeo Aula
In this lesson you'll learn the first step for development of any app. And that setting up the structure of your folders(or as they everybody calls them - Packages) inside your project.
-
5Fragments is all you need! Navigation and delegate your ViewBindingsVídeo Aula
In this video we'll set up the screens that we're going to have and create the navigation between them using the Navigation Library provided by Google.
Also we'll talk a little about the best practices for Fragments and we'll set up ViewBinding -
6ViewModels - what are they and how to use themVídeo Aula
This is where Architecture starts!
We'll set up the Dependency Injection by using Koin Library and directly start using it by injecting the ViewModel into our Fragment.
Also you'll learn how the communication between View and ViewModel should work by using a Flow -
7Retrofit - How to get data from servicesVídeo Aula
Here we're setting up the Retrofit library. But it's not just a quick setup, we'll create the Repository layer and establish the communication with the ViewModel as a dependency!
-
8RecyclerView - The Good, the bad and the ugly (How to use it right way)Vídeo Aula
RecyclerView is one of the most used components in Android, and thus, understanding it is crucial for any developer. We'll go through different ways that people are using it and in the end we'll get to the best way!
-
9Pagination - Can you load all the movies in one app ?Vídeo Aula
If you want to load data continuously as the scroll goes down, Paging library can help you with that !
Learn how to set it up the right way and handle all the possible states. -
10Clean Architecture - What is a UseCase?Vídeo Aula
We'll introduce now the most used Clean Architecture component - the UseCase!
-
11Search - Find me my favourite movie!Vídeo Aula
-
12Details - This movie looks nice, I wanna know more!Vídeo Aula
Practice everything that we learned before and learn how to pass parameters between your screens.
-
13Room - Local Database setupVídeo Aula
Setup for Room library, or in other words our local database! We'll go through Entities and how to use them in 2 different ways as well as on how to store custom data types.
-
14Saved - I like this movie! How can I save it?Vídeo Aula
Now, as we have our local database all set. We can show it in our Saved Movies screen. Also you're going to learn what does it mean to be Reactive to data changes.
-
15Modules - What is a Feature Module and how to set it upVídeo Aula
We ended up with quite some code! We'll now split our project into something bigger than just Packages - into Modules !
