Intel INDE Multi-OS Engine

Не так давно, в начале августа, на конференции Android Developer Conference (Andevcon) 2015, проходившей в Бостоне, корпорация Intel анонсировала INDE Multi-OS Engine — фреймворк для разработки нативных кроссплатформенных приложений на Java.

image
Разработку приложений, которые работаю одновременно на iOS и Android, нельзя назвать ни быстрой, ни дешевой. До недавнего времени, если вы хотели выпустить приложение сразу для двух самых популярных мобильных платформ, перед вами вставал непростой выбор. С одной стороны, вы могли использовать кроссплатформенный инструмент, например Cordova, и в результате получить условно недорогое приложение с достаточно качественным, но в то же время весьма ограниченным UI/UX.

image

С другой стороны, у вас была возможность разрабатывать два отдельных нативных приложения:
image
Оба подхода имеют свои плюсы и минусы. Однако, даже для крупных компаний с серьезными ресурсами этот выбор оказывался непростым. Но ситуация меняется. Теперь разработчики могут попробовать Intel«s Multi-OS Engine (MOE), который специально предназначен для значительного сокращения времени разработки, необходимого для создания отдельных нативных Android и iOS приложений:
image
Как вы можете знать, Intel INDE — кроссплатформенный набор инструментов для создания нативных мобильных приложений. INDE состоит из целого ряда SDK, библиотек, компиляторов, отладчиков и утилит анализа производительности — всего того, что требуется для полного цикла разработки ПО. А Multi-OS Engine можно смело назвать настоящей «вишенкой» на «торте» INDE!

Почему быть нативным так важно?


Современный пользователь мобильных приложений очень искушен, а магазины для любой платформы заполнены огромным количеством аналогов. Как выделиться среди них? Я сам из двух похожих приложений скорее выберу то, которое выглядит и ощущается по-настоящему согласованным со всей системой. Даже несмотря на то, что разработка нативных приложений занимает больше времени, нативный «Look & Feel» — это именно то, на что обращают внимание конечные пользователи, а значит, экономить на этом просто нельзя. По ряду причин нативные приложения имеют в этой области заметное преимущество:

  • Прямой доступ к UI-компонентам конкретной платформы: стек навигации приложения, диалоги выбора даты и времени, карты и т.д. Без сомнения, можно пересоздать все эти компоненты самостоятельно, но наша повторная реализация никогда не будет чувствоваться такой же родной, как нативная. Такие самодельные компоненты также не получат никакого автоматического обновления вместе с изменениями в платформе.
  • Отсутствие накладных расходов, связанных с отрисовкой UI.
  • Нативная многопоточность. Фреймворки, основанные на веб-технологиях не позволяют распараллелить работу приложения так, как это возможно в нативном коде.

Почему именно Java?


Чтобы ответить на этот вопрос, достаточно обратиться к следующему графику:
GitHub languages
Рейтинг языков GitHub, основанный на объёме кода, хранящегося в его репозиториях, совершенно четко объясняет, почему в качестве языка кросс-платформенной разработки для React Native в Facebook выбрали Javascript, а Intel выбрал Java для Multi-OS Engine.

Технические детали


Multi-OS Engine поставляется в виде плагина для Android Studio. С помощью него вы можете создать новый MOE проект, либо добавить MOE модуль в уже существующий проект. Таким образом, вам совсем не обязательно знать Objective-C, чтобы писать нативные приложения под iOS. При этом разработка под Android не претерпевает никаких изменений. Но у вас появляется замечательная возможность переиспользовать весь платформенно-независимый код. MOE не предлагает 100% переиспользование кода, но при правильной архитектуре эта величина может достигать 60%.
image
Вот как Multi-OS Engine обеспечивает поддержку Java на iOS:

  • Автоматически генерирует байндинги по заголовочным файлам ObjectiveC и C
  • Использует специальные Java-аннотации
  • Связывает Java с нативным кодом с помощью библиотеки NatJ
  • Избавляет от необходимости JNI вызовов
  • Полностью покрывает iOS API


Всё это позволяет сразу же начать писать iOS-приложения на Java.
image

Процесс разработки iOS-приложений на Java


image

  1. Создайте Multi-OS Engine проект в Android Studio
  2. Если вы используете Mac, добавьте новую Run/Debug конфигурацию «Intel MOE iOS Application» для сборки на локальной машине. На Windows-хосте доступна конфигурация «Intel MOE Remote Build» для сборки «в облаке».
  3. Вы можете создавать UI прямо в XCode либо использовать специальный MOE UI designer, встроенный Android Studio.
  4. Свяжите ваш UI с Java, используя аннтотации и библиотеку NatJ.
  5. Используйте автодополнение кода для легкой работы с iOS SDK.
  6. iOS-приложения могут быть запущены на симуляторе и устройстве прямо из Android Studio.
  7. Отлаживайте ваши приложения прямо в Android Studio.


Чтобы попробовать Multi-OS Engine, вы можете немного рассказать нам о себе через специальную форму. Это позволит нам сделать MOE ещё лучше. Но если вам не терпится, вы можете сразу перейти на страницу загрузки: Хочу MOE прямо сейчас! На этой же странице вы найдете подробное руководство пользователя.

P.S.
Команда, разрабатывающая Multi-OS Engine, почти полностью находится в России (Нижнем Новгороде и Москве). И если у вас есть вопросы, которые вы хотите задать лично, у вас есть отличная возможность — посетить конференцию Droidcon в Москве 26 сентября.

© Habrahabr.ru