
Set up a Jetpack Compose theme by configuring light and dark color schemes, typography, and color files. Import Google fonts (Ubuntu) and enable dynamic colors in the material theme.
Design a sign in screen in Jetpack Compose using a column layout to place the logo, text, and Google sign in and anonymous sign in buttons with a loading indicator.
Explore how adaptive layouts adjust the UI across phones, tablets, and foldables using the window size class library and its compact, medium, and expanded width classes.
Design a dashboard screen with Jetpack Compose lazy vertical grid and adaptive columns, creating item cards that show body parts, values, icons, padding, spacing, and a floating action button.
Learn how state drives a Jetpack Compose UI by using mutable state, remember, and rememberSaveable to preserve values across configuration changes and trigger automatic recomposition.
Design and implement a profile bottom sheet in Jetpack Compose using Material 3, with a drag handle, header, profile content, and sign-out dialog.
Designs the add item screen by cloning the dashboard, featuring a top app bar with back/add icons, a grid of item cards, and an add item dialog.
Design a details screen with a top app bar, delete dialog, and a bottom sheet to select a measuring unit, implemented in a column layout.
Create a reusable time range button, arrange three time ranges in a row from an enum with labels, and update the selected range with bold text and surface styling.
Extract dates from data, convert them to graph-friendly strings via a local date extension, then position date labels and data point circles on a line graph using 80/10 percent layout.
Create and animate a smooth line graph by drawing a path through data points, applying cubic smoothing, adding a vertical gradient fill, and revealing the chart on the details screen.
Design a value input bar on the details screen with a text field and trailing done button, featuring number keyboard, real-time validation, and error handling.
Explore adding a date picker to the details screen that opens from a calendar icon, initializes to the current date, displays the chosen date, and disables future dates.
Explore adaptive layout for a details screen using width classes, two equal parts, a top app bar, and a bottom sheet with a lazy column.
Define and implement navigation in android compose, creating a navigation graph, a nav controller, and start destination, to move and pass data between dashboard, details, and add item screens.
Use scaffold to structure Android app UI with top bar, fab, and snackbar. Pass scaffold content padding to screens to prevent overlap and manage per-screen top bars.
Implement an Android splash screen using the Splash Screen API, set the app logo as the icon, and support light and dark themes, with Gradle setup and installSplashScreen in onCreate.
Add and customize the app icon for your Android app by replacing launcher icons in mipmap, updating drawable assets, and adjusting the foreground and background colors.
Learn dependency injection in an Android app by wiring sign-in flow from the UI to the view model and auth repository with Dagger Hilt, including singleton provision.
Explore Firebase, a Google platform that helps you build, manage, and grow apps with authentication and Cloud Firestore for scalable, secure data across Android, iOS, and web.
Configure a Firebase project and Google services for an Android app to enable anonymous sign-in. Implement sign-in with Firebase Auth using Kotlin coroutines and Dagger Hilt.
Implement a snackbar in a compose app by configuring a snackbar host state, propagating it through screens, and sending UI events to display messages such as sign in successfully.
Implement sign-in with Google's credential manager, which shows a device account picker and handles authentication; then sign in with Firebase using the user's email, name, and profile picture.
Implement google sign-in using a dialog box, create and manage google auth credentials (id token and nonce), and wire through an auth repository to firebase authentication.
Compare sql relational databases with nosql systems, and learn how Firestore stores data in documents within collections, with rules like collections containing documents only.
Configure a Firestore database in Firebase, add the Firestore dependency, and implement adding new signed-in users to the users collection via Google sign-in with their uid, name, and email.
Implement get signed in user as a Firestore flow, map snapshots to user DTO and user, and feed it into the dashboard viewModel, handling anonymous sign-in with Google and sign-out.
Connect an anonymous Firebase user to a Google account by implementing anonymous sign-in, syncing user data to Firestore, and wiring credentials to convert to Google sign-in.
Fetch body parts from Firestore using a flow, map DTOs to body parts, filter active items for the dashboard, and supply the list to the add item screen.
Add new body part functionality to the add item screen. Manage state with events and view model, handle text input, and enable upsert and dialog flows with Firestore.
Fetch a particular body part by id from the Firestore collection, map the snapshot to a body part via the mapper, and expose it in the details view model state.
Manage delete and update operations for body parts by wiring view model events to update units, delete by id in firestore, show a snackbar, and navigate back.
Get body part values for details screen by querying database for a body part ID, ordering by date descending, updating chart for last 7 days, 30 days, or all time.
Learn to delete body part values by implementing repository and view model logic, update the database, and add a snackbar undo to restore deleted items.
Youtube Channel Link: www.youtube.com/@kotlang
Hi, and welcome, everyone! In this course, we’ll build the MeasureMate Android app using some of the most powerful tools available today: Jetpack Compose, Firebase Authentication, and Firebase Firestore. Whether you’re an aspiring Android developer or looking to update your skills, this course is designed to help you create a robust, scalable app."
MeasureMate will feature four key screens: Sign in Screen, Dashboard Screen, Details Screen, Add Item Screen.
Our app supports dark mode, and we’ll also add an app icon and splash screen for a polished look.
We'll use a range of powerful libraries and frameworks to build our app. Here’s what you’ll learn:"
Jetpack Compose: To build the User Interface.
Material 3: To design a beautiful and consistent UI.
Firebase Authentication: To securely manage user sign-ins, including Google Sign-In.
Firebase Firestore: To store, sync, and query data in real-time.
Splash Screen: To create a captivating splash screen for our app.
Dagger Hilt: To manage dependency injection for cleaner, modular code.
Compose Navigation: To navigate between screens seamlessly.
Coil: To load and display images effortlessly.
Throughout the course, I’ll also share Android best practices to ensure our app is not only functional but also maintainable and scalable. By the end, you'll have the skills to take your Android development to the next level."
So, if you’re ready to master Jetpack Compose, Firebase, and modern Android development, let’s get started. I’m looking forward to seeing you in the course!