Introduction.- Part 1: Kotlin Programming.- A First Kotlin Program.- Flow of Control.- Number Guessing Game.- Functions in Kotlin.- Higher Order Functions.- Curried Functions.- Part 2: Object Oriented Kotlin.- Kotlin Classes.- Objects and Companion Objects,- Further Kotlin Properties.- Scope and Conditional Functions.- Class Inheritance.- Abstract Classes.- Interfaces, Delegation and Enumerated Types.- Packages.- Nested and Inner Types.- Data Classes.- Sealed and Inline Classes and Typealias.- Operator Overloading.- Error and Exception Handling.- Extension Functions and Properties.- Part 3: Data Containers.- Arrays.- Collections.- Lists.- Sets.- Maps.- Pairs and Triples.- Generic Types.- Functional Programming and Containers.- Part 4: Concurrent Kotlin.- Coroutines.- Coroutine Channel Communications.- Part 5: Android Development.- Android Overview.- Applications and Activities.- Android Layouts and Events.- Android Tic Tac Toe.
John Hunt is a technology trainer, consultant, mentor and author who nearly 40 years’ experience within the computing industry. He has worked extensively in Object Oriented and Functional technologies using language from Python through Java to Kotlin. John was first involved with Kotlin while working with a FinTech company in 2016. Since then, John has seen the interest in Kotlin grow and grow and in recent years has found numerous clients have been turning from Java to Kotlin both for server side and Android mobile applications.
Kotlin is an exciting new language that runs on Windows, macOS and Linux operating systems. It has also been adopted by Google as their preferred language for Android development.
This textbook assumes very little knowledge of programming so whether you have dabbled with a little JavaScript, played with a bit of Python, written Java or have virtually no programming experience at all you will find that it is for you.
The first part of the book introduces Kotlin program structures as well as conditional flow of control features such as if and when expressions as well as iteration loops such as for, while and do-while. Subsequent chapters explain how functions are implemented in Kotlin and introduce concepts from functional programming such as higher order functions and curried functions.
The second part focusses on object oriented programming techniques, these include classes, inheritance, abstraction and interfaces. The third part presents container data types such as Arrays, and collections including Lists, Sets and Maps and the fourth part considers concurrency and parallelism using Kotlin coroutines. The book concludes with an introduction to Android mobile application development using Kotlin.
Clear steps are provided explaining how to set up your environment and get started writing your own Kotlin programs.
An important aspect of the book is teaching by example and there are many examples presented throughout the chapters. These examples are supported by a public GitHub repository that provides complete working code as well as sample solutions to the chapter exercises. This helps illustrate how to write well structured, clear, idiomatic Kotlin to build real applications.