Codename One — это первая мобильная кроссплатформенная среда для разработчиков Java и Kotlin. Он может компилировать байт-код Java в собственные исполняемые файлы ОС (iOS, Android, UWP и т. д.). Это полноценная мобильная платформа с виртуальными машинами, симулятором, инструментами проектирования (визуальная тема/конструктор/css), интеграцией IDE, портами для нескольких ОС и многим другим. Он обеспечивает полный доступ к базовому собственному коду ОС (например, Objective-C, C#, Dalvik/ART) через переносимую абстракцию, которая обеспечивает 100% повторное использование кода.
В отличие от эмуляторов, которые вы можете увидеть в Android и т. д., Codename One использует симулятор. Это означает, что он запускается быстро даже во время отладки. Вы можете пользоваться такими функциями IDE, как перезагрузка живого кода для изменения кода во время выполнения и т. д.
Это означает более быстрый цикл отладки и более быстрый процесс разработки!
Выбирайте из большого количества «скинов» устройства, чтобы увидеть, как ваше приложение будет выглядеть на конкретных устройствах. Оболочка учитывает такие факторы, как разрешение и плотность устройства, чтобы обеспечить идеальное представление вашего приложения так, как оно будет выглядеть на реальном устройстве. Переключение между скинами устройства происходит практически мгновенно.
Вы можете редактировать и добавлять скины в собственный проект с открытым исходным кодом здесь.
Взаимодействуйте с API-интерфейсами вашего приложения во время выполнения с помощью интерактивной консоли Groovy. Проверяйте состояние приложения или экспериментируйте с изменениями во время работы приложения.
Это позволяет вам исследовать проблемы и экспериментировать без даже небольших затрат на перекомпиляцию.
Симулятор позволяет вам воспользоваться функцией «Перезагрузить измененные классы» в IntelliJ (называемой «Применить изменения кода» в NetBeans), чтобы изменения, внесенные вами в исходный код Java, были немедленно применены к уже работающему приложению в симуляторе.
Обратите внимание, что это часто превосходит интерактивную консоль, но есть ограничения, такие как возможность добавлять методы/изменять структуру кода. Эти ограничения не распространяются на интерактивную консоль!
Когда вы вносите изменения в таблицу стилей CSS вашего приложения, эти изменения мгновенно отражаются в симуляторе. Это включает в себя изменение темы, изображений, шрифтов и т. д. Все изменения мгновенно обновляются при сохранении, нет необходимости перезагружать/обновлять или что-то в этом роде!
Это делает процесс стилизации приложения чрезвычайно простым и быстрым.
Используйте мощный инспектор компонентов для просмотра иерархии компонентов пользовательского интерфейса в вашем приложении. Этот инструмент позволяет легко выяснить, откуда берутся эти дополнительные отступы или почему что-то не выстраивается так, как вам хотелось бы. Вы также можете изменить UIID (селектор) компонента во время выполнения, чтобы увидеть, как это влияет на пользовательский интерфейс, и увидеть, какой компонент в иерархии сопоставляется с элементом в дереве компонентов (эквивалент DOM).
Просматривайте все сетевые подключения, которые устанавливает ваше приложение, с помощью сетевого монитора. Этот ценный инструмент пригодится, когда вы пытаетесь выяснить, почему HTTP-запрос у вас не работает. Проверьте заголовки и тела запроса и ответа. Вы даже можете регулировать сеть, чтобы имитировать медленное сетевое соединение.
Используйте инструмент Test Recorder для записи модульных тестов вашего приложения. Как только вы начнете запись, ваши взаимодействия будут сохранены в модульном тесте, который можно будет воспроизвести позже, чтобы убедиться, что поведение остается правильным.
Затем вы можете подключить записанные тесты к процессу CI, включая автоматическое тестирование на устройстве.
Codename One — это зрелый проект с открытым исходным кодом, корни которого уходят корнями в компанию Sun Microsystems (2006 г.), где один из его основных базовых компонентов был разработан и открыт с открытым исходным кодом. О его истории и о том, как он работает, вы можете узнать в этом видео.
Приложения Codename One работают как нативные приложения, поскольку они являются настоящими нативными приложениями.
Они статически компилируются в собственные двоичные файлы с использованием официальных инструментов сборки целевой платформы.
На платформах, которые не поддерживают Java изначально, например iOS, байт-код JVM приложения сначала преобразуется в форму, которую принимают собственные инструменты сборки. В iOS байт-код JVM приложения преобразуется в исходный код C в реальном проекте xcode. В Android, поскольку Java поддерживается изначально, такое преобразование не требуется. JAR-файл приложения включен непосредственно в проект gradle студии Android, который можно собрать непосредственно с помощью инструментов сборки Android SDK.
Вы можете щелкнуть изображение, чтобы увеличить его, или просмотреть PDF-версию здесь.
СОВЕТ: В настоящее время мы переходим на Maven и создали новый, более простой метод создания проектов. Посетите https://start.codenameone.com, чтобы начать прямо сейчас.
О Codename One можно многое узнать. Это трехминутное видео дает очень краткое общее представление. Обратите внимание, что здесь есть похожие видеоролики для Eclipse, IntelliJ/IDEA и Netbeans:
Codename One можно легко расширить с помощью сторонних библиотек, которые могут включать собственный код ОС. Здесь имеется обширный список этих библиотек (cn1libs). Список библиотек генерируется автоматически на основе этого проекта GitHub.
Вы можете узнать больше о Codename One и его возможностях на главном сайте, а также увидеть обширный список документации и руководств здесь.
Вы можете начать работу с бинарным файлом и видом с высоты птичьего полета в разделе загрузки. Дополнительные важные ссылки:
ПРИМЕЧАНИЕ. Мы находимся в процессе перехода с Ant на Maven, что упрощает процесс сборки из исходного кода. Инструкции по сборке устаревших версий Ant см. в разделе «Краткий старт Ant».
Подробно настройка рассматривается в этой статье и видео.
ВАЖНО: для сборки Codename One в настоящее время требуется JDK 8 . Вы не можете использовать JDK 11, поскольку некоторые подмодули должны использовать -source 1.5
и -target 1.5
для обеспечения обратной совместимости с частями цепочки инструментов.
git clone https://github.com/codenameone/CodenameOne
cd CodenameOne/maven
mvn install
Это приведет к сборке и установке Codename One в вашем локальном репозитории Maven. Этот процесс может занять некоторое время, поскольку он автоматически загружает зависимости размером около 1 ГБ.
Чтобы собрать проекты архетипов из исходного кода, вам следует проверить репозиторий cn1-maven-archetypes и также собрать его:
git clone https://github.com/shannah/cn1-maven-archetypes
cd cn1-maven-archetypes
mvn install
Теперь, когда Codename One установлен в вашем локальном репозитории Maven, вы можете использовать эту версию в проекте вместо релизной версии. Новый проект тестирования можно быстро создать с помощью инициализатора Codename One.
После загрузки и распаковки проекта откройте его файл pom.xml и найдите свойства <cn1.version>
и <cn1.plugin.version>
. Затем измените их, чтобы они указывали на версию, которая была установлена в ваш локальный репозиторий maven с помощью mvn install
. Локально собранная версия обычно представляет собой версию SNAPSHOT (например, 7.0.21-SNAPSHOT).
Получение и сборка исходников
$ git clone https://github.com/codenameone/CodenameOne
$ cd CodenameOne
$ ant
Запуск модульных тестов
$ ant test-javase
Запуск образцов
Каталог Samples содержит постоянно растущий набор примеров приложений. Эти примеры не предназначены для демонстрации, а скорее являются примерами использования API.
Вы можете запустить образец приложения для запуска из командной строки, используя:
$ ant samples
Виртуальная машина iOS от Codename One довольно уникальна и имеет открытый исходный код. Вы можете прочитать больше об этом в специальной папке в этом репозитории.
ParparVM — это уникальная консервативная виртуальная машина, которая преобразует байт-код Java в код C. Таким образом, обеспечивается собственная производительность и доступ, сохраняя при этом защиту. Этот подход уникален для Codename One и необходим для будущей совместимости!
Apple имеет тенденцию резко менять вещи, например, поддержку 64-битных битов, битовый код и т. д. Поскольку ParparVM генерирует стандартный проект Xcode, никаких изменений кода не требовалось для каких-либо этих тектонических сдвигов. Это как если бы вы сами написали проект!
Вы даже можете открыть полученный проект в xcode и отладить его или профилировать прямо на устройстве iOS. Это предоставляет много полезной информации, такой как читаемые стеки вызовов и ценное/полезное отслеживание производительности...
Традиционные компиляторы в этих случаях терпят неудачу.
Codename One поддерживает ответвление iKVM, которое является JVM для CLR. Этот модифицированный порт позволяет нам запускать реализацию Codename One для универсальной платформы Windows на устройствах с Windows 10.
Мы предоставляем поддержку на StackOverflow, когда вы помечаете теги, используя codenameone, вы можете задавать там любые вопросы, и мы стараемся быть очень отзывчивыми. Ссылка на StackOverflow также служит отличным часто задаваемым вопросом, ориентированным на сообщество, поскольку она буквально сопоставляет вопросы пользователей с ответами.
У Codename One есть дискуссионная группа, где вы можете задавать вопросы. Однако из-за характера этой группы мы стараемся ограничить обсуждение источника. Дискуссионный форум предназначен для более простого использования, и более сложные хаки исходного кода / собственная компиляция могут создать там шум.
Спасибо этим замечательным людям (ключ смайлика):
Бизл-Питер | Лианнакаспер | СергейCodenameOne | ТомасH99 | Хавьер Антон | Алмаз | Франческо Гальгани |
кутоман | Рамсестом | Мааартинус | Дюранк | ddyer0 | Карлосвердье | Роберт Эдельманн |
Адальберт393 | Стив Ханна | Дигапсепп | Павнит Сингх | вприз | ДжрмиДев | Терри Уилкинсон |
Яанус Хансен | Яаков Гешер | Майкл Мунк | садер | Мигель Муньос | Ахмед Абумалва | Фабио |
Петр | Матиас Бэй | Санни Санофф | Максим28 | Эрик Леонг | Дэвид Дэй | Ник Прайс |
Анаф бин Азад | Октавио Э. Анино | Яш Прыщ | Нина | ФеркуНат | ImmediandoSrl | Давидепримаск |
ДБ107 | Икко Элтосиар Ашимине |
Этот проект соответствует спецификации всех участников. Вклад любого рода приветствуется! ❤️