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.
#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.
The CAMARA Project: How Telcos Collaborating Improves Developer ExperienceEvery industry has friction points, but few have historically been as fragmented for developers as telecommunications. If you’ve ever tried to build something that interacts with mobile networks, you’ve quickly found yourself navigating a maze of dis...
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take partStarting 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...
From learning to earning
Jobs that call for the skills explored in this talk.