いやー、Pixate は素晴らしいですね。CSS でデザインできることがこんなに楽だったのかと改めて痛感しております。
ただ使っているうちに CSS を変更するたびに rake
を実行し rebuild してデザインを確認するのが面倒くさい、もっと楽にならんのかと欲がでてきてしまいました。
最初は https://gist.github.com/4573005 で、
- HTTP サーバに CSS ファイルを置いて更新用のボタンなど押す
- HTTP サーバ から CSS をダウンロードしてデザインを更新
というフローでやっていたのですが、サーバが決め打ちで柔軟性を持たせようとすると iOS アプリ側でサーバのアドレスを変更できるようにしないといけなくて面倒、さらに更新用のボタンを押すことすら面倒かもと、面倒なことが多すぎ!!
ということで、RubyMotion もくもく会で motion-pixate-observer という gem を作ってみました。
- iOS 側から Bonjour を使ってサーバを探し、CSS を受信するようになります。
- サーバ側は、更新している CSS を監視し更新されたらその都度 iOS 側に送信します。
- iOS 側で CSS を受信したらデザインを更新します。
という感じで、CSS ファイルを変更したら即座に反映される感じで動作します。
gem を組み込んだ後は、何も設定がいらないお手軽仕様となっております。アプリを iOS デバイスに転送したあとでも動作するので、RubyMotion もくもく会でデモをしたらものすごく受けが良かったです。
アプリの実装とデザインが分業で行われているようなところでは、実機に転送したものとサーバを渡してデザインしてもらえばよいので、お財布に優しいかもしれません。
(gem を公開した後で、Pixate の方から「私たちも同じような仕組みを検討している」とメールを頂きました。)