Description
Build production-grade web apps from scratch – without using frameworks – with Kotlin on the Java platform. You’ll learn how to use and compose libraries, how to choose between different libraries, and the benefits of explicit and straight-forward code, vs. the implicit magic, conventions, and inversion of control you often see in frameworks.
The book teaches the Kotlin language by building production-ready Kotlin code. You’ll gain a deep understanding of the idiomatic use of the Kotlin language along with knowledge of how to apply Kotlin in production-grade web apps. The book also bridges the gap between building from scratch and using existing frameworks. For example, you’ll learn how to integrate Spring Security-based authentication in web apps written from scratch, so you can leverage existing tooling in your organization without having to take on the entire Spring framework.
The first section of the book sets up the base structure of your web app, such as routing, configuration files, and database migrations. The remaining chapters are broken into individual aspects of building production-ready web apps. Appendices at the end of the book explain how to use different libraries than the ones chosen in the main chapters, so you'll learn how to decouple your code from specific libraries, and choose between many different libraries to get the job done in your own web apps.
What You Will Learn
- Compose libraries and manage boilerplate code using idiomatic and powerful Kotlin
- Manage and query SQL databases without ORMs and mapping layers
- Write resilient and change-proof tests in support of test-driven development practices
- Create traditional, HTML-based web apps, APIs for JavaScript-based single-page web apps and native mobile apps
- Manage parallelism and external service calls using Kotlin co-routines
- Deploy to production using embedded servers, WAR files, and serverless approaches
- Bridge the gap between custom-built apps and enterprise, using Spring Context and Spring Security
Who This Book Is ForThe expert developer who is ready to take full control of the tech stack, and use the Kotlin language, type system, and standard library, to ship production-ready web apps. Readers should have prior programming experience. Experience with Java or another JVM language is helpful.