Twitterが提供しているモバイルアプリ向けSDKのFabricをRubyMotionで使ってみました。

Fabricでは大きくCrashlytics、MoPub、Twitterの3つのモジュールが提供されますが、今回試したのはTwitterのモジュールです。

基本的にはMaking Fabric Play Nice with RubyMotion — Mediumにある通りなんですが、うちの環境ではCoreDataを使う設定にしないとダメだったりしたので、手順をざっとまとめておきます。

Xcodeで新規プロジェクトの作成

Fabricの入手や設定などは、[iOS]FabricでTwitterクライアントを作った — Qiitaに詳しい手順がありますので、そちらをどうぞ。

Xcodeを使ってFabricをビルドするため新規プロジェクトの作成します。Single View Applicationを選択。

/attachment/aszYQgR-nnAoas.png

/attachment/Y6u_rWefOtyj2p.png

RubyMotionで新規プロジェクト作成

RubyMotionで新規プロジェクトを作成後、vendorディレクトリを作成して、XcodeのプロジェクトにあるFabric.frameworkとTwitterKit.frameworkをコピーします。

Rakefileの変更

Making Fabric Play Nice with RubyMotion — Mediumの手順の通りにMakefileを設定し、Rakeしたところ以下のエラーが。

Undefined symbols for architecture i386:
  "_NSInMemoryStoreType", referenced from:
      -[TFSScribe _setupManagedObjectContext] in TwitterKit(TFSScribe.o)
  "_NSSQLitePragmasOption", referenced from:
      -[TFSScribe _setupManagedObjectContext] in TwitterKit(TFSScribe.o)

FrameworkにCoreDataを追加してRakeしたらうまくいきました。最終的なRakefileはこんな感じ。

ログインからタイムラインの表示まで

ログインコントローラーの作成

作成したログインコントローラのコードはこんな感じ。(Fabric入門のコードをRubyMotionに置き換えただけです)

Fabricが用意しているログインボタンを使うため、リソースをシンボリックリンクしておきます。

$ cd resources 
$ ln -s ../vendor/TwitterKit.framework/Resources/TwitterKitResources.bundle .

/attachment/umJSkpdah-VDoT.png

タイムラインコントローラーの作成

タイムラインを表示するためのコントローラはこんな感じ。

FabricのTWTRTweetTableViewCellがよしなに計らってくれるので、これだけのコードでこんな感じに描画できます。

/attachment/UM1N6ycDOUGJOo.png 表示形式をカスタマイズしないのであれば手軽に使えますね。