
Mastering Kotlin
Learn advanced Kotlin programming techniques to build apps for Android, iOS, and the web
- 434 pages
- English
- ePUB (mobile friendly)
- Available on iOS & Android
Mastering Kotlin
Learn advanced Kotlin programming techniques to build apps for Android, iOS, and the web
About this book
Explore popular language features, Java to Kotlin interoperability, advanced topics, and practical applications by building a variety of sample projects
Key Features
- Understand and leverage the syntax, tools, and patterns by writing code in Kotlin
- Explore practical topics such as Java interop, concurrency with coroutines, and functional programming
- Discover how to use Kotlin for build targets like Android, iOS, JavaScript, and backend service
Book Description
Using Kotlin without taking advantage of its power and interoperability is like owning a sports car and never taking it out of the garage. While documentation and introductory resources can help you learn the basics of Kotlin, the fact that it's a new language means that there are limited learning resources and code bases available in comparison to Java and other established languages.
This Kotlin book will show you how to leverage software designs and concepts that have made Java the most dominant enterprise programming language. You'll understand how Kotlin is a modern approach to object-oriented programming (OOP). This book will take you through the vast array of features that Kotlin provides over other languages. These features include seamless interoperability with Java, efficient syntax, built-in functional programming constructs, and support for creating your own DSL. Finally, you will gain an understanding of implementing practical design patterns and best practices to help you master the Kotlin language.
By the end of the book, you'll have obtained an advanced understanding of Kotlin in order to be able to build production-grade applications.
What you will learn
- Model data using interfaces, classes, and data classes
- Grapple with practical interoperability challenges and solutions with Java
- Build parallel apps using concurrency solutions such as coroutines
- Explore functional, reactive, and imperative programming to build flexible apps
- Discover how to build your own domain-specific language
- Embrace functional programming using the standard library and Arrow
- Delve into the use of Kotlin for frontend JavaScript development
- Build server-side services using Kotlin and Ktor
Who this book is for
If you're a Kotlin developer looking to further their skills or a professional Java developer looking for better or professional resources in order to make a switch to Kotlin, this book is for you. Familiarity with Kotlin programming will assist with understanding key concepts covered in the book.
Frequently asked questions
- Essential is ideal for learners and professionals who enjoy exploring a wide range of subjects. Access the Essential Library with 800,000+ trusted titles and best-sellers across business, personal growth, and the humanities. Includes unlimited reading time and Standard Read Aloud voice.
- Complete: Perfect for advanced learners and researchers needing full, unrestricted access. Unlock 1.4M+ books across hundreds of subjects, including academic and specialized titles. The Complete Plan also includes advanced features like Premium Read Aloud and Research Assistant.
Please note we cannot support devices running on iOS 13 and Android 7 or earlier. Learn more about using the app.
Information
Section 1: Kotlin β A Modern Solution to Application Development
- Chapter 1, A New Challenger Approaches
- Chapter 2, Programmers' Multi-Tool β Flexible, Expressive, and Concise
A New Challenger Approaches
- Creating a modern language for the Java Virtual Machine (JVM)
- Moving beyond the JVM
- Designing Kotlin with best practices in mind
- Checking in on the current state of Kotlin
Technical requirements
- IntelliJ IDEA 2018.3 Community or Ultimate editions, or newer
- An internet connection
- Git and GitHub (optional)
Creating a modern language for the JVM
What is Kotlin?
Kotlin is flexible
Kotlin is expressive and concise
Kotlin is powerful
Hello Kotlin
fun formatName(name: String?) = name ?: "Fellow Human"
fun greetReader(greeting: String = "Hey", name: String?) =
println("$greeting ${formatName(name)}")
fun main(args: Array<String>) {
greetReader("Hello!", "Reader")
// Hello! Reader
}
- The use of the fun keyword to define a new function
- Functions that exist outside of any enclosing class
- Demonstrations of null and non-null types
- Support for default parameter values and String templates
Who created Kotlin?
Announcing Kotlin
Motivations for Kotlin
- They wanted a more productive language for the JVM than was currently available. Existing solutions such as Java or Scala either lacked modern language features or suffered from slow compile times.
- They expected Kotlin's adoption to drive sales of IntelliJ.
- It was hoped that the increased discussion and awareness of the company would lead to greater trust in JetBrains itself and their philosophies around building quality development tools.
Community involvement
Moving beyond the JVM
Kotlin for Android
Table of contents
- Title Page
- Copyright and Credits
- Dedication
- About Packt
- Contributors
- Preface
- Section 1: Kotlin β A Modern Solution to Application Development
- A New Challenger Approaches
- Programmers' Multi-Tool β Flexible, Expressive, and Concise
- Section 2: Putting the Pieces Together β Modeling Data, Managing State, and Application Architecture
- Understanding Programming Paradigms in Kotlin
- First-Class Functions
- Modeling Real-World Data
- Section 3: Play Nice β Integrating Kotlin With Existing Code
- Interoperability as a Design Goal
- Crossing Over β Working across Java and Kotlin
- Controlling the Story
- Baby Steps β Integration through Testing
- Section 4: Go Beyond β Exploring Advanced and Experimental Language Features
- Practical Concurrency
- Building Your Own Tools β Domain-Specific Languages (DSLs)
- Fully Functional β Embracing Functional Programming
- Section 5: The Wide World of Kotlin β Using Kotlin across the Entire Development Stack
- Kotlin on Android
- Kotlin and Web Development
- Introducing Multiplatform Kotlin
- Taming the Monolith with Microservices
- Practical Design Patterns
- Assessments
- Other Books You May Enjoy