Introduction¶
Intel’s Multi-OS Engine Technology Preview lets you use Java* capabilities to develop native mobile applications for Apple iOS* and Android* devices providing the native look, feel and performance. This technology provides a stand-alone plug-in that integrates into Android Studio* on Windows* and/or Apple macOS development machines.
An application starts as an Android project in Android Studio. The Multi-OS Engine configures the project to build and run as an iOS app on the iOS simulator that you can invoke from Android Studio or on a real device.
The key features of Multi-OS Engine are:
- Java support on iOS devices.
- Developing iOS apps in Java instead of Apple Objective-C*.
- Direct access to platform-specific UI components for either of the supported platforms.
- Native multithreading support.
- Debugging apps on real devices or the iOS simulator integrated with Android Studio.
- Running/deploying apps from Apple App Store*.
To get started, follow the instructions in the Getting Started section.
Multi-OS Engine Architecture Overview¶
Multi-OS Engine Runtime is based on the modern Android ART*, which is the runtime component of Android that runs Java apps.
ART has a list of features that provide optimal performance for apps on iOS devices:
- Ahead-of-time (AOT) compilation, which can improve app performance.
- Use of the same Java runtime libraries as Android, which simplify cross-platform app development.
- Enhanced memory management and garbage collection.
A compiled Multi-OS Engine app contains the following components:
- Compiled Java sources.
- Resources.
- Standard (iOS) library bindings.
- Third party native libraries and bindings.
- Nat/J native library for the Java to native binding that enables the implementation of native classes and functions in pure Java and makes them available to the native side.
- The specialized ART virtual machine (VM) with Multi-OS Engine ART enhancements.
When an iOS app launches, it starts the ART VM and executes the pre-compiled code on it.
iOS* Development Workflow with the Multi-OS Engine¶
- Create an Android project in Android Studio. To configure your iOS app, add a new configuration Multi-OS Engine Project. Other steps below explain only the creation of iOS* App with Multi-OS Engine, and assume you are aware of the build process of an Android app in Android Studio.
- Design a User Interface (UI) for iOS in Apple Xcode*.
- Bind UI to Java* using the NatJ runtime libraries.
- Android Studio is equipped with the Intellisense capabilities to bind the action handlers to the UI elements for iOS.
- A local build is supported on macOS development machines where iOS Simulators can be invoked. For Windows* development systems, cloud build is supported.
- iOS applications can be run on the Simulator integrated into Android Studio by the Multi-OS Engine configuration or directly on the device itself using USB debugging.
- Launch your app by publishing and downloading it from the Apple App Store* for iOS* devices or the Google Play Store* for Android devices.
- Reiterate the process. Your goal is to reuse as much code as possible between these two apps.