Booking options
£41.99
£41.99
On-Demand course
25 hours 58 minutes
All levels
You will be learning from the basics of a Composable function to how to handle state in Compose and how to build full-fledged Android apps that leverage the full power of Jetpack Compose and Kotlin. This course is tailored for beginners and advanced developers.
Android Jetpack Compose is a new way of building modern Android apps in Android app development. The software development industry is moving away from the imperative approach of building apps-where developers were required to write a lot of boilerplate code, navigate through inconsistent APIs, and hard to maintain code to build simple mobile apps. With Jetpack Compose, building Native UI for the Android platform is more effortless, concise, consistent, and has less code. In this course, you will start with learning about Jetpack Compose and its advantages over the imperative way of building Android apps. You will look at Kotlin programming basics, intermediate and advanced concepts. You will look at core Jetpack Compose concepts: composable functions, compose layout widgets, and modifiers, and understand how Jetpack Compose handles state-recomposition and state hoisting. You will understand how MutableState and Flow work with composable functions; master how to build various Jetpack Compose apps that range from simple to complex (tip calculator, movie app, note app, trivia app, weather forecast app, and so much more); and build a lot of apps while learning Jetpack Compose. By the end of the course, you will have learned everything you need to know about Kotlin and Jetpack Compose to build complex Native UIs and Android apps with Jetpack Compose. All the resource files are added to the GitHub repository at: https://github.com/PacktPublishing/Android-Jetpack-Compose---Build-Android-Native-UI-s-Fast
Learn clean architecture and MVVM patterns with Android Jetpack Compose
Master Jetpack Compose and build modern Android apps
Build different Android apps with Jetpack Compose and Kotlin
Master modern Android development best practices with Jetpack tools and Compose
Leverage Hilt and Dagger and add dependency injection to Jetpack Compose
Integrate the Android ROOM database into a Compose application
This course is ideal for beginner Android developers who are curious about building modern Android apps using Jetpack Compose and Kotlin.
Android developers who want to learn Kotlin and build Android apps with Jetpack Compose, and anyone who wants to learn Java and Android development will also benefit from this course.
Basic programming experience, in general, is helpful but not required. The course covers everything you will need to build Android apps with Kotlin and Jetpack Compose.
Kotlin fundamentals are included in the course so no need for prior knowledge of the same.
This course is highly practical, and the author takes you through all the concepts that you need to get started. It's a comprehensive course, packed with a lot of information.
The course is structured keeping in mind that individuals with no programming skills in Kotlin; will have the opportunity to learn the basics, intermediate, and advanced Kotlin concepts before moving on to Jetpack Compose.
A comprehensive course for developing apps with Jetpack Compose and Kotlin * Build, from scratch, beautiful native UIs with Jetpack Compose - a declarative approach for building Android apps * A highly practical course and comes bundled with code files
https://github.com/PacktPublishing/Android-Jetpack-Compose---Build-Android-Native-UI-s-Fast
Paulo Dichone is a highly skilled developer and teacher with a strong background in Computer Science. With his expertise in Android App Development for mobile and web platforms, Paulo founded Magadistudio, a successful mobile app development company. Passionate about teaching, Paulo is dedicated to helping learners master Android app development. His goal is to empower students with the knowledge and skills needed to create impressive Android applications and experience the freedom of being an Android developer. With his deep understanding of the subject matter and a commitment to student success, Paulo Dichone is a trusted instructor who can guide learners on their journey to becoming proficient Android developers.
1. Introduction to the Course
1. Introduction This video provides an overview of the course. |
2. Course Learning Path This video helps you understand the course learning path. It is highly recommended to see this video before jumping into the course directly. |
2. Windows Machine Setup for Development
1. Installing Android Studio and Setup This video helps you with installing Android Studio and the setup. |
2. Creating a Kotlin Module and Running It This video explains creating a Kotlin module and running it. |
3. Kotlin Playground - Online Code Editor This video demonstrates and talks about Kotlin Playground - online code editor. |
3. Mac Machine Setup for Development
1. Install and Set Up Android Studio This video shows how to install and set up Android Studio. |
2. Create a Kotlin Module in an Android Project This video demonstrates creating a Kotlin module in an Android project. |
3. Kotlin Playground - Online Code Editor This video explains Kotlin Playground - online code editor. |
4. Build Your First Jetpack Compose App
1. App Demo This video provides a demo for an app that you will be creating. |
2. Setting Up BizCard App - Android Compose Surface Layout and Preview This video demonstrates setting up BizCard app - Android Compose surface layout and preview. |
3. Creating a Card and Changing Its Properties with Modifier This video explains creating a card and changing its properties with modifier. |
4. Adding the Profile Image This video explains adding the profile image. |
5. Adding a Column and a Divider This video explains adding a column and a divider. |
6. (Challenge) - Change Divider's Parameters This is a challenge video on changing divider's parameters. |
7. (Challenge Solution) - Divider's Parameters This is a challenge solution video on changing divider's parameters. |
8. Adding the Card Info Section This video explains adding the card info section. |
9. Adding the Portfolio Button This video explains adding the portfolio button. |
10. Create the Content Composable Function This video helps you create the content composable function. |
11. Adding a LazyColumn Layout and the Toggle Functionality This video explains adding a LazyColumn layout and the toggle functionality. |
12. Final Touches to the BizCard App This video helps you with the final touches to the BizCard app. |
13. What's Next This video talks about what you will be learning in the upcoming section. |
5. Kotlin Programming Language Fundamentals - Variable Types
1. Section Introduction This video provides an introduction to the section. |
2. Kotlin var and val Keywords This video explains the Kotlin var and val keywords. |
3. Initializing Variables This video explains how to initialize variables. |
4. Introduction to Variable Types - Int and String This video provides an introduction to variable types - Int and String. |
5. Basic Types in Kotlin This video explains the basic types in Kotlin. |
6. The Long Type This video explains about the long type. |
7. Floating Point Types This video demonstrates floating point types. |
8. Kotlin Operators This video explains about the Kotlin operators. |
9. Section Summary This video is a summary of the section. |
6. Kotlin Fundamentals - Loops and Branching
1. Section Introduction - Loops and Branching This video provides an introduction to the section - loops and branching. |
2. The If Statement and When Expression This video explains about the if statement and when expression. |
3. When Expression - Range This video talks about the when expression - range. |
4. The For Loop This video demonstrates about the for loop. |
7. Kotlin Fundamentals - Functions
1. Section Introduction - Functions This video provides an introduction to the section - functions. |
2. Create a Simple Kotlin Function This video explains how to create a simple Kotlin function. |
3. Functions with Int Parameters This video explains functions with Int parameters. |
4. Adding More Parameters to a Function This video explains adding more parameters to a function. |
5. Default Arguments and Named Arguments This video talks about default arguments and named arguments. |
6. Functions and Return Types This video explains functions and return types. |
7. Returning a Boolean This video talks about returning a Boolean. |
8. Lambda Expressions - an Introduction This video provides an introduction to lambda expressions. |
9. (Challenge Solution) - CatAge - To Lambda Expression This is a challenge solution video on CatAge - to lambda expression. |
10. Using the "it" Lambda Keyword This video explains how to use the "it" lambda keyword. |
11. Lambda Expressions that Return Unit - Void This video explains about lambda expressions that return Unit - Void. |
12. Trailing Lambda This video explains about trailing lambda. |
8. Kotlin Fundamentals - Collections
1. Introduction to Collections This video provides an introduction to collections. |
2. Invoking Methods on Lists This video explains how to invoke methods on lists. |
3. Kotlin Sets and Maps Collections This video talks about Kotlin sets and maps collections. |
4. Initializing Lists This video talks about initializing lists. |
5. Empty Collections This video explains about empty collections. |
6. Collection Filters This video talks about collection filters. |
7. Section Summary - Collections This video provides a section summary on collections. |
9. Kotlin - Intermediate Object-Oriented Programming Concepts
1. Introduction to OOP - Create First Class This video an introduction to OOP (Object-Oriented Programming) - create first class. |
2. Kotlin Classes and the Primary Constructors This video demonstrates about Kotlin classes and primary constructors. |
3. The init Block This video explains the init block. |
4. Adding a class Function with Parameters This video explains adding a class function with parameters. |
5. Inheritance and Override This video explains about inheritance and override. |
6. Inheritance Design Steps This video explains about inheritance design steps. |
7. Introduction to Interface Classes This video provides an introduction to interface classes. |
8. Creating an Interface and Using It This video demonstrates creating an interface and using it. |
9. Extension Functions in Kotlin This video talks about the extension functions in Kotlin. |
10. Remove First and Last Character Extension Function - Challenge Solution This is a challenge solution video that explains how to remove first and last character extension function. |
11. Data Class This video explains about the data class. |
12. Section Summary - Kotlin OOP This video provides a section summary on Kotlin OOP. |
10. Kotlin - Advanced Concepts
1. Introduction to Generics This video provides an introduction to generics. |
2. Using Generics This video demonstrates how to use generics. |
3. Introduction to Enums and State This video provides an introduction to enums and state. |
4. Improving Enums - Sealed Classes This video explains improving enums - sealed classes. |
5. Sealed Classes Creation This video explains about sealed classes creation. |
11. Introduction to Jetpack Compose and Fundamentals
1. Introduction - What's Jetpack and Understanding the Imperative Approach This video provides an introduction to Jetpack and understanding the imperative approach. |
2. Understanding a Compose Project - Basics - Preview and Compose Annotation This video is about understanding a Compose project - basics - preview and compose annotation. |
3. Creating a Simple Composable Function This video explains creating a simple composable function. |
4. Modifier and Composable Functions - What Are They? This video explains modifier and composable functions. You will also look at what they are and their uses. |
5. Creating a Simple Compose App - Create a Circle This video explains creating a simple Compose app - create a circle. |
6. Adding the Circle to the Main Surface This video explains adding the circle to the main surface. |
7. Finishing Up the User Interface This video demonstrates finishing up the user interface. |
8. Introduction to MutableState - Incrementing a Counter This video provides an introduction to MutableState - incrementing a counter. |
9. (Imperative Versus Declarative Approach) - Thinking in Compose This video explains about the imperative versus declarative approach - thinking in Compose. |
10. Hoisting the State of Our Money Counter App This video explains hoisting the state of our money counter app. |
11. Section Summary - Jetpack Compose and Paradigm Shift This video provides a section summary - Jetpack Compose and paradigm shift. |
12. Android Real Device Setup
1. How to Set Up an Android Device for Development This video demonstrates how to set up an Android device for development. |
13. Build a Tip Calculator App
1. JetTip App Demo This video provides a JetTip app demo that you will be creating. |
2. The Structure of JetTip and Setting Up the Container Function This video demonstrates the structure of JetTip and setting up the container function. |
3. The TopHeader Function - Finish Up This video explains the TopHeader function - finish up. |
4. Adding the Rounded Border for the Main Content This video explains adding the rounded border for the main content. |
5. Input Fields - Creating a Customizable InputField Composable Function This video explains about input fields - creating a customizable InputField composable function. |
6. Showing the Input Field This video helps in showing the input field. |
7. Refactoring the InputField Compose Function This video explains about refactoring the InputField Compose function. |
8. Creating Round Icon Buttons This video demonstrates creating round icon buttons. |
9. Fixing the Input Field Width This video explains fixing the input field width. |
10. Adding the TipRow and Slider This video explains adding the TipRow and Slider. |
11. Finishing Up the Slider Composable This video explains about finishing up the Slider Composable. |
12. Incrementing and Decrementing Functions This video explains about incrementing and decrementing functions. |
13. Showing the Tip Percentage on Slide Value Change This video demonstrates showing the tip percentage on slide value change. |
14. Calculating the Tip Amount This video explains calculating the tip amount. |
15. Total Per Person Calculations This video explains about total per person calculations. |
16. State Hoisting - Code Refactor and Section Summary This video focuses on state hoisting - code refactor and section summary. |
14. Build a Movie App - Introduction to Scaffold and LazyColumn
1. Section Introduction This video provides an introduction to the section. |
2. Understanding the Scaffold Composable This video helps in understanding the Scaffold Composable. |
3. Using LazyColumn and Showing Movies This video explores using LazyColumn and showing movies. |
4. Make Each Row Clickable This video demonstrates how to make each row clickable. |
5. Introduction to Navigation Component This video provides an introduction to the navigation component. |
6. Setting Up the Navigation Structure This video explains setting up the navigation structure. |
7. Setting Up the Navigation Structure - Home Screen and Details Screen This video explains setting up the navigation structure - home screen and details screen. |
8. Navigation and Passing Arguments This video demonstrates navigation and passing arguments. |
9. Navigating Back on Back button Clicked This video explains navigating back on back button clicked. |
10. Adding the TopAppBar and Back Navigation This video explains adding the TopAppBar and back navigation. |
11. Navigation Component Summary This video is a summary of the navigation component. |
15. Movie App - Improvements
1. Adding Movie Data Class and Dummy Data This video demonstrates adding movie data class and dummy data. |
2. Using Coil to Add Images This video demonstrates using Coil to add images. |
3. Adding Expand Capability on the Card to Show More Information This video explains adding expand capability on the card to show more information. |
4. Adding More Movie Information to the Row This video explains adding more movie information to the row. |
5. Finishing Up the Details Screen This video explains finishing up the details screen. |
6. Section Summary This video provides a section summary. |
16. Introduction to ViewModel - Build a Note App
1. Note App Demo This video provides a demo of the note app that you will be creating. |
2. Note App - Project Setup and Creating a TextField This video demonstrates the note app - project setup and creating a TextField. |
3. Adding TextField and a Button This video explains adding TextField and a button. |
4. Adding a DataSource Class - Dummy Data This video explains adding a DataSource class - dummy data. |
5. Creating a Note Row and Showing Dummy Notes This video explains creating a note row and showing dummy notes. |
6. Adding and Removing Notes - Showing Them on Screen This video explains adding and removing notes - showing them on screen. |
7. Managing State and Data in Compose - Introduction to ViewModel This video explains about managing state and data in Compose - introduction to ViewModel. |
8. Creating a ViewModel and Implementing It This video demonstrates creating a ViewModel and implementing it. |
17. Note App Improvements - ROOM and Dependency Injection - Hilt
1. What We Will Do This video demonstrates what you will be working on in this section going forward. |
2. Understanding Android ROOM and Dependency Injection (DI): Hilt and Dagger This video helps in understanding Android ROOM and Dependency Injection (DI): Hilt and Dagger. |
3. Understanding DI (Dependency Injection) and Its Advantages This video helps in understanding DI (Dependency Injection) and its advantages. |
4. Manual DI Versus Hilt This video explains manual DI versus Hilt. |
5. Set Up Hilt Dependencies in Gradle This video explains setting up Hilt dependencies in Gradle. |
6. Setting Up App Hilt AppModule and the NoteApplication Component This video explains setting up app Hilt AppModule and the NoteApplication component. |
7. The Android ROOM Database Architecture This video explains about the Android ROOM database architecture. |
8. Adding ROOM and Coroutine Dependencies to Project This video demonstrates adding ROOM and Coroutine dependencies to the project. |
9. Creating a Note Entity This video explains creating a note entity. |
10. Creating a RoomDatabase Class and DAO This video explains creating a RoomDatabase class and DAO. |
11. Understanding Coroutines and Suspend Functions This video explains understanding Coroutines and suspend functions. |
12. Adding Flow State to getNotes Functions This video explains adding flow state to getNotes functions. |
13. Adding Providers in AppModule Class This video demonstrates adding providers to the AppModule class. |
14. Creating the Repository Class This video explains creating the repository class. |
15. Updating the NoteViewModel Class This video explains updating the NoteViewModel class. |
16. Testing the NoteApp with the ROOM Database This video explains testing the NoteApp with the ROOM database. |
17. Adding TypeConverters and Getting the App to Work This video explains adding TypeConverters and getting the app to work. |
18. Section Summary This video talks about the section summary. |
18. JetTrivia App - Parsing JSON: Retrofit and Clean Architecture
1. JetTrivia App Demo This video provides an JetTrivia app demo that you will be creating. |
2. Setting Up the Project - Adding All Dependencies This video demonstrates setting up the Project - adding all dependencies. |
3. The Trivia JSON Payload This video explains about the Trivia JSON Payload. |
4. Set Up the App Structure - Adding Retrofit Dependencies This video explains setting up the app structure - adding retrofit dependencies. |
5. Adding Hilt Classes and Retrofit This video explains adding Hilt classes and retrofit. |
6. Creating a Wrapper Class for Emitting Metadata This video explains creating a wrapper class for emitting metadata. |
7. Finishing Up the Repository Class This video explains about finishing up the repository class. |
8. Creating the ViewModel Class This video demonstrates creating the ViewModel class. |
9. Testing Our ViewModel and Logging Trivia Questions This video explains testing our ViewModel and logging trivia questions. |
10. Refactoring Code and Showing the Progress Bar This video explains about refactoring code and showing the progress bar. |
11. Creating the UI - Question Tracker Composable This video explains creating the UI - question tracker composable. |
12. Creating the UI - Dotted Line Composable This video explains about creating the UI - dotted line composable. |
13. Creating the UI - Radio Button Row This video demonstrates creating the UI - radio button row. |
14. Creating UI - Radio Button Row and Checking Answers This video explains creating the UI - radio button row and checking answers. |
15. Finishing Up the Logic - App Working This video explains about finishing up the logic - app working. |
16. Create a Score Meter This video explains how to create a score meter. |
17. Finalizing the Score Meter This video explains finalizing the score meter. |
18. Getting Total Question Count This video explains getting the total question count. |
19. Section Summary This video provides a section summary. |
19. Build a Weather Forecast App
1. Weather Forecast App Demo This video provides a demo to the weather forecast app that you will be creating. |
2. Setting Up Project and Adding All Gradle Dependencies This video demonstrates setting up the project and adding all Gradle dependencies. |
3. OpenWeather - Getting the API Key This video explains OpenWeather - getting the API key. |
4. Setting Up Packages and DI Structures This video explains setting up packages and DI structures. |
5. Setting Up App Navigation - Splash Screen - Part 1 This video explains setting up app navigation - splash screen - part 1. |
6. Showing the Splash Screen - Navigation Setup Continuation This video explains showing the Splash Screen - navigation setup continuation. |
7. Putting Together the Splash Screen UI This video talks about putting together the Splash Screen UI. |
8. Splash Screen Animation and Navigating to Main Screen This video demonstrates about Splash Screen animation and navigating to the main screen. |
9. What We Have Done So Far This video focuses on the things we have done so far. |
10. Setting Up Model Classes This video explains setting up model classes. |
11. Setting Up the Weather API Interface for Retrofit - HTTP Library This video demonstrates setting up the weather API interface for Retrofit - HTTP library. |
12. Creating the Main ViewModel and the Repository Classes This video explains creating the main ViewModel and the repository classes. |
13. Setting Up the ViewModel and Retrieving JSON Payload This video demonstrates setting up the ViewModel and retrieving JSON Payload. |
14. Setting Up the AppBar - Part 1 This video explains setting up the AppBar - part 1. |
15. Finalizing the WeatherAppBar This video explains finalizing the WeatherAppBar. |
16. Creating the Main Screen Widgets - Top Circle This video explains creating the main screen widgets - top circle. |
17. Creating the Main Screen - Finalizing the Top Circle and Data This video explains creating the main screen - finalizing the top circle and data. |
18. Adding Humidity, Wind, and Pressure Row This video explains adding humidity, wind, and pressure row. |
19. Creating the Sunset and Sunrise Row This video explains creating the sunset and sunrise row. |
20. Weather Detail Row This video demonstrates weather detail row. |
21. Finalizing the Weather Detail Row and the Main Screen This video demonstrates finalizing the weather detail row and the main screen. |
22. Refactoring the Code This video demonstrates refactoring the code. |
23. Break - What We have Done So far This video goes through what we have done so far. |
24. Setting Up the Search Field in Search Screen This video explains setting up the search field in search screen. |
25. Passing the City Name Back to Main Screen and Showing the Forecast Data This video explains passing the city name back to main screen and showing the forecast data. |
26. Setting Up the Dialog and the Dropdown Menu This video explains about setting up the dialog and the dropdown menu. |
27. Navigating to About, Favorites, and Settings and Creating the About Screen This video demonstrates navigating to about, favorites, and settings and creating the about screen. |
28. Introduction to ROOM and Favorite Screen Structure This video provides an introduction to ROOM and favorite screen structure. |
29. Creating a Favorite Entity and DAO Class This video explains creating a favorite entity and DAO class. |
30. Setting Up Room Database and Repository This video explains setting up room database and repository. |
31. Creating the FavoriteViewModel Class This video explains creating the FavoriteViewModel class. |
32. Adding the Favorite Icon and Saving Favorite Cities to Database This video demonstrates adding the favorite icon and saving favorite cities to database. |
33. Showing All Favorite Cities This video explores showing all favorite cities. |
34. Showing a Toast Message When a City Is Saved This video explains how to show a toast message when a city is saved. |
35. Break - What We have Done So Far - Next Up: The Settings Screen This video talks about what we have done so far and next up the settings screen. |
36. Creating the Settings View Model This video explains creating the settings view model. |
37. Putting Together the Settings Screen This video explains about putting together the settings screen. |
38. Saving Measurement Units to the Database This video explains about saving measurement units to the database. |
39. Adding a Default Unit This video explains adding a default unit. |
40. Showing Metric and Imperial Units in Main Screen - Final Touches This video explains showing metric and imperial units in main screen - final touches. |
41. Weather Forecast App Summary This is a summary video on the weather forecast app. |