Можете ли вы разрабатывать нативные приложения для iPhone на Ruby? - PullRequest
49 голосов
/ 20 октября 2008

Привет, я смотрю на разработку для iPhone, и Objective-C не мой любимый язык. Насколько я вижу, в данный момент Ruby нельзя использовать для разговора с Cocoa Touch в данный момент на iPhone.

Итак, мой вопрос, я не прав? Могу ли я использовать Ruby на iPhone для разработки приложений Cocoa Touch. И как выглядит будущее для Ruby на iPhone?

Ответы [ 17 ]

73 голосов
/ 04 мая 2012

Теперь вы можете с RubyMotion

48 голосов
/ 09 ноября 2008

В iPhone OS mprotect () не будет работать, если вы попытаетесь использовать его, чтобы пометить доступные для записи разделы памяти как исполняемые. Это разрушает мосты, такие как RubyCocoa (и, возможно, MacRuby), которые используют libffi для создания обработчиков метода Objective-C во время выполнения. Я считаю, что это так, потому что так было не всегда.

В конечном счете, это больше вопрос политики платформ, чем технологий, но для этого существует технический обходной путь. Вместо того чтобы генерировать пользовательские обработчики методов во время выполнения, предварительно скомпилируйте пул реконфигурируемых из них, которые назначаются по мере необходимости, по существу делая процесс моста полностью управляемым данными. Насколько я знаю, это еще не сделано в RubyCocoa или MacRuby.

Еще одна важная вещь, которую следует учитывать, это то, что скомпилированные среды выполнения Ruby и RubyCocoa могут быть значительно больше, чем скомпилированные приложения Objective-C. Если бы эти библиотеки были доступны на iPhone, это не было бы проблемой, но сейчас, даже если у вас работал RubyCocoa, вы можете не захотеть использовать его для распространяемых вами приложений.

22 голосов
/ 20 октября 2008

Нет, вы правы. В настоящее время и, скорее всего, в обозримом будущем, Ruby не будет вариантом, по крайней мере, для приложений AppStore. Нет причин, по которым вы не могли бы сделать это на джейлбрейкнутом телефоне, но Apple довольно близка к Objective C для официальной разработки.

11 голосов
/ 21 октября 2008

Вам, как программисту, лучше знать несколько разных языков - воспринимайте Objective-C как хорошую возможность для обучения.

Я обнаружил, что вещи, которые вы изучаете на других языках, часто делают из вас лучшего программиста и дают вам новое понимание других языков, которые вы уже знаете.

8 голосов
/ 24 января 2009

rhomobile - это опция для запуска кода ruby ​​на iPhone, но по сути это разработка веб-приложения. Веб-сервер работает на iPhone локально, и ваш код ruby ​​отображается на стандартных клиентских веб-технологиях (html / css / javascript).

http://rhomobile.com/

7 голосов
/ 21 октября 2008

На самом деле, рубиновый какао-мост совсем не неудобен; все работает замечательно гладко, вплоть до подключения розеток в IB и т. д. Полученный код выглядит очень красиво.

Что касается разработки для iPhone, если вам нужно официальное приложение AppStore, вам, к сожалению, не повезло. Apple объявила, что iPhone - это Obj-C / Cocoa Touch, и в лицензии SDK есть пункт, в котором говорится, что одна из вещей, из-за которых будет отклонять приложение, - это наличие языкового интерпретатора / JIT-компилятора, поэтому не добавляйте в свое приложение интерпретатор ruby.

Не по теме, но весело, вот почему Flash для iPhone - это дым от Adobe. Они не могли получить SWF-плеер в AppStore, даже если бы захотели, по лицензии Apple.

4 голосов
/ 01 ноября 2009

Возможно, вы захотите взглянуть на блестящий кокос . Это дочерний проект cocos2d-iphone , платформы программирования игр Objective-C для iPhone.

Я еще не играл с ним, но из git README я заключаю, что он включает Ruby 1.9.1 в ваше приложение.

4 голосов
/ 28 июля 2010

Я установил пакет ruby ​​из Cydia на мой джейлбрейкнутый iPod Touch 1G версии 3.1.3:

image

Кажется, работает.

Теперь, что касается касания какао, я бы сказал, что это совсем другая история.

4 голосов
/ 15 сентября 2009

Э-э, Родос (Rhomobile) позволяет вам создавать собственные приложения на iPhone и всех других смартфонах. Да, мы используем рендеринг с помощью элемента управления WebUIView. Но мы разрешаем все возможности устройства и синхронизируем локальные данные.

2 голосов
/ 16 июля 2015

Нет, вы не можете создать родное приложение iOS в Ruby. Для родных приложений для Mac и iOS есть только два варианта: -

Цель C и Язык программирования Swift

Учебники: -

Официальный учебник Apple по Objective C

Официальное руководство Apple по языку программирования Swift

Если вы знакомы с Ruby и хотите создавать приложения для iOS только на Ruby. Ruby Motion , может быть кроссплатформенным вариантом для вас, но это не бесплатно.

Cross-платформы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...