Подтвердить что ты не робот

Можете ли вы разработать собственные приложения для iPhone в Ruby?

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

http://rhomobile.com/

Ответ 6

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

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

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

image

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

Теперь, как и для cocoa -touch, это совершенно другая история, которую я бы предположил.

Ответ 10

Взгляните на http://www.appcelerator.com/products/titanium-mobile/ "Родные приложения для iPhone и Android, созданные с использованием веб-технологий".

Звучит неплохо, не так ли?; -)

Ответ 11

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

Объектив C и Язык Swift для программирования

Учебники: -

Официальное руководство Apple по Objective C

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

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

<сильные > Cross-Платформы

Ответ 13

Вам не нужно использовать Objective-C для написания приложений для iPhone. Если вы используете QuickConnectiPhone, http://sourceforge.net/projects/quickconnect/, вы можете полностью его записать в JavaScript, CSS и HTML и все еще иметь устанавливаемое приложение, а не веб-приложение приложение.

Если вы знаете ruby, вы, вероятно, уже работаете с JavaScript.

Чтобы узнать, как его установить, запустите его, а другие идеи перейдут на сайт tetontech.wordpress.com

Ответ 14

Здесь есть открытый Ruby- Cocoa bridge, который вы можете попытаться получить. Но я понимаю, что существует немного несоответствия импеданса между Ruby и ObjC, что делает его немного неудобным для использования.

Ответ 15

Мост Ruby Cocoa, вероятно, не сработает. Большинство мостов для динамических языков должны создавать исполняемые трюки (либо вручную, либо с помощью libffi). Более ограниченные мосты (для более статических языков) могут не иметь таких проблем.

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

Ответ 16

В настоящее время это не так, Apple изменит свои политики, взгляните на ShinyCocos, это рубиновые привязки для игровой среды Cocos2D-iphone.

https://github.com/funkaster/shinycocos

Ответ 17

Одним из возможных решений могло бы стать создание приложения, например, рисовой библиотеки (google it), которая включает ruby-vm. Я считаю, что вы могли бы создать обертки С++, которые вы могли бы открыть для ruby, тем самым создав среду для разработки iphone с ruby. Это, вероятно, требует большой работы, хотя ^^