Rhodes, фреймворк для разработки мобильных приложений
Денис Бакунович, Минск, Беларусь, http://atzkey.org, bakunovitch@gmail.com
Rhodes – основанный на Ruby фреймворк для быстрой разработки программ для мобильных устройств, позволяющий, в отличие от мобильных веб-приложений, получить доступ к локальным данным, периферии (камере, GPS) и инструментам (ПИМ) платформы. Единожды написанный код компилируется в нативные приложения для всех основных мобильных платформ (iPhone, Windows Mobile, BlackBerry, Symbian и Android). В тесной связи с Rhodes находится Rhosync, веб-сервер, служащий фасадом для веб-сервисов и местом хранения и синхронизации пользовательских данных. Немного поодаль от него RhoHub, сервис, позволяющий собирать приложения на серверах Rhomobile и избавляющий разработчиков от необходимости настраивать рабочее окружение и устанавливать SDK для целевых платформ. Разработчиком упомянутых продуктов является компания Rhomobile1.
Rhomobile
Возникшая в конце 2008 года компания представила два своих проекта с открытым исходным кодом: Rhodes и Rhosync. Оба проекта распространяются под двойной лицензией: коммерческой и GPLv3 (для некоммерческого использования).
Rhodes
Это основанный на Ruby MVC-фреймворк, предназначенный для быстрой разработки мобильных приложений. Для каждой платформы, поддерживаемой Rhodes, была написана своя реализация Ruby (точнее, для всех, кроме Symbian с уже готовой реализацией Ruby).
Разработка приложения заключается в написании контроллеров на Ruby, HTML-шаблонов на erb и раскладывании всего этого в правильные директории.
Архитектуру фреймворка легко представить в следующей диаграмме:
Данные моделей на устройстве хранятся в базах SQLite или HSQLDB в виде кортежей (объект, ключ, значение). Объектно-реляционное отображение осуществляется с помощью специально написанного модуля Rhom. Опционально модели могут синхронизироваться с сервером Rhosync.
Ключевые достоинства Rhodes:
- Скорость и простота разработки. Многие идеи удачно позаимствованы из Ruby on Rails.
- Портируемость. Единожды написанный код компилируется под все основные современные мобильные платформы: iPhone, Windows Mobile, BlackBerry, Symbian и Android.
- Доступ к ресурсам устройства. Возможность взаимодействия с локальными данными, периферией (GPS-модулем, камерой) и инструментами (ПИМ, меню приложения) целевой платформы.
- Синхронизация. Интеграция с Rhosync позволяет приложению работать с данными удаленных веб-сервисов в режиме офлайн.
Rhosync
Веб-сервер для хранения и синхронизации пользовательских данных, приятное необязательное дополнение для программ, написанных с помощью Rhodes. Rhosync выступает связующим звеном между REST и SOAP сервисами и клиентскими Rhodes-приложениями, позволяя работать с веб-сервисами без постоянного подключения к Интернет. Добавление нового источника данных требует от разработчика написания всего лишь одного адаптера – класса, реализующего предопределенный набор методов для работы с веб-сервисом:
- login, logoff – открытие и закрытие сессии работы с источником данных;
- query – метод для получения и обработки данных сервиса, принимает условия поиска как опциональный аргумент;
- sync – метод для сохранения данных, полученных с помощью query, и синхронизации их с устройством, update;
- create, update, delete – методы для создания, изменения и удаления данных сервиса.
Rho* 2.0
Совсем недавно вышел бета-релиз новой версии фреймворка. Очень сильно преобразился Rhosync, став значительно проще – до версии 2.0 Rhosync был приложением, написанным на Ruby on Rails, теперь это Sinatra-приложение, использующее Redis в качестве базы данных. Значительно упростилась конфигурация адаптеров – если раньше приходилось производить конфигурацию через неудобный веб-интерфейс, то теперь эта задача сводится к дописыванию пары строк в конфигурационный .yaml-файл. Данные адаптеров, хранимые Rhosync и особо не меняющиеся от пользователя к пользователю, стало возможным разделять между пользователями, избегая тем самым бесполезной избыточности. Появилась возможность синхронизации передачей дампа базы данных пользовательскому приложению.
Материалы к докладу
- Сайт: Rhomobile
- Презентация: Просмотреть Загрузить