Happy 2025! Thank you for your support of
the J2ObjC project. We thought we'd share with you how the project will evolve in the coming months.
There are two main changes to the project moving forward:
First, we are rapidly adopting new Java releases, both internally and externally via J2ObjC's compiler and JRE support, as well as Android JRE API (which J2ObjC forks). This will allow developers working with cross-platform Java 21 to use the latest Java language features and a large subset of the JRE API (web app support is via
J2CL).
Second, to focus the project's resources toward maintaining a high-quality translator, we'll be making some changes to how the project is supported:
- The J2ObjC.org site will be updated to focus on existing project use, not new projects (Kotlin MP is recommended for them). Its docs will assume that J2ObjC users can build the project from source.
- There won't be any more binary releases on https://github.com/google/j2objc, and the existing ones removed. (J2ObjC's release was already too big for GitHub, which is why it wasn't updated last year.)
- The j2objc-annotations jar is versioned, so it will be updated only as those annotations change. When that happens, the whole source base will be tagged to keep everything synced.
- We recommend that projects needing a released version of J2ObjC build it from a recent commit, and use the commit's short SHA (in the title when you click on the commit in GitHub).
- J2ObjC source code will remain open-source. If you need major changes, we encourage you to fork and reuse it as best suits your project.
Thanks, everyone, for your support of and contributions to the J2ObjC project!