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

From learning to earning

Jobs that call for the skills explored in this talk.