Во-первых, вы должны указать, что вы имеете в виду под «родной» код для различных платформ.
На Android ваши файлы java специально скомпилированы/подготовлены для dalvik. Таким образом, они уже «родны» моды, здесь не нужно ничего делать. Если вы хотите получить собственный код C/C++ для Android с помощью NDK, вам не повезло. PlayN не делает этого, и это сложная проблема (переход от Java к C++)
Если вы посмотрите на модульную структуру Maven, как использовать PlayN, нетрудно определить Фабричный интерфейс в общем коде и передается в конкретной платформе для каждого модуля. Это не имеет большого значения для поддержки конкретных функций Android таким образом.
Для HTML-версии вы можете использовать библиотеки HTML без проблем с использованием JNI, хотя на самом деле собираете специфические функции браузера, я представлял себе ограниченную ценность по сравнению с тем, что уже было показано в PlayN. Единственное, что полезно, это ввод текста/клавиатуры, хотя я бы рекомендовал библиотеку UI triplePlay https://github.com/threerings/tripleplay, поскольку они решили это, и это активный проект.
Что касается iOS, это может быть сложнее, так как модуль iOS является немного взломанным, когда скомпилированные классы Java запускаются через среду выполнения JVM для .net (IKVM), а затем использует инструменты Monotouch для компиляции целого на родной код для iOS. Смотрите https://github.com/samskivert/ikvm-monotouch
Итак, для iOS вы не сможете привязать код к любой форме родной версии, и доступ к которому через метод toolchain во многом зависит от того, что Monotouch обслуживал для iOS (довольно как я полагаю), а также то, что поддерживала IKVM-Monotouch (я представляю себе минимальный минимум, чтобы заставить PlayN работать).
Я недостаточно хорошо знаком с конвейером Flash, чтобы дать вам оценку, хотя я считаю, что она довольно гибкая.
Приведенный выше ответ написан в предположении, что ваше приложение на самом деле является игрой. Если это не так, и вы намерены использовать стандартные библиотеки виджетов для разных платформ по массе, это должно быть возможно. Выбор хорошей структуры MVP был бы хорош здесь, и в зависимости от предположений, которые он делает в разных средах хоста, будет определяться, насколько легко все это будет.
Я рекомендовал бы читать и сравнивать https://developers.google.com/web-toolkit/articles/mvp-architecture и, возможно, взглянуть на вопросы, как What is your favorite GWT MVP Framework?
... хотя многие из этих структур может быть GWT специфичны и не действительно обслуживали повторного использования на других платформах.