Introducing WaterUI 0.2.0 - Out first usable version as a new experience for Rust GUI

103 points real-lexo 54 comments

https://preview.redd.it/fa8fu4ybc17g1.png?width=1920&format=png&auto=webp&s=d64db2b4df9189125eac66e8cfdf2203fbc1d911

I started to create WaterUI since I love the idea of SwiftUI but was eager to bring it to all platforms with better type safety and performance. It is clean, ergonomic, and type-safe. I believe a GUI kit should not be Write once, run anywhere but Learn once, apply anywhere, since the differences between platforms cannot be fully encapsulated or erased.

Two months ago, I released WaterUI 0.1.0. It contains basic reactivity and native view rendering functionality, but users had to handle complex build configuration by themselves. There was a lack of components and examples, memory leak bugs, and support for only Apple platforms.

Today, we solved these most annoying issues in 0.1.0 by introducing a few enhancements:

  • A brand-new CLI tool water, a single binary without dependencies on cargo-ndk or cargo-xcode. Playground mode for fast launch and experimentation.
  • First-class Android support.
  • A brand-new, Rust-driven layout system, providing consistent layout behavior across platforms. Built-in stack, overlay, grid, etc., powered by the Layout trait and fully customizable.
  • Media components for displaying video or photos.
  • Refactored Apple backend, switching to UIKit/AppKit for better control.
  • Hot reload.
  • Theme system with dynamic fonts and colors.
  • WebGPU (HDR) and Canvas (SDR). (Note: Canvas functionality is only available on the dev branch, since Vello's released version doesn't upgrade to wgpu27 yet.)
  • Gestures, A11Y, Markdown, List, Table.

I worked on it for numerous hours, and I'm super happy to see so many people love it. I'm glad to listen to your feedback or for you to open an issue for feature requests on GitHub.

BTW: Now we have an official website. It looks nice!