Skip to content

Udemy course practice project on Complete Kotlin Coroutines development by Catalin Stefan

Notifications You must be signed in to change notification settings

kaushiknsanji/Complete_Coroutines-Catalin_Stefan

Repository files navigation

Complete Kotlin Coroutines - Catalin Stefan

My Solution repository for the course on Kotlin Coroutines taught by Catalin Stefan.

What one will learn

  • Theory and Fundamentals of Coroutines
    • Core components
      • Scope
      • Context
      • Suspending functions
      • Jobs
      • Dispatchers
      • Coroutine Builders
      • Switching context
      • Exception handling
    • Asynchronous Flow
      • Flow Builders
      • Flow properties
      • Flow Operators
      • Exception handling
    • Channels
      • Channel Producer
      • Channel Pipelines
      • Fan-out Principle (Single Channel to multiple Coroutines)
      • Fan-in Principle (Multiple Coroutines to Single Channel)
      • Buffered Channels
      • Ticker Channels
    • Concurrency and Shared State
      • Concurrency and Synchronization approaches
        • Atomic Variables
        • Thread confinement
        • Mutual exclusion locks
  • Coroutines and Coroutines Flow with Retrofit
  • Coroutines with Room

Getting Started

Android Studio 3.6+

Prerequisite

  • Android development knowledge with Lifecycle components like ViewModels and LiveData
  • Kotlin
  • Retrofit
  • Room database
  • Navigation component
  • MVVM architecture

Branches and Projects

  • master
    • This is the main/default branch that contains the following practice projects with Coroutines
      • ImageProcessingCoroutines
        • This project shows how to download an Image from a URL and then apply a "Black & White" filter on the image, all in the background using Coroutines.
      • CoroutinesRetrofit
        • This project shows how to download a list of Country information from a URL/endpoint in the background via a Coroutine, and then display it on a RecyclerView.
      • CoroutinesRoom
        • This project implements the First Time User Experience using Room as its backend to onboard and authenticate users.
        • Onboarding and Authentication of Users is done by communicating with the Room database in the background via a Coroutine.
      • CoroutinesFlowRetrofit
        • This project shows how to download a list of News items from a URL/endpoint in the background via Coroutine Flows, and then emit each News item with a delay in-between, in order to simulate a News Ticker.
        • The above Flow of News items is converted into a LiveData to show the result in a RecyclerView when the registered observer gets the update.
  • idea_practice
    • This branch contains CoroutineConcepts project with easy to understand codes to establish each of the Coroutines concepts.
    • This is a separate IntelliJ IDEA project, hence it deserves a separate branch.

Udemy Certificate

Udemy Certificate

About

Udemy course practice project on Complete Kotlin Coroutines development by Catalin Stefan

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages