atlantafx
jmh
atlantafx | jmh | |
---|---|---|
15 | 26 | |
679 | 2,034 | |
- | 3.1% | |
7.5 | 6.3 | |
5 months ago | 10 days ago | |
Java | Java | |
MIT License | GNU General Public License v3.0 only |
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.
atlantafx
-
AtlantaFX 2.0 released
The full changelog is here: https://github.com/mkpaz/atlantafx/releases/tag/v2.0.0
-
Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
AtlantaFX & CSSFX for styling in JavaFX
-
Win32 App Isolation
JVM UI isn't so bad. I've written some pretty modern looking UI with it. The sophisticated controls are all there.
Modern JavaFX theme: https://github.com/mkpaz/atlantafx
Modern Swing theme: https://github.com/JFormDesigner/FlatLaf
And these days Compose Multiplatform: https://www.jetbrains.com/lp/compose-multiplatform/
I tend to use Kotlin rather than Java but of course Java is perfectly fine too. You can also use Clojure.
If you use any of those frameworks you can distribute to Win/Mac/Linux in one command with Conveyor. It's free for open source apps and can do self-signing for Windows if you don't want to pay for the certificates or the Store (but the Store is super cheap these days, $19 one off payment for an individual). Also supports Electron and Flutter if you want to use those.
From those frameworks you can then access whatever parts of the Windows API you want. Flutter even has WinRT bindings these days! So it's not quite so bad.
-
Podman Desktop 1.0
Objectively by what measure?
Bear in mind that there are alternatives: JavaFX and Compose for Desktop are the ones I know best. They can be used from high level and popular languages. JavaFX is particularly good for desktop apps and can be compiled down to purely native code that starts as fast as an app written in C++ (likewise for Compose but the experiments with that are newer).
There are some downsides: fewer people know them than with HTML. There are a few tweaks like window styles on macOS it could use to be more modern. On the other hand, it's easy to learn and you benefit from a proper reactively bindable widget library, like table and tree views if you need those. For developer tools such widgets can be useful.
There's a modern theme for JavaFX here:
https://github.com/mkpaz/atlantafx
CfD uses Material Design of course, but you can customize it.
Having written desktop apps of varying complexity in all these frameworks, I can't say Electron is clearly superior. It is in some cases (e.g. if I was wanting to write a video conferencing app then it makes sense to re-use Google's investment into Hangouts/Meet for that), but it's also worse in some cases. For instance the multi-process model constantly gets in the way, but you can't disable it as otherwise XSS turns into RCE.
- FlatLaf 3.1 (and 3.0) - Swing Look and Feel
-
A new connection manager and remote file explorer created with Java(FX) - X-Pipe Status Update
The JavaFX styling was completely switched to AtlantaFX in order to achieve the best possible look. This library is honestly the best that you can get if you want your application to have a good and uniform look + dark mode support that doesn't look like we are in the year 2010:
-
New AtlantaFX themes
I was really inspired of Dracula color palette, so I decided to spend some time to create a couple of new themes for AtlantaFX. They still need some polishing, but now the project supports 7 themes in total. Here's some preview of Dracula theme and the new classic tab style.
-
Migrating a JavaFX app to AtlantaFX themes
The video shows different screens of a JavaFX app before and after migrating from a custom styling (left) to AtlantaFX themes (right). In the first step we were primarily focused on colors/borders and dark mode, so many of the controls are still based on JFoenix (obsolete) and will be migrated in the next step.
-
Is JavaFX a viable solution for this project?
That said if you like Java and feel productive you absolutely can use it to build great desktop apps. Check out https://github.com/mkpaz/atlantafx for great modern look and feel. Lots of other great resources.
-
Dark mode for JavaFX/Swing is out! please leave a star if you like it!
Technically, it's not a theme, because it works on top of Modena, you only recolored some controls. Check AtlantaFX, it supports all JavaFX controls. You can even compile your own theme from it.
jmh
- Experimenting with GC-less (heap-less) Java
-
Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
JMH for benchmarks
-
Scala collections benchmark - revisited
I would recommend using JMH instead.
- What are some advantages to Java devs learning assembly?
-
Is calling a method with reflection slower than calling a method normally? If so, by how much?
Reflection is probably very roughly between 10 and 1000 times slower. Why don't you measure it yourself using JMH?
- I benchmarked kotlin rust and go. The results will shock you , or not.
-
Need help navigating the Java ecosystem (coming from C++)
Aleksey Shipilev is another such leader, whom is especially knowledgeable about the internals of the JVM. His writings are invaluable. He is (was) the lead of the Java microbenchmark framework (JMH} which is how one would write small performance experiments in Java, and learn what really makes a difference or now.
- Are Long better than Integer as keys for a Map?
-
Threads vs Coroutines - ParallelMap Performance
In the last episode we implemented a parallelMap operation using streams, raw threads, a threadpool with futures, and coroutines. At first glance the raw threads was quickest, followed by futures, coroutines and then streams. In this, part 56 of an exploration of where a Test Driven Development implementation of the Gilded Rose stock control system might take us in Kotlin, we investigate the performance of the different functions further, in particular digging down into why coroutines seem to be slow and finding a way to speed them up. We also find a way to use a particular ForkJoinPool to run the streams code, making it as fast as the others (bar the raw threads). Frankly we only use very rough benchmarks here, with no statistical testing except 'it looks like'. That's OK for gross differences, but is highly suspect when deciding which of two similarly performant approaches is faster. For that check out JMH and you could watch my video from KotlinConf 2017
-
Just another way to run JMH benchmark with Eclipse
A few months ago, we started to use JMH in our project to test and find performance issues. The tool provides multiple modes and profilers, and we found this useful for our purposes.
What are some alternatives?
instancio - A library that creates fully populated objects for your unit tests.
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events [Moved to: https://github.com/async-profiler/async-profiler]
FlatLaf - FlatLaf - Swing Look and Feel (with Darcula/IntelliJ themes support)
opentelemetry-java-instrumentation - OpenTelemetry auto-instrumentation and instrumentation libraries for Java
opal - Plays relaxing music in the background
OpenJ9 - Eclipse OpenJ9: A Java Virtual Machine for OpenJDK that's optimized for small footprint, fast start-up, and high throughput. Builds on Eclipse OMR (https://github.com/eclipse/omr) and combines with the Extensions for OpenJDK for OpenJ9 repo.
JavaFX-Dark-Theme - A complete CSS stylesheet to set a dark theme in your JavaFX UI.
async-profiler - Sampling CPU and HEAP profiler for Java featuring AsyncGetCallTrace + perf_events
flexmark-java - CommonMark/Markdown Java parser with source level AST. CommonMark 0.28, emulation of: pegdown, kramdown, markdown.pl, MultiMarkdown. With HTML to MD, MD to PDF, MD to DOCX conversion modules.
go - The Go programming language
Recaf - The modern Java bytecode editor
Arthas - Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas