Ответ 1
Codename One использует подход, основанный на SaaS, так что это может (и, вероятно, будет) изменяться в будущем для размещения улучшенных архитектур. Обратите внимание, что Codename One также предоставляет возможность строить в автономном режиме, что означает, что корпорации, которые имеют политики, запрещающие такие облачные архитектуры, все еще могут использовать Codename One с некоторыми дополнительными служебными/сложность.
В настоящее время на Android стандартный Java-код выполняется как есть. Синтаксис Java 8 транслируется с использованием retrolambda для всех платформ, когда он используется. Это позволяет ему быть совместимым со всеми версиями Android, а также с другими портами.
В iOS Codename Один встроенный и открытый источник ParparVM, который является очень консервативной виртуальной машиной. ParparVM содержит параллельный (неблокирующий) GC и полностью написан на Java/C. Это фактически означает, что проект xcode генерируется и компилируется на серверах сборки, поэтому он эффективно, как если бы вы вручную закодировали собственное приложение и, таким образом, "будущее доказательство" для изменений, внесенных Apple. Например. с недавними 64-битными и битовыми изменениями в iOS-сборках ParparVM не нуждался в каких-либо модификациях, чтобы соответствовать этим изменениям.
В прошлом Codename One использовал XMLVM для генерации собственного кода очень похожим образом, но решение XMLVM было слишком общим для нужд Codename One.
сборки iOS скомпилированы и подписаны на Mac в облаке, используя xcode (официальный инструмент сборки Apple). Это делает их совместимыми с текущими/будущими изменениями от Apple и позволяет разработчикам использовать Windows/Linux при ориентации на iOS. Подробнее о совместимости ParparVM с iOS здесь.
В прошлом Codename One поддерживал Windows Phone с использованием транслятора С#, который основывался на XMLVM, но это был не идеальный подход. Обратите внимание, что бэкэнд XMLVM, который переводится на С#, сильно отличается от того, который ранее использовался для перевода в iOS. Codename One выбрал отказаться от старого бэкэнда, поскольку он был не таким мощным, как новый UWP-сервер, и не соответствует целям Microsoft, продвигающимся вперед и фокусировке на UWP (универсальная платформа Windows).
Для Windows 10 для настольных компьютеров и мобильных устройств Codename One использует iKVM для целевой UWP (Universal Windows Platform) и имеет открытые исходные изменения в оригинале Код iKVM в Codename Один репозиторий github.
Обратите внимание, что сборки UWP выполняются на компьютерах под управлением Windows 10 в облаке, что позволяет разработчикам использовать Mac/Linux или более старые версии Windows при создании собственных оконных приложений...
Цели JavaScript-сборки, доступные на уровне предприятия, используют TeaVM, чтобы сделать перевод статически. TeaVM обеспечивает поддержку потоковой передачи с использованием JavaScript, довольно сложным образом разбивая приложение. Для поддержки сложного пользовательского интерфейса Codename One использует HTML5 Canvas API, который обеспечивает абсолютную гибкость при создании приложений.
Для настольных сборок Codename One использует javafxpackager
, так как в среде Cloud и Mac доступны узлы, а специфический для платформы тип javafxpackager
не является проблемой.
Что выделяет Codename One, так это подход, который он использует для пользовательского интерфейса, где он использует "легкую архитектуру", чтобы пользовательский интерфейс мог беспрепятственно работать на всех платформах и полностью развиваться на Java. Это дополняется возможностью встроить "тяжеловесные" виджеты на место среди "lightweights". Подробнее об этом можно узнать в этом сообщении . Обратите внимание, что в настоящее время peering претерпевает некоторые улучшения и теперь поддерживает более сложные способы использования, такие как слоизация.
Легкий компонент написан полностью на Java, это позволяет разработчикам точно просматривать приложение в тренажерах и графическом дизайнере.
Codename One обеспечивает быструю производительность путем рисования с использованием собственного игрового API большинства платформ, например. OpenGL ES на iOS.
Основные технологии Codename One - это все с открытым исходным кодом, включая большинство материалов, разработанных самим Codename One, например. ParparVM, а также полная библиотека, порты платформы, дизайнерский инструмент, скины устройств и т.д. Вы можете узнать больше об использовании источников Codename One здесь.
FYI Shai Almog, автор этого ответа, является генеральным директором Codename One.