Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.
/ notcute Public archive

(No longer maintained) A cross-platform desktop/mobile Widget Toolkit/Game Engine for Java.

License

Notifications You must be signed in to change notification settings

Tianscar/notcute

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notcute

Discord

An abstract graphics layer based on Android GUI, AWT, SWT and so on.

"Any problem in computer science can be solved with another layer of indirection [except the problem of too many layers of indirection]."
Notcute is not a framework built from scratch, just an indirection layer over existing frameworks.

Compatibility

  • Java SE: Java 8 or later
  • Android: SDK 16 (version 4.1) or later
  • If you want to share code between platforms, you should use a subset of Java 8

Design

  • A cross-platform desktop/mobile Widget Toolkit/Game Engine for Java.
  • Modular and flexible.
  • Can be embedded to related GUI frameworks (Android GUI, AWT, etc).
  • Using Qt-like signal/slot instead of traditional callbacks, to prevent the 'callback hell'.

Backends

ui-core
├── ui-android
│   └── Android GUI
│       └── Android
├── ui-awt
│   └── AWT
│       ├── Cocoa
│       │   └── macOS
│       ├── Win32
│       │   └── Windows
│       └── X11
│           ├── *nix⁄X11
│           └── XWayland
│               └── *nix⁄Wayland
├── (WIP) ui-ikvm
│   ├── UWP
│   │   ├── Windows Phone
│   │   └── Windows⁄UWP
│   └── Win32
│       └── Windows
├── (WIP) ui-javafx
│   └── JavaFX
│       ├── Cocoa
│       │   └── macOS
│       ├── GTK
│       │   ├── *nix⁄Wayland
│       │   └── *nix⁄X11
│       ├── JavaFXPorts
│       │   ├── Android
│       │   └── iOS
│       └── Win32
│           └── Windows
├── (WIP) ui-qtjambi
│   └── Qt-Jambi
│       └── Qt
│           ├── Android
│           ├── macOS
│           ├── *nix⁄Wayland
│           ├── *nix⁄X11
│           └── Windows
├── (WIP) ui-robovm
│   └── CocoaTouch
│       └── iOS
├── (WIP) ui-swt
│   └── SWT
│       ├── Cocoa
│       │   └── macOS
│       ├── GTK
│       │   ├── *nix⁄Wayland
│       │   └── *nix⁄X11
│       └── Win32
│           └── Windows
└── (WIP) ui-teavm
    └── TeaVM
        └── HTML5
            └── Modern Browsers

TODO List

Notes

Running with AWT/Win32 or AWT/Cocoa backend & Java 16+

Add the following lines to the JVM args:

--add-exports java.desktop/sun.awt=ALL-UNNAMED

Running with AWT/X11 backend & Java 16+

Add the following lines to the JVM args:

--add-exports java.desktop/sun.awt=ALL-UNNAMED
--add-exports java.desktop/sun.awt.X11=ALL-UNNAMED

Contributing

The Notcute project currently maintained by only me.
Since I'm not a skilled programmer, the code may be badly written...
So contributions & PRs welcome!

License

Apache-2.0 (c) Tianscar

This project currently uses some code from the following projects:

Apache-2.0 Apache Harmony
Apache-2.0 FlatLaf
MIT AudioCue-Maven
MIT sig4j

This project currently uses the following libraries as dependencies:

Apache-2.0 jnr-ffi
BSD-3-Clause TwelveMonkeys
LGPL-2.1 MP3SPI
LGPL-2.1 VorbisSPI
LGPL-2.1 jFLAC

About

(No longer maintained) A cross-platform desktop/mobile Widget Toolkit/Game Engine for Java.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages