Book Image

Mastering Kotlin

By : Nate Ebel
Book Image

Mastering Kotlin

By: Nate Ebel

Overview of this book

Using Kotlin without taking advantage of its power and interoperability is like owning a sports car and never taking it out of the garage. While documentation and introductory resources can help you learn the basics of Kotlin, the fact that it’s a new language means that there are limited learning resources and code bases available in comparison to Java and other established languages. This Kotlin book will show you how to leverage software designs and concepts that have made Java the most dominant enterprise programming language. You’ll understand how Kotlin is a modern approach to object-oriented programming (OOP). This book will take you through the vast array of features that Kotlin provides over other languages. These features include seamless interoperability with Java, efficient syntax, built-in functional programming constructs, and support for creating your own DSL. Finally, you will gain an understanding of implementing practical design patterns and best practices to help you master the Kotlin language. By the end of the book, you'll have obtained an advanced understanding of Kotlin in order to be able to build production-grade applications.
Table of Contents (25 chapters)
Free Chapter
1
Section 1: Kotlin – A Modern Solution to Application Development
4
Section 2: Putting the Pieces Together – Modeling Data, Managing State, and Application Architecture
8
Section 3: Play Nice – Integrating Kotlin With Existing Code
13
Section 4: Go Beyond – Exploring Advanced and Experimental Language Features
17
Section 5: The Wide World of Kotlin – Using Kotlin across the Entire Development Stack

Chapter 10: Practical Concurrency

  1. Can you name two mechanisms for executing code in the background for JVM applications?
  • Thread
  • Executors
  • CompleteableFuture
  • RxJava
  1. When was CompleteableFuture introduced to Java?
  • Java 8
  1. What is RxJava?
  • It is the JVM implementation of Reactive Streams, which can be used for simple asynchronous operations or for fully reactive programming.
  1. What are coroutines?
  • They are a solution for structured concurrency that enable us to write asynchronous code in an imperative, non-blocking way.
  1. What is structural concurrency?
  • It is the concept of scoping coroutines and their execution to different scopes that can be controlled and canceled throughout the lifetime of an application.
  1. Why are different coroutine builders useful?
  • They enable us to control how our coroutines are configured, run, and responded to. They could be used to bridge...