Kotlin is a powerful language that has already revolutionized Android and backend development, but it also has powerful support for functional programming. Its amazing features, like functional collection processing, DSL builders, scope functions, or context receivers, help developers achieve intuitive and expressive functional syntax. Additionally, Kotlins extensibility allows libraries like Arrow to promote an even more functional style, all while keeping proper type safety, stability, and performance. Thanks to all this, Kotlin has become the promised land for many developers who are passionate about functional programming in real-life applications.
This book is about Kotlins functional programming features. It covers the essentials first and then builds on them. It presents important and practical topics like collection processing, function references, scope functions, DSL usage and creation, and context receivers.
WHO IS THIS BOOK FOR?
This book is perfect for developers who know the basics of Kotlin and want to learn more advanced features. Math knowledge is NOT required to understand and benefit from this book. It is a natural continuation of Kotlin Essentials.
WHAT IS COVERED?
This book focuses on Kotlins functional features, including:
Generic variance modifiers
Covariant Nothing Object pattern
Generic variance modifier limitations
Interface delegation
Implementing custom property delegate
Property delegates from Kotlin stdlib
Kotlin Contracts
Kotlin and Java type mapping
Annotations for Kotlin and Java interoperability
Multiplatform development structure, concepts and possibilities
Implementing multiplatform library
Implementing Android and iOS applications with shared module
Essentials of Kotlin/JS
Reflecting Kotlin elements
Reflecting Kotlin types
Implementing custom Annotation Processor
Implementing custom Kotlin Symbol Processor
KSP incremental compilation and multiple round processing
Defining Compiler Plugin
Core Static Analysis concepts
Overview of Kotlin static analyzers
Defining custom Detekt rule
This book is full of example projects, including:
Type-safe task update class using Covariant Nothing Object pattern (Generic variance modifiers chapter)
Logging property delegate (Property delegation chapter)
Object serializer (Reflection chapter)
Random value generator for generic types (Reflection chapter)
Annotation Processor generating interface for a class (Annotation Processing chapter).
Kolin Symbol Processor generating interface for a class (Kotlin Symbol Processing chapter).
Detekt rule finding System.out.println usage.