Chapter
Chapter 1: Installation and Working with Environment
Creating Kotlin Android project
How to use Gradle to run Kotlin code
How to run a Kotlin compiled class
How to build a self-executable JAR with Gradle and Kotlin
Reading console input in Kotlin
Converting Java code to Kotlin and vice versa
How to write an idiomatic logger in Kotlin
Escaping for Java identifiers that are keywords in Kotlin
Disambiguating using the "as" keyword to locally rename the clashing entity
Doing bit manipulations in Kotlin
Parsing String to Long, Double, or Int
Converting String to Long
Converting string to Long using string.toLongOrNull()
Converting with special radix
Parsing string to Long with special radix
Using String templates in Kotlin
Assigning result to an expression using the if keyword
Using range with the when expression
Using when with custom objects
Using try–catch as an expression
How to write a swap function in Kotlin using the also function
How to throw a custom exception in Kotlin
How to make a multiconditional loop in Kotlin
Chapter 3: Classes and Objects
Initializing body of constructor
Converting one data type into another
How to type check an object
How to work with an abstract class in Kotlin
How to iterate over a class's properties in Kotlin
How to work with inline properties
How to work with nested class
Working with delegated properties
Specifying default values in functions
Using named arguments in functions
Creating the RecyclerView Adapter in Kotlin
Creating getter setters in Kotlin
Passing variable arguments to a function
Passing a function as a parameter to another
Declaring a static function
Using the use keyword in Kotlin
Function literals with receivers
Working with anonymous functions
Chapter 5: Object-Oriented Programming
Working with interfaces in Kotlin
How to implement complicated interfaces with multiple overridden methods in Kotlin
How to extend a class in Kotlin (Inheritance and Extension functions)
How to work with Generics in Kotlin
How to implement polymorphism in Kotlin
Restricting class hierarchies
Chapter 6: Collections Framework
How to merge two collections
Splitting original collection into pair of collections
Sorting a list by specified comparator
Sorting in descending order
Parsing a JSON response using Gson
How to filter and map using lambda expressions
How to sort a list of objects and keep null objects at the end
How to implement a lazy list in Kotlin
How to pad a string in Kotlin
How to flatten an array or map
How to sort collection by multiple fields in Kotlin
How to use limit in Kotlin list
How to create a 2D array in Kotlin
How to skip the first "n" entries in Kotlin
Chapter 7: Handling File Operations in Kotlin
Reading from files using InputReader
Reading all lines in a file using InputReader
Reading line by line using InputReader
Reading from files using BufferedReader
Reading all lines in a file using BufferedReader
Reading line by line using bufferedReader
Reading string and JSON over network
Chapter 8: Anko Commons and Extension Function
Setting up Anko with Gradle
Extending Android framework using extension function
Using extensions as properties
Making a call intent using Anko
Sending a text intent using Anko
Browsing the web browser using Anko
Sharing some text using intents in Anko
Sending an email using Anko
Creating Android dialogs with Anko
Showing an alert dialog with a list of text items
Handling dimensions with Anko
Version checking on Android
Setting up Anko library for Anko layouts in Gradle
Creating user-interface programmatically
Working with the old code of XML layouts
Using the provided AnkoComponent interface
Setting theme for Android views in Anko
Setting layout parameters for Anko views
Adding listeners to Anko views
Inserting XML layouts into DSL
Converting XML files into DSL
Accessing views using synthetic properties
Accessing views of view groups using extension functions
Chapter 10: Databases and Dependency Injection
Using SQLite database in Kotlin
Injecting dependencies in Kotlin
Reading data from database
Converting database cursor into list of objects
Using parseOpt for nullable object
Inserting data into database
Creating singletons in Kotlin
Using Dagger 2 with Kotlin
Using Butterknife with Kotlin
Chapter 11: Networking and Concurrency
How to fetch data over network
How to create data class in Kotlin
How to copy data class with modifications
How to parse JSON data from network to data class
How to download a file in Kotlin
How to use RxJava and Retrofit with Kotlin
How to make an endless list using RecyclerView
How to use Anko to run background tasks with Kotlin in Android
How to use coroutines to achieve multithreading
Chapter 12: Lambdas and Delegates
Click listeners using lambdas
Using lazy delegate in Kotlin
Using the observable delegate
Writing your own delegates
Using the lateinit modifier
Working with SharedPreferences
Creating a chain of multiple lets in Kotlin
Creating global variables
Unit testing with Mockito
Running instrumentation tests
Writing JUnit rules in Kotlin (@Rule)
Acceptance tests using Espresso Kotlin
Writing assertEquals in Kotlin
Chapter 14: Web Services with Kotlin
How to run the application on Tomcat
Setting up dependencies for building RESTful services
How to create a REST controller
Creating the Application class for Spring Boot
Other Books You May Enjoy