A command-line tool that translates Java source code to Objective-C for iOS app development, enabling code sharing across platforms.
J2ObjC is a command-line tool developed by Google that translates Java source code into Objective-C for iOS applications. It solves the problem of code duplication by allowing developers to write business logic and data models once in Java and reuse them across Android, web (via GWT), and iOS platforms. The tool integrates directly into the iOS build process, generating ready-to-use Objective-C files.
Mobile development teams building cross-platform applications who want to share non-UI Java code between Android and iOS. It's particularly useful for organizations with existing Java codebases looking to expand to iOS.
Developers choose J2ObjC because it provides a practical approach to code sharing without forcing UI compromises, supports comprehensive Java features needed for client applications, and is backed by Google with real-world usage in production projects.
A Java to iOS Objective-C translation tool and runtime.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Translates key Java features like exceptions, generics, and reflection, enabling complex client-side logic reuse across platforms.
Generated Objective-C files integrate directly into Xcode builds without manual editing, streamlining iOS development.
Allows writing non-UI code once in Java for reuse on Android, web via GWT, and iOS, reducing duplication.
Supports translation and execution of JUnit tests on iOS, ensuring consistent behavior and testing across platforms.
Used in several Google projects, providing real-world validation and ongoing maintenance, though it's still beta quality.
Admitted as beta quality; new projects often encounter bugs that require reporting and workarounds, impacting stability.
Generates Objective-C code, not Swift, which may not align with modern iOS development trends and requires bridging for Swift projects.
Requires JDK 21, macOS, and Xcode 16.3+, limiting development to specific setups and excluding native Linux support.
Forces separate native UI development for iOS, adding complexity and preventing shared UI code across platforms.