Our great sponsors
Sierra | skiko | |
---|---|---|
6 | 14 | |
100 | 1,671 | |
- | 2.2% | |
6.6 | 8.8 | |
about 1 month ago | 5 days ago | |
Java | Kotlin | |
Apache License 2.0 | Apache License 2.0 |
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.
Sierra
- FLiP Stack Weekly for 06-Jan-2023
-
Show HN: Sierra, a DSL for building Java Swing applications
Added an example demonstrating how to add an action listener to a button:
https://github.com/HTTP-RPC/Sierra/blob/master/sierra-test/s...
I'm not sure it's exactly what you were looking for, but hopefully it is similar enough.
Agreed. I said as much in my response to this issue that was opened the other day:
Great question. You can do this with a cell consumer (i.e. the with() method). See OrientationTest for an example (e.g. leftToRightButton, rightToLeftButton):
https://github.com/HTTP-RPC/Sierra/blob/master/sierra-test/s...
This looks really cool. Applying a thin layer over parts of the standard library is a very good idea IMO. Reduces the dependency tree but a lot.
One question (my Swing knowledge is at least 15 years old!): what's the simplest way to handle events using this? Eg taking the FormTest [1] example, how might one simply bind a model to the UI elements?
[1] https://github.com/HTTP-RPC/Sierra/blob/master/sierra-test/s...
skiko
-
Coffee beans are becoming extinct
All I know is that they use skiko.
- Show HN: Sierra, a DSL for building Java Swing applications
-
Build desktop applications with JetBrains' new UI style and Compose Desktop
It built on a render framework named skia, JetBrains create a kotlin mapping which named skiko for it.
-
JetBrains invites developers to join the Fleet Public Preview Program
Fleet does not use Compose, but it does use Skiko[1], which also provides binding for Skia[2] (the native graphics library also used by Chrome & Flutter).
The main difference between the libraries is that Skija provides Java/JVM bindings for Skia, whereas Skiko provides Kotlin bindings for Kotlin/JVM, Kotlin/JS, and Kotlin/Native targets. Of course Skiko's Kotlin/JVM bindings can be used with other JVM languages, not just with Kotlin.
-
Is there a cross platform 2d graphics library with a simple API like p5
How about skiko?
-
Jetbrains looks like it's about to release Compose ui for ios, and web!
They Merged today the functions that will be usaged on Compose for opening, closing and handling text inputs https://github.com/JetBrains/skiko/pull/455 (if I understand correctly). Currently, the examples rely on xcodegen file, based on the currently plugin that Compose has for Desktop, it provide alot of things including packaging for desktop, I think they will provide a xcodegen file automatically and use xcodegen behind the scenes to generate everything needed.
-
JetBrains Fleet: Next generation JetBrains IDE with built-in Rust support
But it does seem like the solution they're using for Fleet is different. Skia is the same graphics library used by Chromium and Flutter. I'll remain cautiously optimistic for now, but the quality of the text rendering and customization options will make or break it for me personally.
*skiko
-
Fast and Elegant Clojure: Idiomatic Clojure without sacrificing performance
sigh
Yeah. I am very bullish on Kotlin. Think it's probably the most exciting language evolving right now.
I went on a few-tweet minirant here about why:
https://twitter.com/GavinRayDev/status/1443279425311805440
But the tl;dr is that:
- There is Jetpack Compose currently, for Desktop, Web, and Android
- And Kotlin Native putting a large portion of resources into Skia bindings (JetBrains calls the lib "Skiko" for Kotlin Native https://github.com/JetBrains/skiko and "Skija")
It's very clear (and there are some employees which have confirmed this IIRC) that they are working on "Jetpack Compose Everywhere" that runs on iOS as well, from a single codebase.
There's the big Kotlin event going on right now, where they just announced the new WASM backend and changes in their compiler + IR commonizing/restructuring ("K2").
- https://blog.jetbrains.com/kotlin/2021/10/the-road-to-the-k2...
- https://www.youtube.com/watch?v=-pqz9sKXatw
The net result is that you wind up with a single language that you can use to write your backend API, your UI code (Jetpack Compose app deployed across Web/Android/iOS/Mac/Win/Linux, or transpile to JS/TS if you just want a web app, etc) and with Kotlin Native even your native, low-level code to integrate with existing C/C++ etc ecosystem.
KN already does automatic bindgen for C and Swift headers, they have direct C++ interop (like Swift does) on their future roadmap as a potential "todo".
All of this is mostly possible already -- I can do the same thing using IE Java, GraalVM, and a transpiler like Google's j2cl or bck2brwser (which is what Gluon uses for JavaFX on the web). Including the "native" part.
IE, here's a contribution I made to get GraalVM producing native binaries using Skia from the JVM + JNI Jetbrains Skia library:
https://github.com/HumbleUI/JWM/issues/158
But Kotlin is pushing the hardest to make this whole platform/stack from native <-> desktop <-> mobile <-> browser a seamless, unified experience. And you can feel it, when you try to do the "whole stack, every platform, one language" thing.
Sorry for the rant and wall of text!
What are some alternatives?
compose-multiplatform - Compose Multiplatform, a modern UI framework for Kotlin that makes building performant and beautiful user interfaces easy and enjoyable.
javafx-examples - A large collection of JavaFX examples demonstrating basic + advanced features of JavaFX.
Skia - Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
Jetpack-Compose-Playground - Community-driven collection of Jetpack Compose example code and tutorials :rocket: https://foso.github.io/compose
update4j - Create your own auto-update framework
JWM - Cross-platform window management and OS integration library for Java
nodegui - A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org
criterium - Benchmarking library for clojure
neutralinojs - Portable and lightweight cross-platform desktop application development framework
magicl - Matrix Algebra proGrams In Common Lisp.
dynamoit - A simple AWS DynamoDB viewer
quilc - The optimizing Quil compiler.