Rococoa is a generic Java binding to the Mac Objective-C object system. It allows the creation and use of Objective-C objects in Java, and the implementation of Objective-C interfaces in Java.
- this project will quit supporting intel chips
- supported macos will be after Ventura also
obj-c class's method call with float argument doesn't workworks → new limitation: arguments should be less equal 8- obj-c block
- methods have varargs don't work (works less equal 8?)
- Basics
- CIFilter Java2D BufferedImageOp
- CoreML
- iTunes Library
- AudioUnit Java MIDI SPI synthesizer
- CoreMidi Java MIDI SPI
- AVSpeechSynthesizer Java Speech API
- HEIF Java ImageIO SPI
- MTLibrary
- KeyChain Java crypto Keystore SPI
- Vision Detecting Human Body Poses in Images
- https://github.com/ibinti/bugvm
- https://gitlab.com/axet/apple
- https://github.com/multi-os-engine/moe-mac-core
- https://github.com/dthommes/jcocoa
- https://github.com/allertonm/Couverjure
- https://github.com/shannah/Java-Objective-C-Bridge (minecraft uses)
- gamepad
- obj-block
- https://github.com/nativelibs4java/BridJ/
- http://cocoawithlove.com/2009/10/how-blocks-are-implemented-and.html
- http://www.opensource.apple.com/source/libclosure/libclosure-38/BlockImplementation.txt
- https://clang.llvm.org/docs/Block-ABI-Apple.html
- https://github.com/ronaldoussoren/pyobjc/blob/77b98382e52818690449111cd2e23cd469b53cf5/pyobjc-core/Modules/objc/block_support.m
PyObjCFFI_MakeBlockFunction
- https://docs.rs/block/latest/block/
- https://github.com/mikeash/MABlockClosure
- https://github.com/PsychoH13/C-ObjC-Blocks
- alternative
- NSUrl tags (wip)
- obj-block (wip)
- how about panama?
CIFilter(done)- CGImage fails around density related
tall free bridging?none
cglib
is mostly suspended(done)cglib
recommends ByteBuddy that is based onasm
same as thecglib
- cache classes (ByteBuddy)
clean up loggingnative library loadinghttps://github.com/scijava/native-lib-loaderi don't like to locatelibrococoa.dylib
atsrc/main/resources
for jitpackcopy to likesrc/main/native-resource
(on only local not ci)include it in jar-plugin (on jitpack)OR set it as asset on github actions🎯retrieve the asset by ant task?
- dynamic method creation
- invokedinamic?
- ByteBuddy's method interception???
- CGController
- https://stackoverflow.com/a/65999820
- works on 14.3.1
- using block? avoidable?
- activate application
- separate same parts of jna-platform (like jna-platform-extended)
- deprecate rococoa-contrib
selector and java method binding for notification- exception in callback method cannot be shown as reason, shown as "Exception calling method for selector foo:"
OCInvocationCallbacks.java:170
Rococoa is very much work in progress. Much is subject to change. A lot isn't good enough not to change. But given the recent deprecation of the Java-Cocoa bridge, it's the best I've got. Just mind your head. And please give feedback
Oh, one big warning. Rococoa on PPC passes all but one of its tests, but that shows that it has an issue returning longs from Objective-C methods. Please do try it on PPC, and let me know any other problems.
image by copilot