Разработка приложений для мобильных и настольных платформ с помощью единого инструмента (Александр Епифанов, OSSDEVCONF-2022) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
…|}} |79LxEICKKAc}} {{SlidesSection}} [[File:Разработка приложений для мобильных и настольных платформ с помощью единого инструмента (Александр Епифанов, OSSDEVCONF-2022).pdf|left|page=-|300px]] {{----}} == Thesis == |
Текущая версия на 19:28, 2 апреля 2024
- Докладчик
- Александр Епифанов
В докладе будет рассказано об открытом фреймворке RhoMobile, позволяющим создавать переносимые приложения для большинства актуальных на сегодняшний день мобильных и настольных платформ на языках Ruby и JavaScript. Список целевых платформ фреймворка включает мобильные: iOS, Android, WinCE, Sailfish/Аврора и настольные: Windows, OS X, различные дистрибутивы Linux (Ubuntu, ALT, ROSA, RED, Astra).
Будут освещены особенности архитектуры фреймворка, способы использования, а также продемонстрированы примеры создания и работы приложений на базе фреймворка.
Содержание
- 1 Видео
- 2 Презентация
- 3 Thesis
- 3.1 Описание и назначение
- 3.2 История c 2008 по 2022
- 3.3 Архитектуры мобильных приложений
- 3.4 Особенности смешанно-гибридного подхода
- 3.5 Расширения
- 3.6 Сборка в виде библиотеки
- 3.7 Поддерживаемые платформы
- 3.8 Функции, связанные с применением в бизнес-приложениях
- 3.9 Состав проекта
- 3.10 Продукты на базе RhoMobile
- 4 Примечания и ссылки
Видео
Презентация
Thesis
Описание и назначение
RhoMobile Suite — инструмент для создания переносимых мобильных и настольных приложений. Доступен под лицензией MIT.
Приложение на RhoMobile называется нативно-гибридным. Код приложений похож на код веб-приложений. Пользовательский интерфейс в основном пишется на HTML5, CSS3, а логика на JavaScript, либо Ruby.
История c 2008 по 2022
- 2008—2011 — стартап.
- 2011—2014 – часть Motorola Solutions.
- 2014—2015 — часть Zebra Technologies.
До 2015 года разработку вела команда инженеров из России, США и Великобритании.
Текущий статус
С 2015 года часть оригинального коллектива из России осуществляет дальнейшее развитие и поддержку проекта в составе Tau.
За последнее время была добавлена поддержка Sailfish OS, и дистрибутивов Linux, в т.ч. Alt, ROSA, Red OS, Astra.
Стабильная версия — 7.4.2, бета версия — 7.5.0.beta2.
Архитектуры мобильных приложений
- Классическое нативное приложение. Нативные инструменты iOS, Android.
- Кроссплатформенное нативное приложение — Xamarin, React Native, QT, Flutter и др.
- Веб приложение — «сайт», запущенный в системном браузере.
- Гибридное приложение — веб-приложение, обёрнутое в нативный контейнер. Apache Cordova/PhoneGap, Rhomobile (в чисто гибридном режиме).
- Смешанно-гибридное приложение — совмещение нативного, кроссплатформенного и гибридного подходов. Интерфейс реализуется на HTML/CSS, логика пишется на переносимом инструменте и исполняется отдельно от веб-компонента. Пример — RhoMobile.
Особенности смешанно-гибридного подхода
Локальный сервер
Разделение UI и логики приложения осуществляется с помощью HTTP(S) сервера внутри процесса приложения.
Веб-компонент обращается серверу, он исполняет логику и выдаёт ответ в виде HTML.
Веб-компонент также может вызывать API напрямую из JS.
Ruby
В качестве средства реализации логики выбран язык Ruby. Для клиент-серверного взаимодействия используется адаптированный фреймворк Ruby-on-Rails.
Архитектура может быть реализована и с помощью других языков. В частности, в RhoMobile, помимо Ruby, можно также выбрать Node.js.
Расширения
В RhoMobile используется механизм CommonAPI, позволяющий описать модули, методы и свойства в общем виде на XML.
Сборка в виде библиотеки
RhoMobile имеет собственную систему сборки. В некоторых случаях разработчикам может потребоваться встроить часть функций платформы в их нативный проект. Для этого существует режим сборки платформы в виде библиотеки для целевой платформы.
Производительность
Производительность интерпретирующей машины: код на Ruby при сборке приложения компилируется в бинарный байт-код iseq.
Механизм расширений позволяет вынести ресурсоёмкие операции в нативную часть.
Часть API возможно вызывать в асинхронном режиме.
Современные веб-движки хорошо оптимизированы.
Нативный «look\&feel»
Для реализации интерфейса можно выбрать frontend фреймворк, эмулирующий визуальные компоненты конкретной платформы.
Вопросы безопасности
Для защиты веб-сервера используется двусторонняя SSL аутентификация с генерацией ключей и сертификатов при каждом запуске приложения.
Поддерживаемые платформы
Целевые: iOS, Android, WinCE, Windows, Sailfish, Linux ( Ubuntu, ALT, RED, ROSA, Astra ).
Хостовые: Windows, OS X, Linux.
Функции, связанные с применением в бизнес-приложениях
Защита данных
- шифрование локальной БД;
- шифрование файлов кода и данных в установочном пакете приложения;
- детектирование запуска приложения на эмуляторе, под отладчиком, либо на взломанном устройстве.
- на Android: проверка сигнатуры подписи пакета, проверка идентификатора установщика.
Бесшовная интеграция
Применяется клиентская библиотека и промежуточный сервер RhoConnect. Они обеспечивают синхронизацию моделей данных приложения и контроль конфликтов.
Поддержка спецустройств
API платформы поддерживает функции ТСД[1], такие как сканирование штрихкодов, чтение RFID меток, беспроводную Bluetooth печать и др.
Состав проекта
- Rhodes — фреймворк и набор инструментов для разработки приложений.
- RhoConnect — сервер интеграции данных.
- RhoStudio/ VSCode debugger — IDE для редактирования и отладки приложений.
Продукты на базе RhoMobile
Браузер, приложения для мобильного сервиса, банкинг, страхование, энергетика и др.
В завершающей части доклада будет продемонстрировано создание и запуск приложения на RhoMobile.
Примечания и ссылки
- ↑ Терминал Сбора Данных