This session demonstrates the challenges of calling Kotlin APIs from Swift and how to resolve them using tools like SKIE.
Dive into the complexities of Kotlin Multiplatform (KMP) and discover how to bridge the gap between Kotlin and Swift development. Touchlab’s “Bad Swift Simulation” is designed to highlight the real issues faced by Kotlin developers when interacting with Swift, and provide practical solutions to enhance your development workflow.
Most Kotlin developers have some familiarity with Swift but lack deep understanding. This lab experience will immerse you in the challenges of calling Kotlin through a Swift-like lens, where you'll gain invaluable insights and learn how to address these issues using SKIE and other tools.
What You Will Learn:
- Feel Their Pain: Understand the critical issues when Kotlin APIs are used in Swift environments by experiencing them firsthand.
- Address the Issues: Use SKIE and other tools to reintroduce modern features, restoring productivity and type safety.
- Apply it Intelligently: Learn techniques to incrementally apply SKIE, ensuring minimal disruption to existing codebases.
Join us for an in-depth exploration of Kotlin and Swift integration challenges and solutions. Ideal for Kotlin developers, iOS developers, software architects, and technical leads, this event will enhance your understanding and improve your mobile app development workflow with KMP.
✨ Resources:
skie.touchlab.cogithub.com/touchlab/BadSwiftSimulatorgithub.com/touchlab/SKIEgithub.com/touchlab/xcode-kotlintouchlab.co/close-the-platform-gaptouchlab.co/kc-team-codelabtouchlab.co/codelabs
📖 Chapters:
Introduction to Touchlab Summer Streaming Series
- Welcome and Introduction by Kevin Galligan
Talk by Tadeas and Phillip
- Introducing Speakers and Topic
- Kotlin to Swift Interop: Limitations and Solutions
Primary Reason for KMP Adoption Issues
- Technical vs People Problems
- Hypothetical Scenario Illustrating People Problems
Importance of iOS Developer Experience
- Ensuring iOS Developers Want to Use KMP
- Improving iOS Developer Experience
Debugging and Compilation Challenges
- Making Kotlin API Friendly to Swift
- Allowing iOS Developers to Modify Shared Code
- Issues with Debugging Kotlin Code
- Compilation Time Optimization
Problem with Kotlin API in Swift
- Explanation of Kotlin and Swift Interop
- Current State of Kotlin and Swift Interop
Simulation and Examples
- Bat Swift Simulator
- Enums in Kotlin
- Sealed Classes and Interfaces
- Reactor Class Example
- Coroutines and Suspend Functions
- Flows
- Default Arguments
- Generics Example
SKIE: A Tool to Improve Kotlin to Swift Interop
- Introduction to SKIE
- SKIE in Action: Enum and Sealed Class Handling
- Human Readable Descriptions
- Improved Suspend Functions and Flows
- Default Arguments with SKIE
- Handling Generics with SKIE
- Swift Code Bundling
Summary and Closing R
Why it's here
2 people recommend this
What people say. Recommended for learning how to improve the Swift developer experience when using Kotlin Multiplatform.
k
u/kpgalliganin r/Kotlin • Recommends
On “So sell me on KMM”
…you avoid a upfront Big Decision. If things are going well and you get traction and/or more funding, you can invest in providing a truly native UI for iOS users. Contrast that with a ground-up Flutter app. Doing something similar would be far more costly and disrupting.
For iOS developers specifically, we've had some recent content about this.
* link to this video (it's me, about teams)
* link to this video (SKIE, Swift/Kotlin Interface Enhancer)
* https://touchlab.co/kmp-teams-intro Teams blog post series. The final section (publishing soon...) includes ideas about how the iOS team not only gets involved, but is critical to any team's KMP success.
In summary, for iOS developers specifically. Because KMP embra…