Modern software projects rarely live in a single language ecosystem. On Apple platforms, Swift is the primary language, while Kotlin is widely used for cross‑platform and shared business logic. Despite this, one important piece of the puzzle is still missing: the ability to import Swift APIs directly into the Kotlin world.
In this project, you will build on an existing open‑source Swift–Java bridge and add Kotlin/Native as a target runtime. This means designing how Swift types and APIs are exposed to Kotlin/Native, how calls cross the Swift/Kotlin boundary, and how object lifetimes are managed safely across the two runtimes.
Working on interoperability between these languages is both challenging and exciting. It means going beyond surface-level syntax and looking into how real programming languages work at runtime: how values are represented in memory, how calls cross language boundaries, and how different runtimes coexist within the same process. Progress often comes through experimentation, careful debugging, and a solid understanding of low‑level details.
The project involves exploring the Swift and Kotlin/Native runtimes, their memory models, and how their memory management systems can safely coexist and interact. The goal is to create a proof of concept for Swift‑to‑Kotlin/Native interop, document the design and trade‑offs, and evaluate limitations and future directions, rather than to build a polished product.
This project is a great fit for students interested in the practical aspects of programming languages, compilers, and runtime systems, and it is well suited as a bachelor’s or master’s thesis topic.
Currently pursuing or recently graduated from a Computer Science degree, or a degree in a related field
Familiarity with Swift
Interest in programming languages and language interoperability
Nice to have:
• Familiarity with Kotlin