Talking Kotlin

Talking Kotlin

By Talking KotlinTechnology
Download on the App Store

Talking Kotlin episodes

  • kotlinx.rpc

    Sebastian and Alex chat about the kotlinx.rpc project, in a special episode recorded in the Munich JetBrains office. They explore all the different components of the library, how you can use it to define RPC services and clients, integrate with Ktor and existing gRPC definitions, and more. While the library is still experimental, it’s already feature-packed, and it has ambitious plans for the future!

    • kotlinx-rpc on GitHub
    • #kotlinx-rpc on Slack
    • kotlinx.serialization on GitHub 
    • gRPC

    Host: Sebastian Aigner

    • Website
    • Bluesky


    Guest: Alex Sysoev

    • LinkedIn
    • GitHub


    1 hr 31 min
  • Powering TV Broadcasts Worldwide

    Sebastian and Márton are joined by Denis Borisevich from RIEDEL Communications, and learn about how Kotlin is used behind-the-scenes to power media, sports, and entertainment broadcasts watched by millions around the globe. Tune in for an exciting story about how Kotlin, Ktor, and Arrow are being used in production for a use case where robust software is mission-critical.

    Resources:

    • Riedel Communications
    • TornadoFX
    • Unsigned integer types
    • Arrow
    • Ktor
    • Eurovision

    Hosts:

    • Sebastian Aigner – Website | Bluesky
    • Márton Braun – Website | Bluesky

    Guest:

    • Denis Borisevich – LinkedIn

    Timeline:
    (0:00) Introductions
    (2:42) Events powered by Riedel
    (3:50) The Kotlin part
    (6:44) Routing video signals
    (9:12) Error handling in milliseconds
    (10:31) The Kotlin part, continued
    (13:29) TornadoFX!
    (19:19) On introducing Compose
    (23:30) Java to Kotlin migration
    (26:30) Learning Kotlin after C++
    (28:44) Unsigned ints in Kotlin
    (32:09) Arrow!
    (33:00) Server-side Kotlin
    (36:25) Functional programming
    (42:10) Why Kotlin over others?
    (45:55) Kotlin/Java interop
    (47:12) A 2-week long test suite
    (51:35) Confidence in Kotlin
    (53:05) Future plans
    (56:00) Wrap-up

    58 min
  • Creator of Spring: No desire to write Java at All

    Sebastian and Márton chat with Rod Johnson, the creator of the Spring Framework. Rod tells the story of how Spring was born more than two decades ago, and shares his recent journey of coming back to the JVM and discovering all the fun of being a newcomer to Kotlin.

    Resources:

    • Expert One-on-One J2EE Design and Development: Rod Johnson
    • Oh the Places You'll Go!
    • Shoulders of Giants: Languages Kotlin Learned From | Andrey Breslav
    • Revamping and Extending Kotlin's Type System | Ross Tate
    • Scala in 2018 Keynote | Rod Johnson
    • But Java has pattern matching! | Alejandro Serrano Mena

    Hosts:

    • Sebastian Aigner – Website | Bluesky
    • Márton Braun – Website | Bluesky

    Guest:

    • Rod Johnson – Twitter | LinkedIn

    Timeline:
    (0:00) Intro
    (0:52) The origins of Spring
    (6:40) You need a business model
    (8:21) Consistency is key
    (9:39) Sustainable open source
    (14:22) Parallels with JetBrains and Kotlin
    (15:29) Rod’s journey around the JVM
    (20:48) Shoulders of giants
    (22:34) The newcomer experience
    (24:40) LLMs write great Kotlin
    (30:34) “You can start without great pain”
    (33:32) Extension functions
    (36:15) Too much magic?
    (37:56) Rod’s feature wishlist
    (39:37) Versioning and compatibility
    (41:19) Ecosystems and interop
    (43:34) Kotlin type system evolution
    (46:27) Kotlin with Spring
    (52:24) Learning Spring with Kotlin
    (54:46) Kotlin in 5 years?
    (1:00:39) Rod’s current work
    (1:03:58) Wrap-up

    1 hr 6 min
  • Building KMP Libraries: The RevenueCat Story

    Sebastian and Márton discuss building KMP libraries with Jay Shortway, the author of RevenueCat’s Kotlin Multiplatform SDK for in-app purchases.

    Resources:

    • RevenueCat KMP SDK
    • How we built the RevenueCat SDK for Kotlin Multiplatform
    • Hybrid SDK Architecture at RevenueCat
    • ttypic/swift-klib-plugin on GitHub
    • RevenueCat/purchases-kmp on GitHub
    • Consider moving `Instant` and `Clock` to the standard library · Kotlin/kotlinx-datetime
    • RevenueCat openings

    Hosts:

    • Sebastian Aigner – Website | Bluesky
    • Márton Braun – Website | Bluesky

    Guest:

    • Joop Korteweg – Twitter

    Timeline:
    (0:00) Intro
    (0:44) What’s RevenueCat
    (4:00) In-app purchases are hard
    (7:22) The multiplatform SDK
    (12:44) The demand for KMP
    (16:30) Hiring and team structure
    (18:42) SDKs for any framework
    (21:27) Building on native SDKs
    (23:45) Improving iOS linking
    (24:54) The SDK is on GitHub
    (26:05) Benefits of building on native
    (28:18) Designing a common API
    (33:21) Add-on modules for SDKs
    (37:30) Instant in the standard library
    (38:04) Returning results from the API
    (39:53) API design decisions
    (44:57) Codegen opportunities
    (45:48) The best things about KMP
    (47:07) KMP improvements wishlist
    (48:28) The KMP journey
    (49:45) Wrap-up

    53 min
  • Becoming a KMP Expert

    Sebastian and Pamela discuss what it means to be an expert in Kotlin Multiplatform, with the help of a panel of experts! Learn about why it's interesting to dive deep into a certain technology, recommendations on how to learn advanced topics, and general advice on how to get the most out of using KMP.

    SKIE

    KMP libraries:

    • whyoleg/cryptography-kotlin

    Interesting code to explore:

    • JetBrains/kotlin
    • Kotlin/kotlinx-datetime
    • Kotlin/kotlinx-io
    • Kotlin/kotlinx.coroutines
    • Cartesian product by Jake
    • Get an invite!

    Ecosystem wishlist:

    • wasmJs support in SQLDelight
    • Compose Multiplatform support in MapLibre

    Learning resources:

    • Kotlin Multiplatform build setup from scratch with Sebastian Sellmair
    • KEEP - Kotlin Evolution and Enhancement Process
      • HexFormat proposal and discussion
      • Uuid proposal and discussion

    More KMP experts:

    • Kevin Galligan
      • Bluesky
      • Twitter
    • Russell Wolf
      • GitHub
      • Twitter
      • multiplatform-settings
    • Jesse Wilson
      • GitHub
    • Sebastian Sellmair
      • Twitter
    • Salomon Brys
      • Twitter

    Hosts:

    • Sebastian Aigner
      • Website
    • Pamela Hill
      • Blog
      • Bluesky

    Guests:

    • Jake Wharton
      • Website
    • John O'Reilly
      • Website
      • KMP samples on GitHub
    • Konstantin Tskhovrebov
      • Mastodon
    • Tadeas Kriz
      • Mastodon
      • Bluesky

    (0:00) Introductions

    (1:40) Why be a KMP expert?

    (9:14) First steps to being an expert

    (16:38) Respecting each platform

    (24:04) Libraries for KMP

    (27:45) Advanced learning resources

    (38:18) Ecosystem wishlist

    (43:03) Exercising your KMP skills

    (48:15) Shoutouts to other experts

    (51:34) Wrap-up

    53 min
  • Going from Swift to Kotlin with Skip
    In a slightly unconventional episode, Sebastian and Márton talk to the founders of Skip, an iOS-to-Android, Swift-to-Kotlin transpiler solution. Marc and Abe have a background working on both Apple platforms and the JVM, and their latest project is a bridge across these two ecosystems.
    • Skip
    • Skip.tools on GitHub
    • Contributing to SkipUI webinar
    • kdoctor
    • Hosts:
      • Sebastian Aigner
        • Website
        • Bluesky
        • Márton Braun
          • Website
          • Bluesky
          • Guests:
            • Abe White
              • Twitter
              • Mastodon
              • Marc Prud'hommeaux
                • GitHub
                • (0:00) Weather 
                  (2:02) Introductions 
                  (3:10) ⁠Elevator pitch⁠ 
                  (3:45) The initial idea
                  (6:14) Pivot around the server-side 
                  (8:35) Skip(.tools) 
                  (8:56) The target audience 
                  (9:58) What about Android devs? 
                  (12:11) The current state 
                  (14:57) Pricing and components 
                  (16:43) ⁠Contributing to SkipUI⁠ 
                  (18:55) Reimplementing everything 
                  (23:07) ⁠The Skip stack⁠ 
                  (26:17) Wrapping JVM types 
                  (28:27) Writing Kotlin in Swift?! 
                  (29:56) Tooling support 
                  (32:02) There’s a Gradle project! 
                  (34:39) iOS API coverage 
                  (38:24) Platform differences 
                  (40:10) Data storage 
                  (44:31) Building on JVM libraries 
                  (46:42) JSON problems 
                  (48:00) Testing the Skip stack 
                  (51:42) SwiftUI to Compose 
                  (58:21) IDE experiences 
                  (1:03:35) Conclusion
                  1 hr 5 min
                • Platform Integrations in Kotlin Multiplatform with Russell Wolf

                  Sebastian introduces the new co-host of the podcast, in a special episode recorded on location at droidcon New York! Joined by Russell Wolf, author of the multiplatform-settings library, we discuss the conference, different code sharing approaches for Kotlin Multiplatform, and how to build great multiplatform libraries.

                  • droidcon New York
                    • When sharing isn’t caring: Using platform-specific code in Kotlin Multiplatform (Russell’s talk)
                    • Compose Multiplatform on iOS: On the Road to Stable (Seb’s talk)
                    • Composing an API the *right* way (Márton’s talk)
                    • The deprecated Accompanist WebView implementation for Jetpack Compose
                    • russhwolf/multiplatform-settings on GitHub
                    • Kotlin Multiplatform database libraries
                      • Room
                      • SQLDelight
                      • Dependency injection libraries
                        • Koin
                        • Kotlin-inject
                        • ViewModel for Kotlin Multiplatform
                        • Hosts:

                          • Sebastian Aigner
                            • Website
                            • Márton Braun
                              • Website
                              • Guest:

                                • Russell Wolf
                                  • GitHub
                                  • Twitter
                                  • Timestamps

                                    0:00 Intro at home
                                    2:02 Intro at droidcon NYC
                                    4:23 Russell’s talk topic
                                    8:14 Code sharing approaches
                                    12:28 Wrapping native APIs
                                    16:18 Attempted segue
                                    16:35 Designing reusable APIs
                                    18:02 Actual segue
                                    18:14 multiplatform-settings
                                    20:23 Supported platforms
                                    24:05 SharedPreferences challenges
                                    26:20 Observable preferences
                                    29:51 Secure storage
                                    30:55 Windows again
                                    31:36 Library code as reference
                                    33:15 Testable library code
                                    35:05 Initializing a KMP library
                                    38:18 Database libraries
                                    40:55 Dependency injection
                                    44:40 Outro

                                    46 min
                                  • Reinventing Ticket Sales with Pretix
                                    In this episode of Talking Kotlin, Hadi Hariri and Sebastian Aigner chat with Raphael Michel, the founder of pretix, an open-source ticketing system. Raphael shares his fascinating journey, from building pretix to solve a conference ticketing problem to becoming a full-fledged company with a global reach.
                                    The conversation dives into the complexities of event ticketing, the challenges of the pandemic, and the surprising new markets pretix entered, like managing access for public swimming pools in Berlin.
                                    Throughout the episode, Raphael discusses how Kotlin plays a crucial role in pretix's development. He talks about using Kotlin for various components, including Android apps, desktop applications, server-side logic, and even future plans for integrating with hardware like turnstiles.
                                    50 min
                                  • Kord: Deep Dive into the Discord API
                                    Join us for an in-depth conversation with Michael Rittmeister and Luca Kellermann, the brains behind Kord, a Kotlin library designed for interacting with the Discord API. In this episode, we dive into the complexities of the Discord API, the importance of WebSockets, and the challenges and strategies in building and maintaining a modularized library. We also explore the future of Kord, including their move towards native support and the ongoing effort to keep up with Discord's evolving features. Whether you're a Kotlin enthusiast or a Discord bot developer, this episode is packed with valuable insights and practical advice.
                                    Kord library – https://github.com/kordlib/kord
                                    Michael on X – @SchlaumeierTVDE
                                    Luca on GitHub – https://github.com/lukellmann
                                    47 min

                                  About Talking Kotlin

                                  From the publisher's feed

                                  A bimonthly podcast that covers the Kotlin programming language by JetBrains, as well as related technologies.

                                  More shows like Talking Kotlin

                                  Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

                                  Software Engineering Radio - the podcast for professional software developers

                                  273 Listeners

                                  Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

                                  Syntax - Tasty Web Development Treats

                                  985 Listeners