Kotlin is a relatively new and evolving programming language. You need to get hold of a good Kotlin book to master the fundamentals of Kotlin. In this article, we have provided brief reviews of the best Kotlin books available in the market, along with tips and guidance to help you select the right book for your skill level.
We have categorized Kotlin books for beginners, intermediate, and advanced level programmers. You would notice that we have also shortlisted a few books that focus on skills required for Android development with Kotlin.
- Best Kotlin Books for Beginners
- Best Kotlin Books for Intermediate and Advanced level
- Best Kotlin Books for Android
- Wrapping Up
Before we get into details of various books, it is worth noting that apart from absolute beginners, there are good reasons for existing Java developers to start learning Kotlin, specifically for Android development.
The first reason is that Google recently announced Kotlin as the official programming language for Android development.
Secondly, Kotlin brings many modern features for speed development, and on top of that, it runs on JVM itself, which means it is interoperable with Java and allows you to utilize all existing code, libraries, and frameworks of Java.
This has also ignited the Kotlin vs Java debate among the community of developers.
Also, note that while prior Java knowledge gives you a head start to learn Kotlin, it is not a prerequisite. Specifically, since Kotlin is a self-contained, high-level programming language, and easy to learn too.
Let us look at various Kotlin books –
Best Kotlin Books for Beginners
This section covers Kotlin books for beginners. The good news is that most of these books are recently published and for that reason, cover the most updated version of Kotlin specifications.
Some of these books like Head First Kotlin and Kotlin Programming: The big nerd ranch guide are more intuitive and start right from the basics of programming. A good starting point even if you do not know Java or programming in general.
Adding further to this, there are few other books like Kotlin in Action that make learning easy if you already know a little bit of Java. These books are a good place to start if you want to sharpen your Kotlin basic concepts and get more hands-on experience in Kotlin.
Dawn Griffiths, David Griffiths (O’Reilly, March 2019)
Head First Kotlin written by Dawn Griffiths and David Griffiths is an O’Reilly publication and is a good starters guide to Kotlin. Unlike other books in the Head First series, the Authors of this book focus more on visual content and illustrations. This is one of the key reasons why the book is simple, engaging, and a great option for beginners.
This is a complete hands-on book which contains several basic concepts such as generics, collection, lambdas along with granular details of Kotlin syntax. The book starts with a quick introduction explaining who can benefit from this book followed by a much elaborate introduction to Kotlin.
While the first chapter helps you understand what Kotlin is, when to use it, how to set up and start coding, the second chapter onwards gets deeper into concepts most frequently used in Kotlin. Each chapter concludes with many interesting questions for you to solve.
What makes it even interesting is that a lot of concepts such as functions, arrays, and loops in Kotlin are explained using a sample game. You will find individual chapters dedicated to classes, inheritance, polymorphism, exception handling, collections, generics, lambdas, to name a few. This covers most of the basic concepts.
Overall, the book assumes that the reader is completely novice to Kotlin and gets to the crux of every concept. It is a treat to find several working examples in the complete book. The book is available as a hard copy as well as an e-book.
Josh Skeen and David Greenhalgh (September 2018)
The book originally written for Kotlin 1.2, covers a lot of basic concepts including how to set up a development environment using IntelliJ IDE. True to its name, the book provides a detailed explanation of several Kotlin programming features.
The book starts with an icebreaker to provide a brief introduction to Kotlin. From the first chapter onwards, it gets on to deeper and new concepts introduced in Kotlin (when compared to Java). The first chapter covers all about Kotlin setup. The second chapter is completely dedicated to Kotlin data types. Following this, you would find chapters dedicated to explaining loops, if-statement, functions, anonymous functions, and other basic Kotlin features.
A separate chapter covers exception handling, strings, numbers, inbuilt Kotlin functions. While this covers the first half of the book with ground-level basics, the second half of the book covers concepts such as lists, maps, classes, inheritance, objects, interface, generics, extension functions.
After reading almost 80% of the book, you will be able to get a good grasp of Kotlin concepts. The next chapters are dedicated to functional programming, Kotlin interoperability with Java. Finally, you would arrive at a chapter dedicated to building your first Android application. The last two chapters cover coroutines and a brief on further steps to be taken to learn Kotlin.
The book covers a good amount of basic Kotlin concepts. If you know Java, then you can read through these basics more quickly. However, the book has been written keeping in mind novice Kotlin readers and ranks as the best kotlin book for beginners.
While this book has few exercises, it does not have too many sample examples or fully built sample applications. You need to wait towards the end of the book before you start working hands-on. The book is available as a hard copy as well as an e-book.
Dmitry Jemerov and Svetlana Isakova (Feb 2017)
Kotlin in Action written by Dmitry Jemerov and Svetlana Isakova is a quick read for experienced programmers. The book granularly covers most used Kotlin concepts leaving aside the very basics of programming. The book is a perfect fit for intermediate level programmers as it skips just those areas of programming that typically appear redundant in most such books.
To start with, the book covers what is Kotlin, when to use it, basics of Kotlin, etc. in the first two chapters. The next four chapters talk more about concepts such as classes, interface, objects, lamdas, Kotlin types. With the initial six chapters, an introduction to Kotlin is complete.
The next chapters turn towards bit more advanced programming fundamentals including, operator overloading, higher-order functions, generics, annotations, reflection, and DSL construction. With this, you reach almost the end of the book. The book covers a few Kotlin projects and guides you on how to build working projects.
Create Elegant, Expressive, and Performant JVM and Android Applications
Venkat Subramanian (Pragmatic Bookshelf, September 2019)
Programming Kotlin starts with plain basics and slowly climbs up the ladder to unleash Kotlin concepts. This a very informative book and has one of the simplest, textbook-style writing.
You start by learning why one should choose Kotlin. The first part of the book walks through scripting in Kotlin and covers how Kotlin is similar as well as different from Java. The next parts of the book introduce concepts such as functions, named arguments, iteration, using collections, typecasting.
The second part of the book is all about object-oriented Kotlin features, while the third part of the book is dedicated to functional Kotlin, introducing concepts such as lambdas and lazy evaluation. Through the second half of the book, few advanced Kotlin topics such as overloading operators, internal DSLs, memorization, coroutines, asynchronous programming are explained.
The last section of the book explains, intermixing of Java and Kotlin along with unit testing in Kotlin. Further to this, you will learn to develop a spring application using Kotlin and building a demo Android application using Kotlin. The book is available as a hard copy as well as an e-book.
Best Kotlin Books for Intermediate and Advanced level
In this section, we will look at Kotlin books for advanced programming concepts. Advance level Kotlin coding covers topics such as the use of the Spring framework in Kotlin, microservices creation, Lamda functions, functional programming, higher-level functions, sequences, concurrency, coroutines, reactive programming concepts, and a lot more.
In case you are familiar with Kotlin basics then these books let you leverage your Kotlin skills and learn more complex Kotlin features.
Ken Kousen (November 2019)
Kotlin Cookbook written by Ken Kousen is a very compact book. The author focuses more on improving students’ problem-solving skills using programming and puts little emphasis on basics.
As the name suggests, it is a cookbook and contains multiple real-life use-cases with less theory and a more practical approach to building valuable solutions using Kotlin.
The book starts the first chapter dedicated to installing Kotlin, compiling, running a sample script, using Maven, and using Gradle with Kotlin.
With the second chapter, you can expect some deep diving into Kotlin basics. While this is not in too much detail, it covers concepts such as using bitwise shift operators, latent for delayed initialization, Elvis operator, etc., and more.
The next few chapters cover functional programming, tail recursion, collections, lazy sequences, and provide a brief on Kotlin’s inbuilt functions. The latter half of the book covers Kotlin delegates, use of Junit for Kotlin testing as well as IO operation in Kotlin.
There is an elaborate miscellaneous section that covers very selective and frequently occurring use cases. This is one of the key highlights of the book.
The final two chapters talk about integrating Spring with Kotlin and coroutines along with structured concurrency.
The book is available as a hard copy as well as an e-book.
A Comprehensive Guide to Modern Multi-Paradigm Language
Aleksei Sedunov (January 2020)
The book is designed for students and learners familiar with some basics of java/JVM and looking to explore Kotlin.
The introductory chapter gives a walk through on what exactly is Kotlin, more about Kotlin eco-system. With the first chapter you would be equipped to start writing a basic Kotlin program.
From the second chapter you will come across more Kotlin basics such as data types, string operations, functions, loops, classes, objects. Towards end of the fourth chapter you would be done with most of the programming fundamentals.
Starting with the fifth chapter, the book jumps on to more advanced programming and Kotlin specific concepts such as higher-order functions, lambdas, IO operations, more about class hierarchy followed by generics. You will also learn –
- Understanding Class Hierarchies
- Reflection and Annotations
- Coroutines and Concurrency
- Interoperability with Java
- Testing in Kotlin
- Concepts for building Android apps
- Use of Ktor for web development
- Microservices development
The book is simple to grasp and has several working examples. A good starting point for coder looking to strengthen programming with Kotlin features.
The book is available as a hard copy and an e-book.
Pierre-Yves Saumont (April 2019)
The Joy of Kotlin focuses on better programming techniques and teaches you to write comprehensible, safe, and easy-to-maintain Kotlin code.
The book starts by providing an overview of Kotlin, functional programming in Kotlin, Kotlin functions, recursion, memorization.
The next few chapters of the book explain basic Kotlin features such as collections, data handling with lists, error handling, exception, dealing with optional data, advance list handling, data handling with trees.
You can purchase the print or paperback version of the book and get free PDF eBook, Kindle, and ePub formats from Manning Publications.
Best Kotlin Books for Android
As you know Kotlin is now the official programming language for Android apps development, and more developers are choosing Kotlin over java with every passing day. This section covers Kotlin books for Android applications development.
It is worth noting that Android ecosystem has existing java code base and ready to use packages of Java, so you typically end up using Java too in your Kotlin based Android apps.
We have reviewed quite a few books to pick only those that equip you not only with Kotlin but with Android development too. Not only that, but we also have carefully selected books that are recently updated and use modern features. Also, these advanced level Kotlin books are not at all theoretical but contain a good number of app building working samples.
Build Android apps starting from zero programming experience with the new Kotlin programming language
John Horton (April 2019)
Android programming with Kotlin for beginners written by John Horton, as the name suggests is all about Android and Kotlin.
So, to say, if you are looking forward to learning Android programming using Kotlin, then this is the kotlin android book for you.
The book is elaborate, comprehensive, and has an informal writing style. Starting with the first chapter the book quickly jumps into all about why to use Kotlin for Android development, setting up of Android studio, and you would be able to write your first Android app.
Each chapter has a section dedicated to frequently asked questions and a summary which works as a quick reference. In the second chapter onwards, you would learn more about reading logs, UI Designer, examining XML code, and will eventually learn to write a basic Kotlin code. Further chapters dwell deep into exploring Android studio, more about Layouts, material designs, and more specific UI features such theme, scroll view, etc.
From chapter six, there is more explanation on the Android lifecycle, and then there are chapters explaining basics around Kotlin such as operators, Kotlin functions, inheritance, followed by how you can integrate Kotlin to your UI. With this, there is more sample examples on making workable widgets, dialog windows, handling large amount of data for UI.
A chapter is completely dedicated to explaining adapters and recyclers, which is one of the core components for Android development. There is a good number of chapters covering animations, data persistence, canvas demo, and graphics. Topics related to threads, screen touch, Android sound effects are explained using a good amount of sample code.
As you read further, you will find that the final parts of the book cover design patterns, multiple layouts designing, a pinch of advanced UI concepts, Android databases, followed by a conclusion explaining how you can publish your app, user Git, Android user forum to continue learning more. It is a complete reference guide focusing on end-to-end Android app development.
You can grab this Kotlin ebook as kindle version or order the hard copy from Amazon.
To build apps for Android, iOS, and the web
Nate Ebel (October 2019)
Mastering Kotlin written by Nate Ebel covers a good amount of advanced Kotlin features and focuses on practical problem-solving. The book covers application design patterns using Kotlin – the key skill required for developing enterprise-grade applications.
The first chapter starts with explaining what is Kotlin, how Kotlin is flexible, setup, and technical requirements to start learning Kotlin, followed by a sample Hello Kotlin program.
The book introduces web programming using Kotlin and more specifically to use Kotlin for Android. The author dedicates the second chapter to functional programming, reactive programming, and the most common mistakes made by programmers. You get ample information to use these concepts to build Android apps.
Within the initial few chapters, you will find concepts such as Elvis operator, event-driven programming, reactive coroutines, first-class functions, and details on the functional programming paradigm in general.
While there are chapters covering Kotlin testing, concurrency, the last few chapters completely focusing on DSL, Kotlin for Android, Kotlin in web development, multiplatform Kotlin, microservices, and details on commonly used design patterns in Kotlin.
Antonio Leiva (January 2016)
Kotlin for Android developers is a book that walks through the Kotlin basics before going through Kotlin for Android development. The book is extremely detailed and lays a good foundation for learning Kotlin for Android development.
There is enough spoken about introduction to Kotlin, setup, working with Android studio.
Post the initial few chapters which are dedicated to the setup, the next few chapters talk about Kotlin basics such as classes, functions, variables.
Through the book you would learn Kotlin features more specific to Android. Some of these topics being explained are Anko and extension functions, parsing data, lambdas, Kotlin android extensions, saving and requesting data from database with SQLite.
The last few sections of the book focus on interface, generics, screen settings, coroutines, and then finally creating and testing your app. As a bonus, the final part of the book discusses some extra concepts. The book is available only as a hard copy.
Greg Lim (2020)
Beginning Android Development with Kotlin is one of the latest Kotlin books for Android 10. The book carries a good amount of information focusing on frequently used services one would use while developing an app.
To being with, the book introduces Android development in a modest, understandable way.
The author starts off with a good introduction to Kotlin. After the introduction, you will learn to create many projects, as below –
- BMI calculator
- Quotes app using RecyclerView,
- To-do list app using RecyclerView and shared preferences.
- To-do List with the realm
- Connecting to an API – Cryptocurrency Price Tracker
- Connecting to GitHubAPI – Search GitHub user app
- Face detection, text recognition with ML Kit
This ends with learning how to publish an app on the app store. The topics are straight to the point focusing on specific functionalities commonly used in app development.
The book is available as a hard copy and an ebook.
Kotlin is in the limelight after Google announced it as the official programming language for Android. As a result of that, existing app developers and beginners are looking at polishing their Kotlin skills.
Also, because Kotlin is a new kid on the block, you may not find too many good learning resources on the internet. One of the best options is to rely on books. Hope you find the above list useful and get the book of your choice and style.