swift-cross-ui
owlkettle
swift-cross-ui | owlkettle | |
---|---|---|
3 | 8 | |
487 | 362 | |
- | - | |
8.8 | 8.5 | |
13 days ago | 9 days ago | |
Swift | Nim | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
swift-cross-ui
-
Writing Gnome Apps with Swift
For another SwiftUI-like wrapper, see also https://github.com/stackotter/swift-cross-ui (used by Adawaita to generate widgets, and mentioned in other comments).
The key premise of this approach is to provide a SwiftUI-like declarative wrapper around Gnome functionality. It's unclear what it adds over swift-cross-ui.
SwiftUI itself has growing pains mainly around being on the right thread for processing/updates and getting data binding right.
Blog entries on swift.org or from Apple tend to be little demos that show the happy path, but when discussing new frameworks (like a Gnome wrapper) or platforms (like the recent embedded), I'd like more demonstration that the authors understand and address key issues and will sustain development. Cross-platform UI frameworks get complicated quickly and have a long tail of issues (cf Flutter, Java/Eclipse, et al) that can be blockers for clients/users. For Swift it doesn't help to have multiple concurrency models and obviously different behaviors on apple platforms and Linux (where UI is not officially tested).
-
Mousetrap.jl: a GUI library for Julia and C++ that fully wrap GTK4
Some interesting stuff happening here [1] and here [2] too.
[1] https://github.com/stackotter/swift-cross-ui/tree/main
- SwiftCrossUI - cross-platform SwiftUI-like UI framework built on SwiftGtk
owlkettle
-
Writing Gnome Apps with Swift
This is really cool! I love the JSX-like approach to UI and it's a shame it's not so common on desktop. https://github.com/can-lehmann/owlkettle is the only thing I find comparable.
- Owlkettle – declarative GUI framework for Nim
-
Nim v2.0 Released
Ones that have not been mentioned so far:
nlvm is an unofficial LLVM backend: https://github.com/arnetheduck/nlvm
npeg lets you write PEGs inline in almost normal PEG notation: https://github.com/zevv/npeg
futhark provides for much more automatic C interop: https://github.com/PMunch/futhark
nimpy allows calling Python code from Nim and vice versa: https://github.com/yglukhov/nimpy
questionable provides a lot of syntax sugar surrounding Option/Result types: https://github.com/codex-storage/questionable
ratel is a framework for embedded programming: https://github.com/PMunch/ratel
cps allows arbitrary procedure rewriting to continuation passing style: https://github.com/nim-works/cps
chronos is an alternative async/await backend: https://github.com/status-im/nim-chronos
zero-functional fixes some inefficiencies when chaining list operations: https://github.com/zero-functional/zero-functional
owlkettle is a declarative macro-oriented library for GTK: https://github.com/can-lehmann/owlkettle
A longer list can be found at https://github.com/ringabout/awesome-nim.
-
Simple Gamepad Support
Although for a GUI (if I even made one, rather than just a fixed/hardcoded setup) I'd probably use Owlkettle(though there are some things I don't like about it, see closed issue 16).
-
Forte! A new way of writing Gtk apps for GNOME.
A similar library in nim is https://github.com/can-lehmann/owlkettle
-
How should one start a GUI library
There's also Owlkettle that seems a bit easier/cleaner IMO, though when I tried it I had some issues (clunky container workflow, wanting better scaling) and would prefer something similar using Qt.
- Show HN: Owlkettle – A Declarative user interface framework based on GTK 4
What are some alternatives?
OpenSwiftUI - WIP — OpenSwiftUI is an OpenSource implementation of Apple's SwiftUI DSL.
Relm4 - Build truly native applications with ease!
Mousetrap.jl - Finally, a GUI Engine made for Julia
ImThemes - Dear ImGui style browser and editor written in Nim
CImGui.jl - Julia wrapper for cimgui
NiGui - Cross-platform desktop GUI toolkit written in Nim
Tokamak - SwiftUI-compatible framework for building browser apps with WebAssembly and native apps for other platforms
nimgram - An MTProto client written in Nim 👑
SwiftGtk - A Swift wrapper around gtk-3.x and gtk-4.x that is largely auto-generated from gobject-introspection
futhark - Automatic wrapping of C headers in Nim
OpenCombine - Open source implementation of Apple's Combine framework for processing values over time.
awesome-nim - A curated list of awesome Nim frameworks, libraries, software and resources.