RubyMotion Conference に参加するため @satococoa さんとベルギーへ行ってきました。私の残念な英語力で理解できた範囲でとりとめもなく書いています。
1 日目
A Brave New World: Learning iOS for the Ruby Refugee : Nick Quaranto
Basecamp を作る際に、アプリの設定周りは motion-settings-bundle、UI のレイアウトは motion-layouts と gem を作ったんだという話でした。
Behaviour Driven Motion using Calabash : Karl Krukow
Karl は Calabash というテストフレームワークをメンテナンスしているんだって。
Calabash はクロスプラットフォームな BDD スタイルなテストフレームワークで、Cucumber を内部で利用しているみたいです。RubyMotion からは motion-calabash gem で Calabash を使えるようにしてあるそうです。
カンファレンス用にサンプルのレポジトリが公開されています。
- https://github.com/krukow/motion-calabash-inspect2013
- https://github.com/calabash/rubymotion-inspect
アプリがどのように振る舞うべきなのか文章で書けるんだぜとデモをしていました。シミュレータでも動くし、デバイス上でももちろん動く。テスト中の動作をスクリーンショットで保存することもできるようで、テスト結果を HTML で保存するデモもしていました。(実行時にコマンドにオプションみたいなのを与えていたけど、README には書かれていない?)
Cucumber がテストフレームワークとして流行っているのかはさておき、こういったテストフレームワークが登場するのは多様性があって良いように思いました。
Elevate your Intent : Matt Green
スライド : https://speakerdeck.com/mattgreen/elevate-your-intent
Accessibility and RubyMotion : Austin Seraphin
スライド : http://www.slideshare.net/mobile/AdrianoMartino/ruby-motion-andiosaccessibility
視覚障害者にとっても使いやすいアプリを作りましょうという話でした。iOS では UIAccessibility を適切に使用すると VoiceOver 機能によって、配置されている UI の要素を読み上げてくれます。
RubyMotion では UI のテスト spec でアクセシビリティラベルを記述しどのボタンをタップするか指定するようになってます。元々はテストしやすいようにラベルを設定していただけなのでしょうが、これが視覚に障害のある方にとって使いやすいアプリになる一歩で素晴らしいということでした。
Concurrency in RubyMotion: Use the Multicore Luke! : Mateus Armando
スライド : https://speakerdeck.com/seanlilmateus/concurrency-patterns-in-rubymotion
RubyMotion がリリースされる前から MacRuby でいろいろ遊んでいる彼は、GCD と NSOperationQueue を用途に応じて使い分けているようでした。
2 日目
More Than You Need to Know About CocoaPods : Eloy Durán
CocoaPods で扱っているライブラリが 1200 個を超えたそうです。今度はライブラリのドキュメントを改善するために CocoaDocs.org というものを立ち上げているそうです。ライブラリのドキュメントを AppleDoc 形式で出力して、Xcode から参照できるようになるそうです。
Future として
- Improve command-line interface
- Support multiple targets
- Support different configurations
- Translate API documentation for RubyMotion
とのことでした。
Goodbye IB, Hello Teacup : Colin T.A. Gray
teacup gem の使い方をデモしてました。最後の方で Kiln というライブラリのデモもしていましたが、こちらはまだ公開されていないようです。https://github.com/colinta/kiln で公開されました。motion-xray という名前に変更したようです。
Kiln を使うとデバイス上で、UI 要素がどの座標に配置されているかとか、UI の階層構造を確認できたり、配色を変更できるようになるそうです。変更内容は teacup のスタイルでエクスポートできるようです。導入もすごく簡単そうでした。
Using BubbleWrap to Quickly Build RubyMotion Apps : Marin Usalj
スライド : https://speakerdeck.com/mneorr/bubblewrap
Cocos2D, an Easier Way : Juan Karam
スライド : https://speakerdeck.com/curveberyl/cocos2d-an-easier-way
Box2D ライブラリが C++ で書かれていて RubyMotion で扱えない、ガッデム!! → JoyBox gem という Cocos2d + Box2D for RubyMotion なラッパーライブラリ作ったよ、という話でした。
デモもありましたがなかなか良さそうな感じでした。まだいろいろ足りてないところがあるらしいので、pull request ウェルカムですとのことでした。
カンファレンスでデモしていた JoyBox のデモアプリ が公開されています。
RubyMotion: Past, Present and Future : Laurent Sansonetti
RubyMotion を作る前は何をしていたかとか、今後のロードマップみたいなことを言ってました。以前に何してたのかはインタビュー記事とかにあった内容でした。
Future
- メンバーは今4人だけど、近々1人増えるそうだよ
- RubyMotion のツールチェインを改善したい
- コード生成 : モデルのテンプレートを出力とか。
- Profiler
- static code analyzer : 実行してから Typo でエラーになってがっかりするからね。
- More platforms
来年のカンファレンスをどこでする?暖かいとこ?寒いとこ?って話がありました。
ベルギーは道案内の看板とか日本みたいには特になく、あったとしてもフランス語ばかりで一人で行っていたら確実に迷っていたと思います・・・。ビールはもちろん食べ物も全然おいしかったです。
現地で日本からの 2 名の参加者に会うことができました。コンシューマ向けのゲーム機が登場する前、パソコンでしかゲームができなかった頃から 20 年くらいゲーム業界に携わっていてるそうです。酒の席でしか聞けないようなオフレコな話しがたくさんあるようで楽しかったです。FF9 の開発に参加してたとか、昔はゲームの前に OS を作るとこからやってたので、今は恵まれているそうです。横浜から来たそうで、勉強会とか来てくださいよと宣伝しておきました。
私の英語力ではしんどいなぁというのが全体的なところでした。次までにはどうにかしたいな。