Description
J2ObjC is an open-source command-line tool from Google that translates
Java source code to Objective-C for the iOS (iPhone/iPad) platform. This tool
enables Java source to be part of an iOS application's build, as no editing
of the generated files is necessary. The goal is to write an app's non-UI
code (such as application logic and data models) in Java, which is then
shared by web apps (using GWT), Android apps,
and iOS apps.
J2ObjC supports most Java language and runtime features required by
client-side application developers, including exceptions, inner and
anonymous classes, generic types, threads and reflection. JUnit test
translation and execution is also supported.
J2ObjC is currently beta quality. Several Google projects rely on it, but
when new projects first start working with it, they usually find new bugs
to be fixed. If you run into issues with your project, please report them!
J2ObjC alternatives and similar libraries
Based on the "Miscellaneous" category.
Alternatively, view J2ObjC alternatives based on common mentions on social networks and blogs.
-
OpenRefine
OpenRefine is a free, open source power tool for working with messy data and improving it -
javaslang-circuitbreaker
Resilience4j is a fault tolerance library designed for Java8 and functional programming -
Codename One
Cross-platform framework for building truly native mobile apps with Java or Kotlin. Write Once Run Anywhere support for iOS, Android, Desktop & Web. -
Smooks
An extensible Java framework for building event-driven applications that break up XML and non-XML data into fragments for data integration
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of J2ObjC or a related project?
README
J2ObjC: Java to Objective-C Translator and Runtime
Project site: https://j2objc.org J2ObjC blog: https://j2objc.blogspot.com Questions and discussion: https://groups.google.com/group/j2objc-discuss
What J2ObjC Is
J2ObjC is an open-source command-line tool from Google that translates Java source code to Objective-C for the iOS (iPhone/iPad) platform. This tool enables Java source to be part of an iOS application's build, as no editing of the generated files is necessary. The goal is to write an app's non-UI code (such as application logic and data models) in Java, which is then shared by web apps (using GWT), Android apps, and iOS apps.
J2ObjC supports most Java language and runtime features required by client-side application developers, including exceptions, inner and anonymous classes, generic types, threads and reflection. JUnit test translation and execution is also supported.
J2ObjC is currently beta quality. Several Google projects rely on it, but when new projects first start working with it, they usually find new bugs to be fixed. If you run into issues with your project, please report them!
What J2ObjC isn't
J2ObjC does not provide any sort of platform-independent UI toolkit, nor are there any plans to do so in the future. We believe that iOS UI code needs to be written in Objective-C, Objective-C++ or Swift using Apple's iOS SDK (Android UIs using Android's API, web app UIs using GWT, etc.).
J2ObjC cannot convert Android binary applications. Developers must have source code for their Android app, which they either own or are licensed to use.
Requirements
- JDK 1.8 or JDK 11 (see announcement)
- Mac workstation or laptop
- OS X 10.12 or higher
- Xcode 8 or higher
License
This library is distributed under the Apache 2.0 license found in the LICENSE file. The protocol buffers library is distributed under the same BSD license as Google's protocol buffers. See its README and LICENSE.
Running on GNU/Linux
To build and run on GNU/Linux, install the Darling project, then following its Compile and Run a Program example. Please note that j2objc is only supported on iOS/macOS.
*Note that all licence references and agreements mentioned in the J2ObjC README section above
are relevant to that project's source code only.