Разработка приложений для мобильных и настольных платформ с помощью единого инструмента (Александр Епифанов, OSSDEVCONF-2022) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
== Thesis ==
* https://github.com/rhomobile/rhodes
* https://github.com/rhomobile/rhoconnect
=== Описание и назначение ===
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 платформы поддерживает функции ТСД<ref>Терминал Сбора Данных</ref>, такие как сканирование штрихкодов, чтение RFID меток, беспроводную Bluetooth
печать и др.
=== Состав проекта ===
* Rhodes — фреймворк и набор инструментов для разработки приложений.
* RhoConnect — сервер интеграции данных.
* RhoStudio/ VSCode debugger — IDE для редактирования и отладки приложений.
=== Продукты на базе RhoMobile ===
Браузер, приложения для мобильного сервиса, банкинг, страхование, энергетика и др.
В завершающей части доклада будет продемонстрировано создание и запуск приложения на RhoMobile.
{{----}}
[[File:{{#setmainimage:Разработка приложений для мобильных и настольных платформ с помощью единого инструмента (Александр Епифанов, OSSDEVCONF-2022)!.jpg}}|center|640px]]
{{LinksSection}}
<!-- <blockquote>[©]</blockquote> -->
<references/>
[[Категория:OSSDEVCONF-2022]] |
Версия 18:14, 17 марта 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.
Примечания и ссылки
- ↑ Терминал Сбора Данных