Modern Android UI Design Online Course
Modern Android UI Design Online Course
This online course introduces Android Jetpack Compose, a modern and efficient way to build Android apps. Unlike the traditional imperative approach that required writing extensive boilerplate code and navigating inconsistent APIs, Jetpack Compose allows for concise, consistent, and easy-to-maintain code. You’ll begin with the basics of Jetpack Compose, including composable functions, layout widgets, and modifiers, and progress to understanding how state management (recomposition and state hoisting) works in Compose. The course also covers Kotlin programming fundamentals and its advanced concepts. Through hands-on projects like a tip calculator, movie app, note app, trivia app, and weather forecast app, you’ll gain practical experience in building both simple and complex Android apps. By the end of the course, you'll be equipped with the knowledge to create sophisticated Native UIs and Android apps using Kotlin and Jetpack Compose.
Key Benefits
- This course offers a thorough, in-depth guide to app development using Jetpack Compose and Kotlin.
- You will learn how to design and build elegant, native user interfaces from the ground up using Jetpack Compose, a modern declarative framework for Android app development.
- The course is highly practical, featuring hands-on examples and providing access to code files, ensuring you can apply what you learn in real-world projects.
Target Audience
This course is perfect for beginner Android developers interested in learning how to build modern Android apps using Jetpack Compose and Kotlin. It is also well-suited for Android developers who wish to expand their skills in Kotlin and app development with Jetpack Compose, as well as those interested in learning Java and Android development. While prior programming experience can be beneficial, it is not a requirement. The course comprehensively covers all the essential concepts needed to build Android apps with Kotlin and Jetpack Compose, including the fundamentals of Kotlin, so no prior knowledge of the language is necessary.
Learning Objectives
- Gain a deep understanding of clean architecture and the MVVM design pattern in the context of Android Jetpack Compose.
- Master Jetpack Compose and become proficient in building modern, dynamic Android apps with this declarative UI toolkit.
- Develop a variety of Android applications using Jetpack Compose and Kotlin, while adhering to modern Android development best practices with the powerful Jetpack tools and Compose.
- Learn to integrate Hilt and Dagger for dependency injection in your Compose apps, and seamlessly incorporate the Android ROOM database into your Compose-based applications for efficient local data management.
Course Topics
The Modern Android UI Design Online Course covers the following topics -
Domain 1 - Windows Machine Setup for Development
○ Installing and setting up Android Studio
○ Creating and running a Kotlin module
○ Using Kotlin Playground for online code editing
Domain 2 - Mac Machine Setup for Development
○ Installing and configuring Android Studio
○ Creating a Kotlin module within an Android project
○ Using Kotlin Playground for online code editing
Domain 3 - Build Your First Jetpack Compose App
○ Demo of the app
○ Setting up the BizCard app with Android Compose surface layout and preview
○ Creating a card and modifying its properties with a modifier
○ Adding profile images, columns, and dividers
○ Challenge: Adjusting divider parameters (solution included)
○ Adding the card info section and portfolio button
○ Creating a content composable function
○ Implementing a LazyColumn layout and toggle functionality
○ Finalizing the BizCard app
Domain 4 - Kotlin Programming Language Fundamentals - Variable Types
○ Introduction to Kotlin’s var and val keywords
○ Initializing variables and understanding basic types such as Int and String
○ Exploring the long type and floating-point types
○ Kotlin operators overview
Domain 5 - Kotlin Fundamentals - Loops and Branching
○ Overview of loops and branching in Kotlin
○ Using the if statement and when expression, including range functionality
○ Implementing the for loop
Domain 6 - Kotlin Fundamentals - Functions
○ Introduction to creating functions in Kotlin
○ Working with functions that accept parameters and return values
○ Exploring default and named arguments
○ Introduction to lambda expressions and their usage
○ Challenges and solutions related to lambda expressions
Domain 7 - Kotlin Fundamentals - Collections
○ Introduction to collections in Kotlin
○ Using methods on lists and working with sets and maps
○ Initializing and filtering collections
○ Section summary on collections
Domain 8 - Kotlin - Intermediate Object-Oriented Programming Concepts
○ Introduction to object-oriented programming (OOP) and creating your first class
○ Understanding primary constructors, init block, and inheritance
○ Working with interface classes and extension functions
○ Creating data classes and understanding their usage
Domain 9 - Kotlin - Advanced Concepts
○ Introduction to generics and their usage
○ Understanding enums and state management
○ Improving enums with sealed classes and their creation
Domain 10 - Introduction to Jetpack Compose and Fundamentals
○ Overview of Jetpack Compose and understanding the imperative approach
○ Basics of Compose project: Preview and Compose annotations
○ Creating composable functions and using modifiers
○ Building simple UI components such as a circle and incrementing a counter
○ State hoisting in Compose applications
Domain 11 - Android Real Device Setup
○ Steps to set up an Android device for development
Domain 12 - Build a Tip Calculator App
○ Demo of the JetTip app
○ Setting up the container function and top header
○ Creating customizable input fields and round icon buttons
○ Refactoring the input field and adding a slider
○ Implementing state hoisting and code refactor
Domain 13 - Build a Movie App - Introduction to Scaffold and LazyColumn
○ Overview of Scaffold composable and LazyColumn for displaying movies
○ Setting up navigation structure with Home and Details screens
○ Implementing back navigation and top app bar
Domain 14 - Movie App - Improvements
○ Adding a movie data class and displaying images using Coil
○ Expanding card functionality and finishing the details screen
Domain 15 - Introduction to ViewModel - Build a Note App
○ Demo of the Note app
○ Setting up the app with text fields and buttons
○ Managing state and data in Compose using ViewModel
Domain 16 - Note App Improvements - ROOM and Dependency Injection - Hilt
○ Overview of Android ROOM and Hilt for dependency injection
○ Setting up Hilt dependencies and ROOM database architecture
○ Implementing coroutines, flow state, and testing the Note app with ROOM
Domain 17 - JetTrivia App - Parsing JSON: Retrofit and Clean Architecture
○ Setting up the JetTrivia app with Retrofit and clean architecture principles
○ Parsing JSON and integrating Hilt with Retrofit for data fetching
○ Building the app UI with composable functions and handling the progress bar
Domain 18 - Build a Weather Forecast App
○ Demo of the weather forecast app
○ Setting up the project, API key, and navigation structure
○ Displaying weather data, integrating a splash screen, and refining the UI
○ Implementing ROOM for saving favorite cities and adding settings functionality
○ Finalizing the app with metric and imperial units adjustments