Learning Kotlin for Android Development
Learning Kotlin for Android Development
Summary:
Introduction
The book «Learn Kotlin for Android Development» (authors — Peter Späth and Leonardo Marcelino, 2019, 668 pages) is a fundamental guide that helps developers master the Kotlin language and immediately apply it to create Android applications. Unlike many textbooks that either focus only on Kotlin syntax or immediately throw the reader into complex projects, this book offers a balanced path: from the basics of the language to professional Android development using modern libraries and tools.
The edition was published in 2019, when Kotlin had already become the official language for Android (Google announced this in 2017), but was not yet as widespread as it is today. Therefore, the book is especially valuable for those who want to understand why Kotlin is better than Java and how to make a smooth transition.
What the book is about
The book is divided into three logical parts that sequentially guide the reader from a beginner to a confident Android developer.
Part 1: Kotlin Basics
The first chapters are devoted to the Kotlin language: variables, data types, functions, control structures, classes, objects, inheritance, interfaces, lambdas, coroutines. The authors do not just list the syntax, but explain how each construct is applied in real Android development. Special attention is paid to null safety — one of the key features of Kotlin that eliminates millions of NullPointerExceptions.
Part 2: Android Developer Tools
The second part introduces Android Studio, Gradle, emulators, debugging, and profiling. The reader learns to set up a project, work with the manifest, resources, and layouts (XML and Jetpack Compose). Activity, Fragment, Intents, and the application lifecycle are discussed in detail.
Part 3: Building Full-Fledged Applications
The third part is the most extensive. It covers: working with databases (Room), networking (Retrofit, OkHttp), asynchrony (coroutines and Flow), architectural patterns (MVVM, LiveData, ViewModel), working with the camera, geolocation, notifications, and animations. At the end of the book, there are examples of two complete applications: a task manager and a weather app.
Who this book is for
The book is intended for two types of readers:
- Beginner programmers who have never written for Android but know the basics of any language (Java, Python, C#). They will benefit from starting with Kotlin, bypassing Java.
- Experienced Java developers who want to switch to Kotlin. The authors constantly draw parallels between Java and Kotlin, show how to convert Java code to Kotlin, and explain which Kotlin features make life easier.
What the reader will learn
- Complete Kotlin syntax: from variables to coroutines and Flow.
- How to set up Android Studio and create a first project.
- Working with Activity, Fragment, and the lifecycle.
- Creating adaptive interfaces with XML and Jetpack Compose.
- Working with databases via Room.
- Network requests with Retrofit and OkHttp.
- Asynchronous programming with coroutines.
- MVVM architecture and using ViewModel, LiveData.
- Handling images, notifications, geolocation.
- Publishing an application to Google Play.
Strengths
- Smooth transition from Java to Kotlin. Each section includes a comparison with Java, helping experienced developers adapt quickly.
- Many practical examples. Code is accompanied by detailed comments, and at the end of the book, there are two full-fledged projects.
- Focus on modern tools. The authors use Android Studio, Gradle, Kotlin DSL, Jetpack, coroutines — everything needed for development in 2024+.
- Clear structure. The book can be read sequentially or used as a reference.
- Suitable for self-study. No
Recommendations
Functional Programming in C++: A Modern Approach
Concurrency in C# (.NET): Asynchrony, Parallelism, and Multithreading
C++ and Microservices: From Monolith to Distributed Architecture
Design Patterns in Swift: iOS/macOS
Concurrency in C# (.NET): Asynchronous and Parallel Programming
Scikit-Learn and TensorFlow. Machine Learning with Python