Giter Site home page Giter Site logo

amitshekhariitbhu / learn-kotlin-coroutines Goto Github PK

View Code? Open in Web Editor NEW
276.0 4.0 41.0 246 KB

Learn Kotlin Coroutines by real examples for Android

Home Page: https://amitshekhar.me

License: Apache License 2.0

Kotlin 100.00%
kotlin-coroutines coroutines kotlin kotlin-android

learn-kotlin-coroutines's Introduction

Learn Kotlin Coroutines by real examples for Android

About this project:

  • This project is for someone who wants to get started with Kotlin Coroutines.
  • I have tried to add the examples we implement in our Android project frequently.

About me

Hi, I am Amit Shekhar, I have mentored many developers, and their efforts landed them high-paying tech jobs, helped many tech companies in solving their unique problems, and created many open-source libraries being used by top companies. I am passionate about sharing knowledge through open-source, blogs, and videos.

You can connect with me on:

Steps to learn Kotlin Coroutines from this project

You will learn the following from this Learn Kotlin Coroutines project:

  • Step by step guide on how to implement the Kotlin Coroutines in Android.
  • Doing simple task in background using Kotlin Coroutines.
  • Doing tasks in series using Kotlin Coroutines.
  • Doing tasks in parallel using Kotlin Coroutines.
  • Making two network calls in parallel using Kotlin Coroutines.
  • What are scopes in Kotlin Coroutines?
  • Canceling background task using Kotlin Coroutines.
  • Exception handling in Kotlin Coroutines.
  • Using Kotlin Coroutines with Retrofit. Blog: Retrofit with Kotlin Coroutines
  • Using Kotlin Coroutines with Room Database.
  • Using Kotlin Coroutines with various 3rd party libraries.
  • Adding timeout to a task using Kotlin Coroutines.
  • Writing Unit-Test for ViewModel which uses Kotlin Coroutines.

Kotlin Coroutines Examples for Android Development: Activity and ViewModel

  • Single Network Call: Learn how to make a network call using Kotlin Coroutines. This is a very simple use-case in Android App Development. Blog: Retrofit with Kotlin Coroutines

  • Series Network Calls: Learn how to make network calls in series using Kotlin Coroutines. This is useful when you want to make a network call which is dependent on an another network call.

  • Parallel Network Calls: Learn how to make network calls in parallel using Kotlin Coroutines. This is useful when you want to make network calls in parallel which are independent of each other.

  • Room Database Operation: Learn how to fetch or insert entity in database using Kotlin Coroutines. This is useful when you are using Room Database in your Android Application.

  • Long Running Task: Learn how to run a long running task using Kotlin Coroutines. If you want to do any of your task in background thread using the Kotlin Coroutines, then this is useful.

  • Two Long Running Tasks: Learn how to run two long running tasks in parallel using Kotlin Coroutines.

  • Timeout: Learn how to add timeout to a task using Kotlin Coroutines. If you want to add a timeout to any of your background task in Android, this is going to super useful.

  • Try-Catch Error Handling: Learn how to handle error in Kotlin Coroutines using Try-Catch.

  • CoroutineExceptionHandler: Learn how to handle error in Kotlin Coroutines using CoroutineExceptionHandler.

  • Ignore Error And Continue: Learn how to use supervisorScope to ignore error of a task and continue with other task. In other words, if more than two child jobs are running in parallel under a supervisor, one child job gets failed, we can continue with other.

  • Unit Test: Learn how write unit-test for ViewModel which uses Kotlin Coroutines.

If this project helps you in anyway, show your love ❤️ by putting a ⭐ on this project ✌️

License

   Copyright (C) 2022 Amit Shekhar

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Contributing to Learn Kotlin Coroutines

Just make pull request. You are in!

Thanks

Amit Shekhar

You can connect with me on:

Read all of my blogs here.

learn-kotlin-coroutines's People

Contributors

amit016verma avatar amitshekhariitbhu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

learn-kotlin-coroutines's Issues

Why apiHelper not using any separate dispatcher here?

In SingleNetworkCall feature you are launching a coroutine in the viewmodel. As no dispatcher mentioned it uses the main thread. Again in the apiHelper suspend function there is no use of Dispathcer.IO . Should not we use that as it is doing I/O task? Yes retrofit it handling the network part. But still I am thinking of the right approach. @amitshekhariitbhu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.