Какие фреймворки для Kotlin вы использовали?

«Какие фреймворки для Kotlin вы использовали?» — вопрос из категории Other, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Kotlin — это язык, а не фреймворк. Он часто используется со следующими фреймворками и библиотеками:

  1. Spring Boot (с Kotlin): Основной фреймворк для enterprise-разработки. Kotlin предлагает более лаконичный и безопасный синтаксис.

    @RestController
    class UserController(val userService: UserService) {
        @GetMapping("/users/{id}")
        fun getUser(@PathVariable id: Long): ResponseEntity<User> =
            userService.findById(id)?.let { ResponseEntity.ok(it) } 
                ?: ResponseEntity.notFound().build()
    }
  2. Ktor: Асинхронный фреймворк от JetBrains для создания серверов и клиентов.

    fun main() {
        embeddedServer(Netty, port = 8080) {
            routing {
                get("/") { call.respondText("Hello Ktor!") }
                route("/api") {
                    get("/users") { /* ... */ }
                }
            }
        }.start(wait = true)
    }
  3. Exposed: Легковесная ORM/DSL библиотека для Kotlin.

    object Users : Table() {
        val id = long("id").autoIncrement()
        val name = varchar("name", 50)
        override val primaryKey = PrimaryKey(id)
    }
    // Запрос
    val users = Users.selectAll().map { it[Users.name] }

Преимущества Kotlin: null-безопасность, корутины для асинхронности, data-классы, extension-функции.