All Versions
10
Latest Version
2.5
Avg Release Cycle
126 days
Latest Release
98 days ago

Changelog History

  • v2.5

    July 15, 2019

    🚀 A new release of J2ObjC is available, 2.5. This is an update to 2.4 with bug fixes and the following changes:

    Translator

    • The flag -external-annotation-file allows to provide the most common J2ObjC annotations in a separate file. This feature is useful when you only need to add J2ObjC annotations to transpile an existing library (e.g. adding @WeakOuter to break retain cycles). We are using it to transpile our JRE: j2objc.jaif
    • The flag --reserved-names helps to extend the data already present in reserved_names.txt

    Java Runtime Emulation

    • java.text.BreakIterator was added. Keep in mind that it requires the jre_icu library which will impact the size of your application.
    • ⚡️ ICU resources were updated to version 60b.

    Other

    • ⚡️ Updated bundled Mockito to version 2.23.4.
    • ⚡️ Updated the protocol buffers dependency to 3.7.1.

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.4

    March 15, 2019

    🚀 A new release of J2ObjC is available, 2.4. This is an update to 2.3 with the following changes:

    Translator

    👍 Experimental support of new Java language features:

    • Effectively final variables in try-with-resources.
    • Diamond Operator for Anonymous Inner Classes.
    • Private methods in interfaces.
    • Local-variable type inference.

    ✅ You can test this new functionality by running the translator with Java 11.

    JAVA_HOME=`/usr/libexec/java_home -v 11` path/to/j2objc path/to/java_file
    

    🏗 If you build your own distribution and want to support these features, please check scripts/build_distribution.sh for more details.

    Java Runtime Emulation

    • CompletableFuture was added.

    Other

    • ⚡️ Updated bundled Mockito to version 1.10.19.
    • Bundled @WeakOuter can be used also as a type annotation. This allows you to apply the annotation to anonymous classes.

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.3.1

    January 11, 2019

    🚀 A new release of J2ObjC is available, 2.3.1 (minor update to 2.3). Main changes:

    Java Runtime Emulation

    • ⚡️ Several libraries were updated to the Android Oreo version.

    🐛 Bug fixes

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.3

    November 27, 2018

    🚀 A new release of J2ObjC is available, 2.3 (update to 2.2). Main changes:

    Java Runtime Emulation

    • 👌 Support for java.time package.
    • 👍 Subset of android.icu to support time zones (mainly to enable java.time).
    • SSL socket client implementation (thanks to @FD- for providing a reference implementation).

    Other

    • ➕ Added Android version of Guava library.
    • ✂ Removed obsolete 32-bit library architectures.
    • ➕ Added support for arm64_32 architecture in watchOS binaries (thanks to @gianlucabertani for the pull request).

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.2

    September 10, 2018

    🚀 A new release of J2ObjC is available, 2.2. This is an update to 2.1.1 with bug fixes and the following changes:

    Translator

    • The file prefixes.properties no longer needs to be bundled with the app because reflection support for name mappings is automatically generated.
    • 🏗 The flag --swift-friendly now generates class properties (instead of static accessor methods) for static variables and enum constants. If this change breaks your build, you can get the previous behavior by replacing --swift-friendly with --static-accessor-methods --nullability.
    • 📦 Making sure that --prefixes respects the definition order of package prefixes (Issue #995).
    • 👌 Support for nullability annotations declared as type annotations.

    Java Runtime Emulation

    • ➕ Added fallback Xalan properties (Issue #978).

    Other

    • ➕ Added IntelliJ project files.
    • ⚡️ Updated bundled Guava to version 25.1.
    • ➕ Added Swift sample project.

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.1.1

    April 23, 2018

    🚀 A new release of J2ObjC is available, 2.1.1. This is an update to 2.1 with the following changes:

  • v2.1

    September 10, 2018

    🚀 A new release of J2ObjC is available, 2.1. This is an update to 2.0.5 with several bug fixes and the following changes:

    Translator

    • The j2objc and cycle_finder tools now run using Java 9. Note: no Java 9 API have been added, since there aren't any Android equivalents.
    • ➕ Added option to generate outputs for all specified Java sources to a single .h/.m file pair.
    • ➕ Added support for AAR files on the classpath.

    Java Runtime Emulation

    • ➕ Added java.security digest stream classes.
    • 🆕 New character encodings: GBK, GB18030, Big5-HK.
    • ✂ Removed okio from build, as it was no longer used.

    WatchOS Libraries

    🍎 There are now separate static libraries for watchOS in the distribution in lib/watchos. This avoids Xcode warnings including the equivalent architecture from the default iOS libraries, like is done for macOS (lib/macosx) and tvOS (lib/appletvos).

    Example Projects

    🍎 The example projects are now included in the distribution bundle. These include an iOS "hello world" app, macOS protocol buffer command-line examples, and a Contacts app.

    • 🏗 The Contacts app demonstrates how to build a J2ObjC project with Bazel.

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.0.5

    October 24, 2017

    🚀 A new release of J2ObjC is available, 2.0.5. This is an update to 2.0.4.1 with several bug fixes and the following changes:

    👍 Swift Support:

    • 🛠 Fixed generation of JRE.framework/JRE.h to only include public header files.
    • ⚡️ Updated function prototypes to avoid strict-prototype warnings from Xcode 9.
    • Annotates copyWithZone: argument as nullable.

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.0.4

    September 28, 2017

    🚀 A new release of J2ObjC is available, 2.0.4. This is an update to 2.0.3 with several bug fixes and the following changes:

    J2ObjC translator:

    • 🚚 Eclipse JDT dependencies are removed.
    • 👍 Android Library (*.aar) files are now supported in classpath arguments.
    • 0️⃣ Runs when Java 9 JDK is system default.
      • NOTE: Java 8 still needs to be installed (both co-exist)

    JRE emulation:

    • 👍 nil_chk() has been changed to a macro, to provide better stack traces.

    ⚡️ JRE sources updated to latest from Android-nougat:

    • java.net
    • 👍 XML SAX support: org.xml.sax, XML drivers

    ✅ Thanks for all the bug reports, especially those with tests and/or patches -- we're a small team, and appreciate the help!

  • v2.0.4.1

    October 03, 2017

    🚀 A new release of J2ObjC is available, 2.0.4.1. The source for this release is unchanged from 2.0.4, but it was rebuilt with the correct protocol buffer library (3.3.0).