Мы только что выпустили первую версию открытого проекта CN1Cordova на github. Это означает, что вы можете взять обычное приложение Cordova / PhoneGap, импортировать его в NetBeans и создать собственное приложение, используя наши серверы облачной сборки без каких-либо изменений!
Прежде чем мы углубимся в точный процесс преобразования приложения, давайте начнем с обзора точных преимуществ, которые разработчики PhoneGap / Cordova могут получить от Codename One. Вы также можете ознакомиться с видеоуроком и слайдами ниже.
Почему я хочу конвертировать?
Какие преимущества имеет Codename One для разработчиков PhoneGap / Cordova?
Построить облако на стероидах
Codename One предоставляет облако сборки, похожее на сборку PhoneGap, только намного более продвинутое. Он может переводить байт-код Java в нативный, что позволяет вам писать большую часть вашего «нативного» API в Java вместо того, чтобы писать его снова и снова для каждой платформы.
Лучшая поддержка родного кода
Вы можете и должны писать свой «родной» код на Java, что устраняет необходимость писать код Objective-C / Swift при создании плагина. Тем не менее, вы все равно можете использовать cn1lib и нативный интерфейс для реализации практически чего угодно, используя настоящие нативные вызовы для Objective-C, Dalvik / ART.
Лучшая защита IP
Приложения Cordova / PhoneGap — это просто набор файлов HTML / JavaScript и CSS. Поскольку нативная упаковка представляет собой «просто zip-файл», она привела к тому, что коттеджная индустрия распаковывала такие приложения и перепродавала их через другие аккаунты / магазины.
Это гораздо сложнее сделать для скомпилированных приложений, что делает Java-код в Codename One более непрозрачным для случайного хакера. Если ваше приложение содержит чувствительную логику, вы можете закодировать ее на Java для дополнительной безопасности. Мы также рассматриваем усиленную версию интеграции PhoneGap, которая зашифрует файлы, делая процесс еще более безопасным.
Интеграция IDE Java — JavaScript — HTML
NetBeans имеет замечательную поддержку JavaScript и html / css. Он также поддерживает все распространенные веб-фреймворки, такие как реагирование, угловая и т. Д., При этом будучи полностью бесплатным …
NetBeans также является одним из лучших Java IDE на рынке, и наличие единой всеобъемлющей среды является огромным преимуществом.
Легко, не требует Mac, автоматизирует сертификаты / подписи
Среда Codename One работает на Mac, Linux и Windows без проблем. Одной из «убойных функций» Codename One является мастер сертификатов, который делает обычный кошмарный процесс подписания приложения iOS доступным.
Миграция на Java
Если ваша команда предпочитает Java, вы можете переходить к Java-приложению поэтапно или даже интегрировать части, написанные на Java, с элементами Cordova.
Каковы ограничения?
Первая версия конвертера в настоящее время не переводит плагины, у нее есть некоторые встроенные плагины для таких функций, как камера и т. Д.
Это то, что мы собираемся решить в ближайшее время, чтобы процесс перевода был более плавным.
Поскольку нативная реализация плагинов в Codename One сильно отличается от нативных плагинов в PhoneGap / Cordova, для переноса плагинов потребуется ручная работа. К счастью, поскольку большинство функциональных возможностей плагинов уже поддерживаются в базовом Java-API Codename One, для большинства случаев это довольно тривиальная работа.
В настоящее время компонент браузера, используемый в Codename One, основан на компоненте браузера JavaFX, который довольно ужасен. Он основан на webkit, но имеет много ограничений в отношении полного соответствия HTML5 и неправильно определяет такие вещи, как пользовательский агент. Это работает с большинством фреймворков JavaScript правильно, хотя.
У нас есть планы заменить этот компонент более зрелым браузерным компонентом на основе хрома, если интерес сообщества достаточен, чтобы оправдать усилия.
Почему ты не сделал это раньше?
Мы были (и все еще) обеспокоены путаницей. Codename One использует довольно сложную архитектуру преобразования байт-кода в нативный код. Это связано с конвейером рендеринга на основе OpenGL ES и микшированием собственных виджетов. Тем не менее, несмотря на тот факт и тот факт, что мы специально указали в верхней панели страницы, что Codename One НЕ является решением HTML5, мы все равно получили отзыв о «ну, еще одной среде HTML5».
Мы беспокоились о том, что если мы включим PhoneGap, эта путаница и двусмысленность только возрастут и будут препятствовать нашей способности дифференцировать Codename One на рынке, где доминируют 3 основных идеи (HTML5, нативная утилита и инструмент для портирования), как то, что не вписывается ни в одну из них. из этих 3 столбов.
Однако несколько месяцев назад мы начали добавлять такие вещи, как поддержка JavaScript, которая использует TeaVM и наш собственный набор сложных библиотек для упрощения работы с WORA (Write Once Run Anywhere). Что делает наше предложение еще более сложным… Более того, на этом этапе, когда многие другие проекты не слышат о кроссплатформенной мобильной разработке, мы пришли к выводу, что «избегать путаницы» — не правильная стратегия.
Означает ли это смещение фокуса на кодовое имя один?
Нет! Нашим основным конкурентным преимуществом всегда были наши огромные библиотеки API и клиентских интерфейсов, даже с учетом вышеупомянутой поддержки это все еще одно из ключевых преимуществ. Игра с PhoneGap и некоторыми другими инструментами в последние несколько месяцев еще больше укрепила наше убеждение в том, что, несмотря на то, что с момента запуска Codename One прошло почти 4 года, мы все еще в нашей собственной лиге.
Портирование приложения Cordova / PhoneGap в кодовое название One
Предварительные условия для этого: IDE NetBeans , JDK 8 (не Java JRE .. JDK!) И Apache Ant . Скачайте cn1-cordova-tools.zip и распакуйте его.
Из терминала или командной строки
1
2
|
$ cd cn1-cordova-tools $ ant create -Dsource=/full/path/to/cordova/app |
Примечание: убедитесь, что вы используете Java 8, а если нет, убедитесь, что переменная среды JAVA_HOME указывает на домашний каталог Java 8, в противном случае вы можете получить UnsupportedClassVersionError
. Также убедитесь, что вы используете полный путь к приложению Cordova, а не короткий путь, иначе это не сработает (никаких относительных путей и т. Д.). Это создаст проект Netbeans в каталоге cn1-cordova-tools с настройками (идентификатор и имя пакета), соответствующими приложению, указанному в аргументе -Dsource
. Содержимое каталога www
приложения будет скопировано в каталог проекта src/html
.
Вы можете открыть этот проект в NetBeans и начать работу над ним. Вы сможете запускать и отлаживать исходные файлы Java в проекте. Чтобы отправить облачную сборку или изменить конфигурацию проекта, просто используйте меню правой кнопки мыши и выберите правильные параметры.
Как уже упоминалось выше, плагины не будут импортированы. Если в приложении установлены плагины, вы увидите напечатанное предупреждение. В будущих версиях должна быть добавлена поддержка этого в некоторой форме (например, замена хорошо известных плагинов на плагины Codename One). В Codename One уже есть поддержка для разработки плагинов Cordova и их распространения в виде cn1libs (собственный формат библиотеки / плагина Codename One). Мы опубликуем инструкции для этого по мере интеграции.
Ссылка: | Совместимость PhoneGap / Cordova для Codename One от нашего партнера JCG Шая Альмога из блога Codename One . |