Loading video...
Video Failed to Load
Compiled #SwiftUI on Android progress! With Skip's existing SwiftUI support and bridging technology, most functionality ports quickly. The biggest time drag is just the massiveness of the SwiftUI API surface area
55,150 views • 1 year ago •via X (Twitter)
12 Comments

If you had the time to explain what it is exactly that you're doing at the moment, by showing a simple example in detail, i would absolutely love it. I'm still a bit confused at to what is compiled, what is transpiled, and where does it all hooks to the android api.

iOS: your code builds as if Skip isn't there Android: your Swift compiles against the official std lib and Foundation, plus our SkipFuse lib for system integration. Your SwiftUI compiles against our SkipFuseUI lib mirroring the SwiftUI API. Under the hood, SkipFuseUI JNI-bridges to our SkipUI lib, which uses Compose

Want to build a Web3 app without all the overhead costs? Try TransactionKit, a React toolkit that makes building dApps easy. Integrate cutting-edge account abstraction features in just a few clicks. Try it today 👇

Astonishing work!

how did you do this? Flutter/dart?

This is a Swift/SwiftUI app using In particular, Skip's in-progress support for *compiling* SwiftUI and bridging to Compose, rather than our existing support for *transpiling* to Kotlin

interesting.. how does the swiftui to compose component mapping work? does each of your swiftui component map to an equivalent material compose one?

There are lots of complications, but generally yes

i'm pretty intrigued by the tech behind this. how far along is Skip? do animations work? navigation transitions?

Here's the SwiftUI our current, transpiled product supports on Android. We're now in the process of supporting all this in compiled mode. Note that this subset is always expanding, and that you can mix in Compose as desired too

the material navbar is off n the android emulator. the pill is supposed to be larger

We’re not customizing it here. That is the vanilla material 3 nav bar in the version we’re using

