Sebastian and Márton chat with Marcin Moskała about coroutines.
Resources:
Hosts:
Guest:
Timeline:
(0:00) Introduction
(1:18) Branding discussion
(3:23) Handling preconceptions
(4:54) What are coroutines?
(7:17) Lightweight threads?
(11:07) Where coroutines live
(13:27) Sequence Builder Example
(17:37) The design of coroutines
(20:52) What Makes Coroutines special vs other languages?
(26:56) Coroutines vs Loom
(34:55) Easy to start, hard to master
(41:07) Common mistakes
(49:33) Flows
(58:52) Thinking about Flows
(1:02:41) Derailing the conversation
(1:03:55) Flows for single values
(1:12:27) Structured concurrency
(1:18:53) The 4 advantages
(1:24:40) Seb tries web dev / The web is broken?!
(1:31:15) collectAsStateWithLifecycle
(1:32:00) Gardening break
(1:36:23) Scopes and contexts
(1:43:22) Testing coroutines
(1:50:29) Lincheck
(1:51:32) Turbine
(1:55:05) Coroutines Mastery course
(2:01:43) Wrap-up
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!
Host: Sebastian Aigner
Guest: Alex Sysoev
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:
Hosts:
Guest:
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
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:
Hosts:
Guest:
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
Sebastian and Márton discuss building KMP libraries with Jay Shortway, the author of RevenueCat’s Kotlin Multiplatform SDK for in-app purchases.
Resources:
Hosts:
Guest:
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
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.
KMP libraries:
Interesting code to explore
by Jake
Ecosystem wishlist
Learning resources
HexFormat
and
Uuid
and
More KMP experts Kevin Galligan
Russell Wolf
Jesse Wilson
Sebastian Sellmair
Salomon Brys
Hosts: Sebastian Aigner
Pamela Hill
Guests: Jake Wharton
John O'Reilly
Konstantin Tskhovrebov
Tadeas Kriz
Timestamps:
(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
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.
Hosts:
Guest:
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