To-Do App with Jetpack Compose MVVM - Android Development
- Description
- Curriculum
- FAQ
- Reviews
Hello there and welcome to my course! In this course I’m going to teach you how to build your first Android App from scratch, using a popular UI toolkit called Jetpack Compose.
I know that lots of you have been waiting for this moment, a moment when Jetpack Compose became stable! Now it’s the right time to be an Android Developer! With a Jetpack Compose building Android Apps is going to be exciting, fun and a lot simpler then before. We are not going to need XML anymore.
Instead we are going to build our UI with a regular Kotlin file, using the full power of Kotlin programming language. Also creating custom UI component has been easier. So you want to build a custom UI component, no problem, just start by adding a simple function annotated with @Composable annotation.
And of course how would this course look like without a real project? Our To-Do application which we are going to develop in this course will have a Single Activity and Zero Fragments. Sounds impossible? Well it isn’t. So better get used to it, because that will greatly simplify the process of developing Android apps.
Now at the beginning of this course I’m going to introduce you with Jetpack Compose in general and with some of the most important concepts as well. You will learn everything about the Lifecycle of a single composable and how Compose Compiler is doing all the hard work for you behind the scenes.
In this course we are going to use some of the most important Android Architecture components like:
– ROOM Database: To save and read the data from a local database, plus we are going to write some custom SQL queries as well.
– Compose Navigation: So we can navigate between our Screen Composables. And At the end of the course you will also learn how to add some beautiful transition animations as well.
– ViewModel: Which will contain all the logic needed to work with our app.
– Preference DataStore: To persist a simple key-value pairs.
– And you’ll learn about a popular dependency injection library called Dagger-Hilt. You will see how to inject a ViewModel with different dependencies without needing to create a ViewModel Factory.
By default our application will support Dark Mode as well, and you will learn how easy it is to have two different themes of your app with a Jetpack Compose. You will also learn how to build your own custom UI components.We will use some of the most popular material components along with a Scaffold, which is an amazing composable function that uses SLOT API, to place all your UI components in the place they belong by the rules of material design documentation.
To-Do app on which we are going to work on will have an animated Splash Screen, as some other components in our app. Also an Animated Swipe to Delete functionality which will allow us to easily remove an item from the list. Along with that we will add a safety feature called UNDO deleted item, which will display a SnackBar whenever we delete an item from the list, so we can get it back by one click. You will learn planty of other things related to the new way of developing Android Apps.
And finally this course will be constantly updated with new videos whenever needed. Whenever we find a bug in our app, then I’m going to record a video about it and we are going to fix it together. Plus you’ll be in contact with me throughout this whole course, and you can always ask me a question related to this course and even suggest some code cleanup for the project if you are skilled enough to find it.
Overall this is going to be quite a journey.
So what are you waiting my friend, let’s start learning!
-
8Create the New Project
Source Code of the Project: https://github.com/stevdza-san/To-Do-Compose
-
9Add Dependencies
-
10Create Model Classes
-
11Introducing with ROOM Database
-
12Setup ROOM Database
-
13Introducing with Dependency Injection
-
14Introducing with Dagger-Hilt Library
-
15Setup Dagger-Hilt
-
16Create ToDoRepository
-
17Create SharedViewModel
-
18Introducing with Navigation in Jetpack Compose
-
19Setup Navigation Component
-
20List Screen - FAB
-
21List Screen - Default List App Bar
-
22List Screen - List App Bar Actions
-
23List Screen - Search App Bar
-
24List Screen - Search App Bar - Part 2
Check out the last section in this course because we are going to modify/update Search App Bar and remove some unnecessary code/fix a bug from it.
-
25Display All Tasks - Design Task Item
-
26Display All Tasks - Observe Database
In the last section of this course we are going to update our project. We will call getAllTasks() function from Shared ViewModel instead, and that way avoid calling this function when the configuration changes.
-
27Display All Tasks - Show Empty Content
-
28Display All Tasks - Create RequestState
-
29Task Screen - New Task App Bar
-
30Task Screen - Existing Task App Bar
-
31Task Screen - Get Selected Task
-
32Task Screen - Priority Drop-Down
-
33Task Screen - Task Content
-
34Task Screen - Display Dynamic Content
-
35CRUD Operations - Limit Title Length
-
36CRUD Operations - Bug Fix & Fields Validation
-
37CRUD Operations - Add Task
We are going to remove toAction() extension function (At the end of the course) which we have created in this video, because we actually don't need it. Instead we can use valueOf() function which we can access on our Action enum class.
-
38CRUD Operations - Display Snack Bar
-
39CRUD Operations - Update Task
-
40CRUD Operations - Delete Single Task
-
41CRUD Operations - Undo Deleted Task
-
42CRUD Operations - Search Database
-
43CRUD Operations - Delete All Tasks
-
44Alert Dialog - Delete Single Task
-
45Alert Dialog - Delete All Tasks
-
46Introducing with DataStore
-
47List Sorting - Create DataStoreRepository
-
48List Sorting - Apply Sorting in a List
-
49Priority Sort Drop-Down & TaskComposable FIX
-
50Swipe to Delete - Implementation
-
51Swipe to Delete - Animate Item Visibility
-
52Splash Screen - Design Splash Screen
-
53Splash Screen - Implement Splash Screen
-
54Splash Screen - Animate Splash Screen
-
55Navigation - Transition Animations