Что такое RubyMotion?
RubyMotion - это набор инструментов, который позволяет вам писать действительно нативные приложения для iOS, Android, OSX, Apple Watch и AppleTV с синтаксисом, похожим на Ruby. Это не транспилятор (конвертирующий ваш код в Objective-C). Ваше приложение статически компилируется так же, как Objective-C или Swift компилируются в собственный код. RubyMotion - это, по сути, новая реализация Ruby, предназначенная для создания мобильных приложений.
Зачем использовать RubyMotion?
Одним из основных преимуществ использования RubyMotion является то, что вам не нужно изучать новый язык, чтобы начать создавать мобильные приложения. Вы можете использовать уже знакомый язык Ruby. Если вы еще не знакомы с Ruby, вы обнаружите, что Ruby намного легче читать и писать, чем Objective-C, Swift или Java. С практической точки зрения, вы немного узнаете об Objective-C, чтобы перевести некоторые примеры или документацию.
Второе преимущество - это возможность создавать кроссплатформенные приложения. Устраняя языковые различия, RubyMotion может позволить вам написать одно приложение, которое поддерживает iOS и Android в рамках одной и той же кодовой базы. На практике создание кроссплатформенных приложений в единой кодовой базе зависит от использования какой-то структуры, которая абстрагирует различия между пользовательскими интерфейсами, зависящими от платформы. К счастью, уже есть несколько отличных фреймворков, которые добиваются прогресса в этой области. Тем не менее, возможность повторного использования кода по-прежнему существует благодаря общему языку.
Установка RubyMotion
Следует отметить, что RubyMotion работает только на Mac. Это связано с тем, что RubyMotion по-прежнему требуется доступ к библиотекам Apple и инструментам сборки, чтобы скомпилировать ваше приложение и запустить симулятор iOS. Вам также необходимо убедиться, что у вас установлен Xcode. После установки Xcode откройте Xcode ›Настройки, щелкните вкладку« Загрузки »и установите iOS SDK 9.2.
Чтобы начать использовать RubyMotion, вам сначала нужно зарегистрироваться для получения лицензии и загрузить установщик. Посетите страницу загрузки RubyMotion и выберите один из следующих планов:
- Бесплатно («для начинающих») - отлично подходит для опробования RubyMotion. Вы даже можете опубликовать приложение в App Store, но на вашем стартовом изображении будет отображаться сообщение о том, что оно было «Сделано с RubyMotion». Также обратите внимание, что бесплатный план поддерживает только последнюю версию iOS и Android.
- Инди (199 долларов в год) - вам, скорее всего, понадобится этот, если вы планируете заниматься каким-либо профессиональным развитием. Поддержка ограничена форумами сообщества (и нашим каналом сообщества Slack).
- Профессиональный (499 долларов США в год). Если вам нужна приоритетная поддержка, этот план для вас.
После регистрации плана вы получите электронное письмо с лицензионным ключом и ссылкой для загрузки установщика.
Создание вашего первого приложения
Теперь, когда у вас установлен RubyMotion, давайте создадим ваше первое приложение. Откройте приложение "Терминал". Обратите внимание, что это руководство было написано с использованием RubyMotion 4.8.
RubyMotion поставляется с несколькими шаблонами для запуска вашего проекта. Чтобы увидеть все шаблоны, введите motion create:
По умолчанию используется шаблон iOS, поэтому начните с этого:
Это создаст структуру каталогов, которая выглядит следующим образом:
Rakefile - это точка входа в ваше приложение RubyMotion. Откройте его, и вы найдете информацию о конфигурации для своего приложения. Он начинается с загрузки файла шаблона проекта RubyMotion, который добавляет все задачи Rake, которые будут использоваться для компиляции приложения.
Чтобы запустить приложение в симуляторе iOS, запустите задачу rake по умолчанию:
Если все пойдет хорошо, вы должны увидеть запуск симулятора iOS и отобразить экран, который выглядит следующим образом:

Если вы не видели всплывающего окна симулятора, пора выяснить, что пошло не так. Возможно, я забыл объяснить шаг. Вот несколько мест, где вы можете попытаться найти помощь:
- Найдите ответ на Форумах сообщества RubyMotion.
- Обратитесь за помощью в наш канал RubyMotion Slack.
- Задайте свой вопрос в комментариях ниже.
Если вы зашли так далеко, значит, вы устранили любую конфигурацию системы и зависимости, необходимые для разработки приложения RubyMotion.
Затем давайте взглянем на файл app_delegate.rb. Это точка входа в ваше приложение для iOS.
В созданном образце делегата приложения вы можете увидеть следующее:
- Создайте контроллер представления.
- Создайте контроллер навигации с контроллером представления в качестве корневого.
- Создайте окно с навигационным контроллером в качестве корневого.
RubyMotion делает этот код намного проще для чтения, чем его эквивалент Objective-C. Тем не менее, это все еще довольно много шаблонного кода, позволяющего выполнять очень мало, и он не очень похож на тот код Ruby, который вы привыкли писать. К счастью, доступно несколько различных фреймворков, которые значительно упрощают шаблонный код iOS.
В следующем руководстве мы познакомим вас с отличным фреймворком RubyMotion под названием RedPotion, который значительно улучшит ваш опыт разработки RubyMotion для iOS.
Начало работы с RedPotion для более быстрой разработки под iOS
Это руководство изначально появилось в блоге Portland RubyMotion Meetup. Если вы находитесь в районе Портленда, приходите к нам на следующую встречу!