All Versions
12
Latest Version
2.7
Avg Release Cycle
151 days
Latest Release
400 days ago

Changelog History
Page 1

  • v2.7 Changes

    September 18, 2020

    ๐Ÿš€ A new release of J2ObjC is available, 2.7. This is an update to 2.6 with bug fixes and the following changes:

    JRE Runtime Emulation

    • โšก๏ธ Sources updated to Android 10, full Java 8 API.
    • ๐Ÿ†• New packages:
      • java.nio.file
      • java.nio.file.attribute
      • java.nio.file.spi
      • javax.sql

    Translator

    • ๐Ÿ†• New memory model annotations, to avoid dangling pointers in generated code:
      • ZeroingWeak: generates a __weak annotation with ARC, WeakReference<T> with reference-counting.
      • OnDealloc: annotates a method to be called from the dealloc Objective C method.

    Other

    • ๐Ÿš€ The release distribution has been split into two zip files, with the frameworks directory in the j2objc-2.7-frameworks.zip file. This was necessary to work around GitHub release maximum sizes. Unzipping both zip files from the same directory creates the full distribution, and is only necessary if your iOS project uses J2ObjC frameworks.

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

  • v2.6

    January 17, 2020
  • v2.5 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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 Changes

    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!