Rococoa
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.
⚠ Caution
- this project will quit supporting intel chips
- supported macos will be after Ventura also
Limitation
obj-c class's method call with float argument doesn't work works → new limitation: arguments should be less equal 8
- obj-c block
- methods have varargs don't work (works less equal 8?)
Install
Usage
How To
References
TODO
- NSUrl tags (wip)
- obj-block (wip)
CIFilter (done)
- CGImage fails around density related
tall free bridging? none
cglib
is mostly suspended
cglib
recommends ByteBuddy that is based on asm
same as the cglib
(done)
- cache classes (ByteBuddy)
clean up logging
native library loading
https://github.com/scijava/native-lib-loader
i don't like to locate librococoa.dylib
at src/main/resources
for jitpack
copy to like src/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
- 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
Original
Fair Warning
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