I’ve been on a long-term quest to find a simple, fast, and user-friendly way to develop native applications for a variety of platforms, and this page holds the results of that research.
What I am looking for is something that is:
- Not Electron: I want to be able to write code that runs natively on the target platform without having to rely on a web browser or a large runtime.
- Fast: I want to be able to iterate quickly and not have to wait for a long time for builds or deployments.
- Simple: I want to be able to write code that is easy to understand and maintain.
- Native Looking: I want to be able to write code that looks and feels like a native application on the target platform.
- Portable: I want to be able to write code that runs on a variety of platforms without having to rewrite it from scratch.
- Open-source: I want to be able to use code that is open-source and doesn’t have a lot of restrictions on how it can be used.
We have lost the ability to do RAD (Rapid Application Development) due to the prevalence of web applications, and I personally don’t like that, so I’ve been looking for a way to fix that within a small set of tools I want to build.
Resources
Core Language | Date | Platform | Link | Notes |
---|---|---|---|---|
C | 2024 | Windows, Linux, macOS | FLTK | a classic, but aesthetically challenged |
C# | 2023 | Avalonia | XAML-based. Likely the best approach for bigger apps. Not very native-looking on the Mac, but has good documentation. |
|
C++ | wxWidgets | an old classic with completely native looks and lots of language bindings |
||
Clojure | HumbleUI | a cross-platform GUI toolkit. Not aiming to look native. |
||
Go | 2024 | spot | a React-like destkop GUI toolkit for Go that supports FLTK and Cocoa |
|
Lua | GLU | a Lua GUI toolkit using wxWidgets |
||
macOS, iOS | Bounces | a macOS/iOS IDE that allows for live reloading. Very nice, severely let down by a subscription model. |
||
2023 | Windows, Linux, macOS | wxlua | Lua bindings for wxWidgets |
|
macOS | lua-macos-app | a pure Lua/FFI implementation of a macOS app. Mind-bending. |
||
Rust | 2024 | Windows, Linux, macOS | Tauri | Uses native web renderer and widgets. Still requires JavaScript and CSS. |