Какое мобильное кросс-платформенное решение на основе Ruby?
Я рассматриваю способы использования Ruby для мобильной кросс-платформенной разработки. Нам нужна поддержка, по крайней мере, Android en iOS, с поддержкой Windows Phone и Blackberry. Это приложение, которое попадет в магазины приложений для широкой публики, так что это не просто корпоративное предприятие. До сих пор я нашел:
- Rhodes, охватывает все упомянутые платформы и с открытым исходным кодом. Нам не нужны дополнительные (платные) функции от RhoMobile прямо сейчас.
- RubyMotion; iOS только и стоит 199 кубометров, к сожалению, нет пробной версии.
- Ruboto, только для Android и с открытым исходным кодом.
- MobiRuby, iOS поддерживается только с поддержкой Android, с открытым исходным кодом, но выглядит так, что он недостаточно зрел на момент написания для наших нужд.
У нас также есть обязательный случай использования, в котором нам нужен доступ одновременно как к камере, так и к акселерометру, и извлекать данные из акселерометра на экране. Поскольку это так специфично, оно не поддерживается ни в одной кросс-платформенной структуре, на которую я смотрел (включая другие, такие как Phonegap, Titanium и т.д.), И похоже, что мне нужно написать собственный код для каждой платформы, чтобы это работало.
До сих пор я склонен выбирать Родоса. Это проверенная структура и, похоже, способна делать все, что мне нужно, включая "переход на родной язык" для вышеупомянутого варианта использования. Другим вариантом будет использование RubyMotion и Ruboto, которые являются одновременно решениями для написания Ruby вместо Objective-C или Java. Теоретически я должен иметь возможность распространять общий код (например, подключение и хранение) на разных платформах, хотя я не мог найти примеров, когда кто-либо успешно использовал эти два для написания приложения, которое работает как на Android, так и на iOS.
Мне интересно, может ли кто-нибудь подтвердить мои мысли или что я что-то упустил. Конечно, любые дополнительные идеи приветствуются.
Ответы
Ответ 1
Если вы выберете Ruboto, вы можете использовать свой UI-независимый Ruby-код как есть. Код пользовательского интерфейса, скорее всего, будет зависящим от платформы.
Ruboto еще молод, но есть больше проектов, которые начинают его использовать. Одним из примеров является
https://play.google.com/store/apps/details?id=com.jonsoft.globalchat
Он разделяет коммуникационный код Ruby на разных платформах.
будучи одним из разработчиков проекта Ruboto, я могу обещать вам хорошую поддержку и полный опыт Ruby.
Для iOS RubyMotion выглядит хорошо, но я не использовал его. Вы должны иметь возможность использовать общую кодовую базу для общей логики, но отдельные базы кода для пользовательского интерфейса и для доступа к датчикам.
Ответ 2
Я бы продолжил использовать родную Java для Android и RubyMotion для iOS и имел две базы кода. RubyMotion является самым стабильным из тех, что вы упомянули, и стоит его для разработки iOS, но на платформе Android нет хорошей альтернативы.
Ответ 3
Родос не имеет ничего общего с веб-приложениями. Родос позволяет создавать собственные приложения с Ruby и на многие годы более зрелые, чем эти альтернативы. Он также поддерживает все основные ОС смартфонов