Prologue: In Motion
はじめに
ここ 5 年間で iOS 向けに開発された製品は、その数も種類も誰にも想像できないほどでした。とはいえ iOS 開発のプロセスは基本的には何も変わってきませんでした。Objective-C 言語には嬉しい改善点 (block や ARC, リテラル) もありましたが、長い期間にわたって Apple が Objective-C にこだわり続けようとしていることは明らかです。
そしてそれは別に悪いことではありません。動的で、オブジェクト指向を取り入れた C 言語のサブセットという Objective-C の目指すもの自体は素晴らしいです。コンパイル時の型チェックだけでなく、イントロスペクションやリフレクションのような実行時プログラミングもできるので、魔法のようでかつ安定した技術をコードに取り入れることができます。
しかしその強みにも関わらず、多くの開発者はこのニッチで風変わりな言語を iOS ソフトウェアのためだけに学ぶことの将来性を案じ、ためらっています。代わりに慣れ親しんだ、HTML5 のようなネイティブではなく結局標準以下のユーザー体験しか作り出せないものに向かってしまっています。もしもっとわかりやすい言語でネイティブかつ効率良く iOS アプリを開発できる言語があったら素晴らしいとは思いませんか? ヾ(`д´*)ノ彡☆バンバン!!
そして Motion がある
RubyMotion はそんなソリューションです。ユーザ体験を損ねること無く、Ruby で iOS アプリケーションを開発することが可能です。そして Apple の意図した通りにきちんと iOS SDK を使用するため、全てのコード例やチュートリアルは完璧に翻訳可能です。
どのように動作するのでしょうか?そうですね、技術的には Ruby の 一種 です。Ruby のもつ eval
のようなきわめて動的なメソッドは使うことができず、また functions.with(some, named: parameters)
のような新しい機能が追加されています。これによりあなたの Ruby コードは Objective-C と同じく機械語にコンパイルされます。他の言い方をすると、デバイスは RubyMotion か通常の iOS アプリか区別することができません。
もしあなたが Ruby を単に好きではない場合、RubyMotion はあなたの気持ちを動かすことはないでしょう。しかし全くのアンチ Ruby だったり、元とかけ離れた言語を使いたいと思う開発者でない限り、一度 RubyMotion を試してみることを強くお勧めします。