this post was submitted on 27 Mar 2024
10 points (91.7% liked)

Rust Programming

7734 readers
9 users here now

founded 5 years ago
MODERATORS
 

Hi.

Rust can run on anything from web browsers to Adruinos. BUT can you make Android/iOS apps with it? I heard that you can make the backend of your app in Rust and then incorporate it into your Java/Kotlin app, but I'm looking for something like React Native or Flutter, where you can build the entire app (including UI and interacting with native APIs) in Rust without writing a single line of Java/Kotlin.

Does something like that exist? If not, then is anyone working on it?

Oh, and I don't mean I want one of the many libraries which just compile your code to WASM and run the app in a WebView... I want something that lets me make native UIs - like React Native or Flutter.

Thanks

top 9 comments
sorted by: hot top controversial new old
[–] Solemarc 8 points 4 months ago* (last edited 4 months ago) (1 children)

What about Slint? Seems to be early days for mobile dev with it though but I don't know any other native rust based UI libraries.

[–] Rustmilian 4 points 4 months ago (1 children)

No full Rust toolkit exists yet, best you got is Kotlin-Rust & Flutterust.

[–] [email protected] 4 points 4 months ago (1 children)

Kotlin-rust hasnt had updates in 7 years, Flutterrust in 2 years

[–] Rustmilian 3 points 4 months ago* (last edited 4 months ago)

For Flutter there's also flutter_rust_bridge. But for Kotlin it's pretty much the best you have without having to write your own bindings from scratch, alternatively there's uniffi-rs but it can be tricky to get working with kotlin.

[–] [email protected] 2 points 4 months ago (1 children)

Iced maybe? Not sure about mobile. Second Slint, it adapts the native style of various OSses

[–] Rustmilian 5 points 4 months ago* (last edited 4 months ago)

Iced is desktop and web only.
Slint for mobile is WIP for Android and not started for IOS.

[–] Disregard3145 0 points 4 months ago (1 children)
[–] [email protected] 3 points 4 months ago

It uses web-view. Not what OP is looking for.