Maarten Balliauw

Building a Friendly Kotlin SDK to Connect to JetBrains Space

How do you make a massive API with 700+ objects easy to use? Discover the custom code generation and type-safe DSLs behind the JetBrains Space Kotlin SDK.

Building a Friendly Kotlin SDK to Connect to JetBrains Space
#1about 1 minute

An introduction to building a friendly SDK for an API

The talk will cover the process and technology behind the Kotlin SDK for JetBrains Space, focusing on code generation and developer experience.

#2about 7 minutes

An overview of the JetBrains Space integrated team environment

A tour of core features in JetBrains Space, including dashboards, calendars, Git repositories, issue tracking, and chat, shows how they are all integrated.

#3about 6 minutes

Exploring the extensive Space HTTP API via the playground

The API playground provides a way to discover all available endpoints and learn how to shape responses using the `fields` query parameter.

#4about 3 minutes

Why code generation was chosen for the SDK

Handcrafting the SDK was impractical due to the API's large size and frequent changes, leading to the decision to use custom code generation.

#5about 7 minutes

Powering code generation with a custom metadata API

A dedicated API endpoint exposes the entire internal schema of Space, providing a rich metadata model for generating type-safe DTOs and enums.

#6about 3 minutes

Using KotlinPoet for a model-based generation approach

The KotlinPoet library enables a safe, model-based approach to code generation, which prevents common errors and ensures well-formatted output.

#7about 4 minutes

Designing the SDK for discoverability and ease of use

The SDK's structure mirrors the API playground and provides a strongly-typed builder for selecting response fields, improving developer experience.

#8about 6 minutes

Improving usability with a DSL and factory methods

Manually crafted features like a chat message DSL and factory methods for identifiers are built on top of generated code to simplify common tasks.

#9about 1 minute

Key takeaways on building a user-friendly SDK

A summary of how code generation combined with a focus on developer experience can create a powerful and discoverable SDK for a large API.

Related jobs
Jobs that call for the skills explored in this talk.
SabIna compys

SabIna compys
Vienna, Austria

Remote
20-100K
Intermediate
JavaScript
.NET
+1

Featured Partners

Related Articles

View all articles
CH
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take part
Starting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
WeAreDevelopers LIVE days are changing - get ready to take part
LM
Luis Minvielle
Developers share the most interesting tech they ever built
Most people's first thoughts about Hacker News revolve around venture capital, stock prices, company valuations, and $1499 dongles. But what if we told you that Hacker News could also be a place for pure, consummate, wholesome content that tackles ho...
Developers share the most interesting tech they ever built
DC
Daniel Cranney
10+ Free Tools Built on Top of the Bluesky API
Bluesky has been making waves recently, and the chances are you've heard the noise.Although it launched back in 2021, the platform saw a massive surge in popularity following the US presidential elections in November 2024, as millions of users withdr...
10+ Free Tools Built on Top of the Bluesky API

From learning to earning

Jobs that call for the skills explored in this talk.