Специалисты из университета Сан-Франциско разработали сборку App Inventor, которая позволяет генерировать Java-код, эквивалентный созданным проектам.
Скажу сразу, данная возможность реализована в образовательных целях для демонстрации перехода от визуального программирования с использованием блоков к текстовому. Шаблон проектирования MVC здесь не используется, что упрощает знакомcтво с Java под Android, но текущая версия моста не гарантирует однозначного соответствия между блоками и кодом, а также корректную работу в целом ряде случаев, что приводит к сложностям. После экспорта экрана или проекта код для некоторых блоков или алгоритмов может быть обрезан или вообще отсутствовать. Однако, несмотря на эти недостатки, редактирование кода позволяет проще и быстрее решать задачи по сравнению с работой в редакторе блоков, что, собственно, и можно демонстрировать при помощи данного генератора Java-кода.
Заходим на сайт appinventor.org и переходим в раздел Learn|Java Bridge. Внизу страницы находится кнопка Start learning now, после нажатия на которую откроется страница с информацией по использованию генератора кода в Eclipse, Android Studio и др. При желании можно ознакомиться с ней и пошаговым примером, а мы сразу перейдём к варианту работы с Android Studio. Для исключения путаницы вначале проведём всю подготовительную работу:
Итак, у нас есть библиотечный файл AppInventor-JavaLibrary.jar и файл исходного кода Screen1.java, которые нужно подключить к проекту в Android Studio:
<activity android:name=".MainActivity"> на <activity android:name=".Screen1">
Как видно, результатом работы генератора кода в нашем случае является файл исходного кода, в котором интерфейс создаётся динамически. Это можно реализовать и на Java. Для чего тогда тратить время для изучения AI Java Bridge? Во-первых, AI Java Bridge позволяет продолжить разработку уже созданных ранее AI приложений, без их переписывания заново на Java. Во-вторых, он предоставляет разработчику более простой интерфейс для работы с объектами. Если разработчика устраивает App Inventor, то, наверно, и кодировать он бы предпочёл с использованием уже понятного ему API App Inventor, а не API Android.
AI Java Bridge следует рассматривать в качестве дополнительного сервиса, при помощи которого можно сделать разработку AI приложений более эффективной.