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 thedealloc
Objective C method.
Other
- ๐ The release distribution has been split into two zip files, with the
frameworks
directory in thej2objc-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:
- Rebuilt with v3.5.1 protocol buffers, fixing #970.
- โ Generalized JUnitTestRunner so it accepts custom JUnit4 runners.
- ๐ Fixed race condition in build_distribution.sh.
-
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!