Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udacity

Modern Android Development

via Udacity

Overview

This course equips learners with essential skills to create powerful Android applications using Jetpack Compose. Starting with an introduction, the course dives into the fundamentals of Jetpack Compose, including building composables and mastering the layout and state management systems.

Syllabus

  • Course Introduction
    • Discover the shift to declarative UI with Jetpack Compose, course goals, required skills, environment setup, and key terminology for modern Android development.
  • Jetpack Compose Fundamentals
    • Learn Jetpack Compose by building UIs with @Composable functions, understanding state, recomposition, and the Composition, Layout, Drawing phases for efficient Android apps.
  • Building Your First Composables
    • Learn to build composable UI in Jetpack Compose by creating reusable functions, using declarative layouts, and applying Material Design components for modern Android apps.
  • Compose Layout System
    • Master Jetpack Compose's core layouts—Column, Row, and Box—to build responsive, reusable, and complex Android UIs using modifiers for custom alignment, spacing, and styling.
  • State Management in Compose
    • Master state management in Jetpack Compose: use remember and mutableStateOf, apply state hoisting, and create clean, reusable stateless UI components that react to state changes.
  • Material Design 3 in Compose
    • Explore Material Design 3 in Jetpack Compose, using MaterialTheme for unified color, typography, and shapes, dynamic color, and tonal elevation for modern, personalized UIs.
  • Implementing Material Design 3 in Compose
    • Learn to apply Material Design 3 in Jetpack Compose apps, using dynamic theming, consistent layouts, and accessible, modern UI components for native Android experiences.
  • Compose Navigation
    • Learn to implement robust, type-safe navigation in Jetpack Compose using NavController, NavHost, and bottom navigation for seamless multi-screen Android app experiences.
  • Advanced Compose Patterns
    • Master advanced Jetpack Compose: custom layouts, side effects (LaunchedEffect, DisposableEffect), lifecycle management, state handling, and cleanup for performant, robust UIs.
  • Integrating Compose with ViewModel
    • Learn to connect Jetpack Compose UIs to ViewModel with StateFlow, using unidirectional data flow and MVVM for testable, resilient Android app architecture.
  • Lazy Layouts in Compose
    • Learn to build efficient, responsive lists and grids in Jetpack Compose using Lazy layouts like LazyColumn and LazyGrid for optimized, scalable UI with advanced features like sticky headers.
  • Background Work Concepts
    • Understand background work categories in Android and learn how to use WorkManager with constraints for reliable, battery-friendly deferrable task execution.
  • Implementing WorkManager
    • Learn how to use Android's WorkManager to schedule, run, and observe reliable background tasks, ensuring completion even if the app is closed or device restarts.
  • Advanced Background Work
    • Master advanced Android background processing with WorkManager: chain tasks, pass data between workers, handle constraints, and build robust workflows for reliable app operations.
  • Notifications Overview
    • Understand Android notifications: their anatomy, action buttons, notification channels, importance levels, and how to design valuable, user-friendly alerts.
  • Creating Notifications
    • Learn to create and manage Android notifications: channels, permissions, intents, and visual styles to engage users safely and effectively in modern apps.
  • Dependency Injection Principles
    • Learn Dependency Injection principles to decouple Android classes, improve modularity, testability, and scalability, and manage dependencies effectively using Hilt.
  • Hilt Setup and Configuration
    • Learn how to set up and configure Hilt for dependency injection in Android apps, enabling scalable, testable code with automated dependency management using annotations.
  • Advanced Hilt Patterns
    • Master advanced Hilt patterns: use modules, @Binds, @Provides, and qualifiers to resolve dependency injection challenges in scalable Android apps.
  • Android Testing Strategy
    • Learn Android testing strategy: use a Testing Pyramid with many unit tests, some integration tests, and few UI tests to ensure robust, maintainable, and scalable apps.
  • Unit Testing with JUnit
    • Learn to write fast, reliable unit tests for ViewModels using JUnit in Android. Master setup with @Before, the AAA pattern, and boundary testing to ensure robust, maintainable code.
  • Mocking and Test Doubles
    • Learn to isolate unit tests using Fakes and Mocks. Use MockK to simulate APIs and databases, stub behaviors, and verify logic, enabling fast, reliable, and maintainable testing.
  • UI Testing
    • Learn to write automated UI tests for Jetpack Compose apps using test tags, JUnit rules, user interaction emulation, and smart async waits for robust user experience verification.
  • Advanced Testing Techniques
    • Master advanced Android testing by validating coroutines, Room databases, and Kotlin Flows using Turbine for reliable asynchronous and reactive app behaviors.
  • Project: Zenflow
    • In this project, you will build a modern Compose application with background work, dependency injection, and comprehensive testing.

Taught by

Kidus Elias

Reviews

Start your review of Modern Android Development

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.