
Intel INDE Multi-OS Engine
Not so long ago, in early August, at the Android Developer Conference (Andevcon) 2015 in Boston, Intel announced the INDE Multi-OS Engine, a framework for developing native cross-platform Java applications.

The development of applications that work simultaneously on iOS and Android can not be called neither fast nor cheap. Until recently, if you wanted to release an application for two of the most popular mobile platforms at once, you faced a difficult choice. On the one hand, you could use a cross-platform tool, for example Cordova , and as a result get a relatively inexpensive application with a fairly high-quality, but at the same time very limited UI / UX.

On the other hand, you had the opportunity to develop two separate native applications:

Both approaches have their pros and cons. However, even for large companies with serious resources, this choice was not easy. But the situation is changing. Now developers can try Intel's Multi-OS Engine (MOE), which is specifically designed to significantly reduce the development time required to create separate native Android and iOS applications:

As you can know, Intel INDE- A cross-platform toolkit for creating native mobile applications. INDE consists of a number of SDKs, libraries, compilers, debuggers and performance analysis utilities - all that is required for a complete software development cycle. And the Multi-OS Engine can be called a real “cherry” on the “cake” INDE!
The modern user of mobile applications is very sophisticated, and the stores for any platform are filled with a huge number of analogues. How to stand out among them? Of the two similar applications, I myself will rather choose the one that looks and feels truly consistent with the whole system. Even though it takes longer to develop native applications, the native “Look & Feel” is exactly what end-users pay attention to, which means you can’t just save on it. For a number of reasons, native applications have a significant advantage in this area:
To answer this question, just look at the following chart:

GitHub language rating based on the amount of code stored in its repositories clearly explains why Javascript was chosen as the cross-platform development language for React Native on Facebook, and Intel chose Java for Multi-OS Engine .
Multi-OS Engine comes as a plug-in for Android Studio. With it, you can create a new MOE project, or add a MOE module to an existing project. Thus, you do not need to know Objective-C to write native applications for iOS. At the same time, development for Android does not undergo any changes. But you have a great opportunity to reuse all platform-independent code. MOE does not offer 100% code reuse, but with the right architecture, this value can reach 60%.

Here's how the Multi-OS Engine provides Java support on iOS:
All this allows you to immediately start writing iOS applications in Java.


To try the Multi-OS Engine, you can tell us a little about yourself through a special form . This will allow us to make MOE even better. But if you can’t wait, you can immediately go to the download page: I want MOE right now! On the same page you will find a detailed user manual.
PS
The team developing the Multi-OS Engine is almost entirely located in Russia (Nizhny Novgorod and Moscow). And if you have questions that you want to ask personally, you have a great opportunity to attend the Droidcon conference in Moscow on September 26th.

The development of applications that work simultaneously on iOS and Android can not be called neither fast nor cheap. Until recently, if you wanted to release an application for two of the most popular mobile platforms at once, you faced a difficult choice. On the one hand, you could use a cross-platform tool, for example Cordova , and as a result get a relatively inexpensive application with a fairly high-quality, but at the same time very limited UI / UX.

On the other hand, you had the opportunity to develop two separate native applications:

Both approaches have their pros and cons. However, even for large companies with serious resources, this choice was not easy. But the situation is changing. Now developers can try Intel's Multi-OS Engine (MOE), which is specifically designed to significantly reduce the development time required to create separate native Android and iOS applications:

As you can know, Intel INDE- A cross-platform toolkit for creating native mobile applications. INDE consists of a number of SDKs, libraries, compilers, debuggers and performance analysis utilities - all that is required for a complete software development cycle. And the Multi-OS Engine can be called a real “cherry” on the “cake” INDE!
Why is being native so important?
The modern user of mobile applications is very sophisticated, and the stores for any platform are filled with a huge number of analogues. How to stand out among them? Of the two similar applications, I myself will rather choose the one that looks and feels truly consistent with the whole system. Even though it takes longer to develop native applications, the native “Look & Feel” is exactly what end-users pay attention to, which means you can’t just save on it. For a number of reasons, native applications have a significant advantage in this area:
- Direct access to the UI components of a specific platform: application navigation stack, date and time dialogs, maps, etc. Without a doubt, you can recreate all of these components yourself, but our re-implementation will never feel as native as native. Such home-made components will also not receive any automatic updates along with changes to the platform.
- Lack of overhead associated with rendering the UI.
- Native multithreading. Web-based frameworks do not allow parallelizing the application as it is possible in native code.
Why Java?
To answer this question, just look at the following chart:

GitHub language rating based on the amount of code stored in its repositories clearly explains why Javascript was chosen as the cross-platform development language for React Native on Facebook, and Intel chose Java for Multi-OS Engine .
Technical details
Multi-OS Engine comes as a plug-in for Android Studio. With it, you can create a new MOE project, or add a MOE module to an existing project. Thus, you do not need to know Objective-C to write native applications for iOS. At the same time, development for Android does not undergo any changes. But you have a great opportunity to reuse all platform-independent code. MOE does not offer 100% code reuse, but with the right architecture, this value can reach 60%.

Here's how the Multi-OS Engine provides Java support on iOS:
- Automatically generates bindings for ObjectiveC and C header files
- Uses special Java annotations
- Associates Java with native code using the NatJ library
- Eliminates the need for JNI calls
- Fully Covers iOS API
All this allows you to immediately start writing iOS applications in Java.

The process of developing iOS applications in Java

- Create a Multi-OS Engine project in Android Studio
- If you are using a Mac, add the new “Intel MOE iOS Application” Run / Debug configuration to build on the local machine. The “Intel MOE Remote Build” configuration is available on the Windows host for assembly in the cloud.
- You can create UI directly in Xcode or use special MOE UI designer, built-in Android Studio.
- Associate your UI with Java using the annotations and the NatJ library.
- Use code completion for easy work with iOS SDK.
- iOS applications can be run on the simulator and device directly from Android Studio.
- Debug your applications right in Android Studio.
To try the Multi-OS Engine, you can tell us a little about yourself through a special form . This will allow us to make MOE even better. But if you can’t wait, you can immediately go to the download page: I want MOE right now! On the same page you will find a detailed user manual.
PS
The team developing the Multi-OS Engine is almost entirely located in Russia (Nizhny Novgorod and Moscow). And if you have questions that you want to ask personally, you have a great opportunity to attend the Droidcon conference in Moscow on September 26th.