Porting an Android* Application to Apple iOS* Platform Using Intel's Multi-OS Engine

This article provides you an overview of steps required for porting an existing Android app to the iOS device using the Intel's Multi-OS Engine Technology Preview.

The process requires a local Apple OS X* development machine with Android Studio and Multi-OS Engine software installed. You can also use Apple Xcode* software to implement the UI of the app.

To get started, create a new project for Multi-OS Engine module with a local build configuration in Android Studio. For more details on how to create a project and set up build configurations, see the Creating Hello World Application for Android* and iOS* Platforms topic.

The porting process contains the following steps:


Identifying the App Logic and Separate the UI

Start the process with dividing the entire functionality of your app into common and UI modules. A common module implements the logic of the application that is common for both iOS and Android platforms. Each UI module implements specific UI functionality for a certain platform. This approach shares the common functionality between the Android and iOS modules.

Designing UI Using Multi-OS Engine

Provide the native iOS  look for you app. You can create the UI design with the Xcode Storyboard or Multi-OS Engine UI Designer with the UI logic from existing Android app.

See theese topics to learn about creating UI with Xcode Storyboard or Multi-OS Engine UI Designer tools:

Binding UI to Java*

If you use the Xcode Storyboard for designing UI, you need to generate Java* bindings for all UI controls and actions that you've created in Xcode.  See Creating a UI Using an Apple Xcode Storyboard for more information.

Adding Event Handling

If you have an event handling associated with any component, you can create instances of the event based classes that need to be assigned an action in order to respond to some event.  

Implementing App's Logic

Create the common module that implements the logic of your app, so that the iOS and Android modules can share this platform-independent functional. See Creating a Common Module for Android and iOS for more information.