Skip to content

@tomball tomball released this Apr 21, 2020 · 57 commits to master since this release

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

iOS 11.0 Support (Apple release notes)

  • Frameworks are now built as XCFramework bundles.
  • Hello and HelloSwift examples can now be built using Mac Catalyst.

Translator

Java Runtime Emulation

  • Android's nullability annotations for the JRE. This reduces optional types when transpiled code is imported into Swift.
  • Updated several packages to Android Pie.

Other

  • Updated the protocol buffers dependency to 3.11.1.
  • Added Xalan's META-INF/services resources to its framework.

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

Assets 3
2.5

@antonio-cortes-perez antonio-cortes-perez released this Jul 15, 2019 · 240 commits to master since this release

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!

Assets 3
2.4

@antonio-cortes-perez antonio-cortes-perez released this Mar 15, 2019 · 341 commits to master since this release

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!

Assets 3

@antonio-cortes-perez antonio-cortes-perez released this Jan 11, 2019 · 425 commits to master since this release

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!

Assets 3
2.3

@antonio-cortes-perez antonio-cortes-perez released this Nov 27, 2018 · 476 commits to master since this release

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!

Assets 3
2.2

@antonio-cortes-perez antonio-cortes-perez released this Sep 10, 2018 · 568 commits to master since this release

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!

Assets 3

@tomball tomball released this Apr 23, 2018 · 719 commits to master since this release

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

Assets 3
2.1

@tomball tomball released this Sep 10, 2018 · 722 commits to master since this release

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!

Assets 3

@tomball tomball released this Oct 24, 2017 · 841 commits to master since this release

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!

Assets 3

@tomball tomball released this Oct 3, 2017 · 855 commits to master since this release

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).

Assets 3
You can’t perform that action at this time.