Maarten Balliauw

Building a Friendly Kotlin SDK to Connect to JetBrains Space

What if an SDK could make a 700-object API feel simple? Discover the custom code generation and DSLs behind the developer-friendly JetBrains Space Kotlin SDK.

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

An overview of the JetBrains Space integrated team environment

A tour of the core features in JetBrains Space, including calendars, Git repositories, issue tracking, and deep chat integration.

#2about 6 minutes

Exploring the extensive and flexible Space HTTP API

An introduction to the Space HTTP API Playground and the powerful `fields` parameter used to customize API response shapes.

#3about 2 minutes

Why code generation was chosen for the SDK

The decision to use code generation is explained by the challenges of a large, evolving API surface where manual implementation or standard tools would be inefficient.

#4about 8 minutes

Building a generator from a custom API metadata model

The SDK generator is built upon a custom API endpoint that exposes the entire application's data model, including DTOs and enums, as structured JSON.

#5about 3 minutes

Generating type-safe Kotlin code using KotlinPoet

A look at using KotlinPoet for a model-based approach to code generation, which provides compile-time safety and better code quality over simple string templating.

#6about 7 minutes

Designing the SDK for a great developer experience

Key developer experience features are created through discoverable API mapping, a type-safe DSL for selecting fields, and custom builders for complex objects.

#7about 3 minutes

Practical SDK usage with live code examples

A code demonstration shows how to initialize the client, discover services, handle runtime errors for missing data, and use factory methods for identifiers.

#8about 1 minute

Key takeaways on building a friendly SDK

The talk concludes by summarizing how code generation and a focus on discoverability can create a successful and user-friendly SDK for a complex API.

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

Featured Partners

Related Articles

View all articles

From learning to earning

Jobs that call for the skills explored in this talk.