AND-201

Android Intermediate - Data & Navigation course logo
Formats: Asynchronous
Blended
Online
Onsite
Part-time
Level: Intermediate
Prerequisites:
Recommended Knowledge
Solid understanding of Kotlin basics (variables, control flow, functions, basic OOP).
Familiarity with Android Studio and building simple UIs with Jetpack Compose.
Knowledge of fundamental Android app components like `Activities`.

Formats: We offer our training content in a flexible format to suit your needs. Contact Us if you wish to know if we can accommodate your unique requirements.

Level: We are happy to customize course content to suit your skill level and learning goals. Contact us for a customized learning path.

Intermediate Android Development (Data & Navigation) (AND-201)

Ready to take your Android development skills to the next level? Our AND201: Intermediate Android Development (Data & Navigation) course is designed for those who've mastered the fundamentals and are eager to build more robust, multi-screen applications. You'll dive into essential concepts like effective navigation between screens, reliable data storage using Room, and integrating with external web APIs to make your apps dynamic and connected. This hands-on course will empower you to create more complex and engaging user experiences, preparing you for professional Android app development.

Target Audience

  • Developers who have completed a "Fundamentals of Android Development" course or have equivalent basic knowledge of Kotlin and Jetpack Compose.
  • Programmers familiar with basic app structure looking to learn data handling and multi-screen navigation.
  • Anyone aspiring to build more sophisticated Android applications that interact with data sources.

Prerequisites

  • Solid understanding of Kotlin basics (variables, control flow, functions, basic OOP).
  • Familiarity with Android Studio and building simple UIs with Jetpack Compose.
  • Knowledge of fundamental Android app components like `Activities`.

Course Benefits

By the end of this course, participants will be able to:

  • Implement complex navigation patterns within Android applications using Jetpack Navigation.
  • Persist structured data locally using the Room database.
  • Interact with remote web services and APIs to fetch and display dynamic content.
  • Handle asynchronous operations efficiently with Kotlin Coroutines.
  • Design apps with better data management and state handling.
  • Build multi-screen applications with robust data capabilities.

Course Outline

Module 1: Advanced Kotlin & Multi-Screen Navigation

  • Advanced Kotlin Features: Null safety, extension functions, data classes.
  • Object-Oriented Programming (OOP) in Kotlin: Inheritance, interfaces, abstract classes.
  • Introduction to Jetpack Navigation Component: Concepts and benefits.
  • Implementing basic navigation: Navigating between `Composables` and `Fragments`.
  • Passing data between destinations safely using Navigation arguments.
  • Hands-on: Refactor a single-screen app to a multi-screen app using Jetpack Navigation, passing simple data between screens.

Module 2: Data Persistence with Room Database

  • Introduction to Data Persistence on Android.
  • Exploring SQLite and the need for Room.
  • Setting up Room: Entities, DAOs (Data Access Objects), and the Database class.
  • Performing CRUD operations (Create, Read, Update, Delete) with Room.
  • Integrating Room with `LiveData` or `Flow` for reactive UI updates.
  • Hands-on: Build a "To-Do List" app that stores tasks locally using the Room database, displaying and managing them in the UI.

Module 3: Network Communication & APIs

  • Understanding Web Services and APIs (RESTful concepts).
  • Introduction to Retrofit: A type-safe HTTP client for Android.
  • Making network requests: GET, POST.
  • Handling JSON responses with `Gson` or `Moshi` converters.
  • Error handling for network calls and displaying user-friendly messages.
  • Hands-on: Create a simple app that fetches a list of items (e.g., movies, books, products) from a public API and displays them.

Module  4: Asynchronous Programming with Coroutines & Advanced Data Handling

  • Introduction to Kotlin Coroutines: Simplifying asynchronous code.
  • `suspend` functions and `launch`/`async` builders.
  • Handling Coroutine exceptions and cancellation.
  • Integrating Coroutines with Room and Retrofit for background operations.
  • Repository Pattern for data management (combining local and remote data sources).
  • Hands-on Capstone Project: Enhance the API-fetching app from Day 3 to include local caching using Room, ensuring data is available offline and updated when online. Implement proper error handling and loading states.

Career Outcomes

After completing this course, participants will:

  • Be proficient in creating multi-screen Android applications with complex navigation.
  • Expertly manage and persist application data using Room and network APIs.
  • Understand and implement asynchronous programming with Kotlin Coroutines for responsive apps.
  • Be well-prepared to tackle advanced Android architectural patterns and optimize app performance.
  • Have a portfolio-ready project demonstrating intermediate Android development skills.

Ready to build dynamic Android apps with seamless navigation and robust data handling? Your journey to becoming an expert Android developer continues here!