hey guys, i watched your talk at kotlin conf and i...
# touchlab-tools
m
hey guys, i watched your talk at kotlin conf and i really appreciate the work you're doing to push the kmp topic. we're currently trying out kmp and bumping into some problems. some of them would be solved by SKIE, but unfortunately we're partly reluctant to adopt it as we fear it to be a very big superdependency which will get hard to maintain over time, especially as jetbrains comes up with own solutions. for that to understand better i'd like to ask you: what's the road ahead for jetbrains and touchlab? will jetbrains incorporate parts of the "swift header generation" into their own toolset? what would be a (gradual) migration path for that? it'd be really nice to get some insights into that. thanks in advance and greetings from vienna! ☀️
s
Can't speak for Touchlab obviously, but wouldn't it be impossible to guess what the migration (gradual or not) might look like since the JetBrains solution straight up does not exist even in as something experimental right now?
👆 1
t
Hi Marc! That's a great question. It's really early days for Swift export, so we don't have a fully fledged-out plan for it yet. But I believe that once we get closer to production-ready Swift export, we'd build a migration feature to SKIE. Imagine it's around Swift export beta time and you'd be able to enable
swiftExportMigration = true
in SKIE configuration. SKIE would then generate the same Swift API as Swift export and mark all Objective-C headers as deprecated. While it'd result in a lot of Xcode warnings, you'd be able to gradually refactor your code to use the Swift export API. And then when you're done and no longer using any of the Objective-C, you could turn SKIE off and enable Swift export. And because a lot of companies won't want to spend all the time to use the Swift export API (which compared to SKIE-enabled API probably won't be that much better), we'll probably keep supporting SKIE. It all really depends on what JetBrains decides to do. Thanks to our close relationship with JetBrains folks, we should know in advance and figure it out once we do.
🦠 1
k
I would also point out, there won't be a migration path from the Objc API to Swift export, unless JetBrains changes their plans. When you turn it on, you need to test/refactor everything. Whatever the design of Swift export winds up being, migrating from Objc with SKIE to Swift export will almost certainly be less work than from Objc to Swift export, or at a minimum it won't be more work.
m
thanks @Stylianos Gakis @Tadeas Kriz and @kpgalligan. i think using SKIE is the only option we can adopt kmp, so this gives some really good guidance for the way ahead 🥳
🎉 2