Contents
    Lex Melnykow Head of Web

    Why Use Kotlin for Web Development

    Introduced by JetBrains in the 2010s, Kotlin is an open-source general-purpose programming language. It is designed to be fully interoperable with Java, meaning that it compiles into the same bytecode as Java and can execute its code. Since Google announced Kotlin as a language of choice for Android development in 2019, the majority of Android app developers switched to it, making it the fourth most loved programming language

    However, Kotlin is also a great language for web development. We at Surf have been developing apps for over a decade, using both native and cross-platform technologies for our projects. In the article, we’ll cover the benefits of the Kotlin programming language and what features make it an outstanding choice for building a web application.

    Benefits of Kotlin for web development

    Kotlin is a full-stack solution that can be used for back-end and front-end development instead of Java and JavaScript. It can be used to develop apps for a server, web browser, or mobile. Compared to Java, Kotlin is more understandable and requires fewer lines of code. On average, code in Kotlin is 40% shorter than the same code in Java. Less code and more concise syntax mean fewer bugs would find their way into the final version of the app, while Kotlin’s readability makes it easier to fix issues and maintain the code.

    Null reference eliminated

    The problem that many Java developers are familiar with is NullPointerException that happens when accessing null reference from code and causes runtime errors and crashes. In Kotlin, a developer cannot directly assign null value to any object or variable. Instead, it uses a safe call operator (?.) to check for null references; it executes any action only if the reference has a non-null value. The solution decreases the number of errors and makes coding easier. 

    Type inference

    When making a web application with Kotlin, a developer doesn’t need to specify explicitly the type of each variable – some data type information can be safely omitted and identified by the compiler. Kotlin supports two kinds of type inference: local type for types of expressions locally in statement or expression scope and function signature for inferring types of function return values and parameters. This makes code appear shorter and cleaner.

    Great IDEs support

    Kotlin fully supports all major integrated development environments (IDEs) that are used for Java development as well as many text editors. These include Android Studio, which is the most popular tool for Android development; IntelliJ IDEA created by JetBrains itself; Atom developed by GitHub; Eclipse and others. Such a wide selection of development software makes it easier for developer to switch from Java to Koltin without learning the ropes of a new IDE and choose the most suitable development stack for their project.

    Data classes

    One of the tasks that consume a lot of time when programming in Java is creating Data Classes. The operation bears risks of creating additional bugs in the program which results in longer bug fixing iterations. When using Data Classes in Kotlin, the programmer gets a lot of self-generated code, which eliminates the so-called ‘boilerplate’ code — sections of code that are repeated in multiple places with little to no variation. As a result, the code is more readable and there are fewer errors during the development process.

    Kotlin frameworks for web and server-side apps

    Development frameworks simplify the process of creating a web application. Thanks to Kotlin’s Java interoperability some of the most popular Java ecosystem frameworks and libraries support Kotlin as well. Let’s review the most popular examples of them.

    Spring MVC

    Spring framework is one of the most widely used frameworks to build software with Java. Since version 5.0, the framework fully supports Kotlin and has added Kotlin-dedicated features. It uses Spring Boot project initializer to make development with Spring easier and has all the necessary tools to create standalone production-grade apps. It is easy to set up and start coding with Spring. The framework is not a monolithic construction, but rather a modular one consisting of 20 modules that can be used selectively on the top of the core module, making the framework a lightweight solution. The framework is capable of testing the application along with backward compatibility

    Spring MVC is an HTTP-oriented model-view-controller module of Spring that allows developers to build flexible web applications. Thanks to its popularity, there are plenty of resources on building apps with Spring and active communities that are here to help a developer stuck with a problem. However, there are many differences between versions of Spring and, to avoid confusion, it is important to make sure which version is used before looking for documentation.

    KVision

    An object-oriented web framework that supports both reactive and imperative programming models, KVision allows Kotlin developers to create web apps with convenient ready-to-use UI components without using HTML, CSS or JavaScript. The framework is still being actively developed but it already provides great connectivity with frameworks for server-side development, such as Spring Boot, Ktor, Javalin, and Micronaut, making it easy to build full-stack apps with Kotlin.

    Doodle

    Doodle is a vector-oriented Kotlin UI framework for web app development. Apps built with Doodle utilize the browser’s graphics capabilities to render user interfaces without using HTML, CSS styles or Javascript libraries. The framework provides fully customizable layouts and precise control over vector shapes, gradients and UI elements, and simplifies drawing forms with pointer and keyboard. A selection of libraries and modules allows developers to selectively adopt features and decrease bundle size.

    Javalin 

    Javalin is considered one of the most lightweight frameworks for web development with Kotlin. It supports HTTP2, Lambda-based Web Socket API and async requests. The framework is known for being easy to learn, especially for developers who are just starting with backend development. However, developers new to the framework can face difficulties learning the ropes, because Javalin’s documentation is not very well-structured, some terminology differs from standardly used and the platform’s young age means there’s a smaller community to get support from.

    KTor

    Built by JetBrains, the company behind Kotlin itself, Ktor is a framework for both client and server-side apps in Kotlin programming language. Thanks to its ‘official Kotlin framework’ status, KTor is a popular platform (despite its young age) that works on a minimum memory footprint and has high scalability. The framework supports Kotlin coroutines — concurrency design patterns that simplify asynchronously executed code, preventing long-running tasks from making app unresponsive. Although perfect for quick prototyping, KTor is a less-mature framework compared to others, so complex features might require the use of several third-party libraries.

    Build your next web app with Koltin

    If you think about creating a modern web or server-side app, consider building it with Kotlin. It is a concise and easy-to-learn programming language used by top global companies, including Amazon, Uber, Trello, Netflix and others, that is fully compatible with Java and has a strong community. 

    Building an app with Kotlin language is impossible without skillful developers. Hiring Kotlin developers in-house might incur substantial additional costs on setting up HR process and offering all perks of full-time employees to these already expensive specialists, on the other hand, hiring freelancers bears high risks — it can be hard to assess their real skill level and get a desirable level of involvement in the project. Learn more about hiring koltin developers in our dedicated article.

    If you need an app for your business, consider trusting its creation to a specialized development company that can handle the entire development process including organizational matters. For example, we at Surf have over 12 years of experience developing apps using both native and cross-platform technologies and adopting best practices across industries. All our projects come with comprehensive and structured documentation, so it can be easily handed to an in-house team for post-release maintenance. Fill in the short form and we’ll contact you to discuss the details.