Kotlin full stack web apps
Kotlin is a language that strikes an unique balance between the expressivity and terseness of dynamic languages, the power of static languages. In my (not so humble) opinion, Kotlin is probably a better choice than Java in most JVM backend settings.
This course is tailor made for developers with prior JVM and Java experience, who want to modernize by creating Kotlin apps from scratch, or by adding Kotlin to an existing Java app.
Topics
- Kotlin language basics for Java developers - We’ll get familiar with the basics of the language, and how to do all the things you already know how to do in Java, and features that are unique to Kotlin
- Kotlin and null - The Kotlin type system has one of the best solutions for handling nulls, and we’ll investigate the ins and outs of this, and how it allows you to write null safe code without the limits of some of the other type systems that do this.
- Choosing libraries over frameworks - A staple of most of the non-Java languages on the JVM, and Kotlin is no exception
- Setting up a web backend - We’ll use a library based approach to setting up a HTTP server, configuration management, database connections, logging, and so on.
- Test driven development - Even though we don’t use a framework, doing TDD is easy!
- Using Spring Context and Spring Security - these familiar tools can be used as libraries, not frameworks, and allows us to hook into the ecosystems provided by Spring, while not buying into Spring whole-sale. Spring Context is very useful for boot/teardown of the core system, and spring security adds a relatively plug-and-play solution for authentication.
- Setting up a single page web app - you might want to have your Kotlin app as a completely GUI-less API. and we’ll look at how to set it up so that it can easily be the target API for a JavaScript based single page web app
- Servers vs serverless - we’ll look at a traditional Docker based build + deployment setup, as well as how we can modify our code to work in a managed serverless setting - which is easier than you might think, since we control everything with libraries, and aren’t limited by a framework.
Audience
People with prior experience building webapps on the JVM, using Java or some other altneriatlve language, that wants to learn how to build flexible and powerful library based webapps using Kotlin.
Computer setup
IntelliJ IDEA (Community or ultimate) with the Kotlin plugin installed.
August is an experienced senior software developer, working on a TBA startup, and putting food on the table by working as an independent consultant. He previously worked at Kodemaker, where he among other things worked with logistics + e-commerce at Bring, real-time systems at NSB (Vy), and specializes in backends + databases, native apps, and GUIs. Having worked his way up the ladder, his only formal edication is a half-fihisned bachelor in classical piano at the Norwegian Academy of Music. And, even if it's just a linter fix, he does have a commit in the Linux kernel.