ちょっとeclipseでAndroidのアプリを写経してみて感じたこと。
まず最初に、Webサービスのコードに慣れた(囚われた)目で見ていることをお断りしておく。もちろん与太話。
Activity(≒画面)の遷移の方法はIntentを使った2,3パターンに限定されているので、Activityと画面遷移でアプリケーション全体を記述するDSLから、ソースコード、リソースへ落としていくのが、開発工程短縮に大きく効きそう。つまりはRails on Androidだ。RESTfulなデータ永続化のスキームもあるわけだし、Androidが内部でサービスを公開しているIntentの仕組みそのものがRESTに近いものなわけだし。
Railsっぽくやれる開発ツールはあるはずだが、どうせ有料なので、自分はよくあるActivityの遷移パターン(バックグラウンド処理をhandlerにまかせるパターンもそんなに多くない)を、最初に自分でとりそろえてしまう予定。それこそ、どっかのサンプルコードを手元に保存しておくだけでも大体間に合う。
RoRはMVCを簡単に具現化するシステムであったが、それはAndroidアプリでも変わらない。ただし、AndroidアプリはデータがCRUDできればうれしいわけではなくて、CRUDを可視化、PC無しで(CRUDの一部を)可制御化するところに重点がある。つまり、Notification(の受信)とUpdate。これだけで成り立っているアプリは相当多いんじゃないだろうか?
これについても、Rails的対応は可能だろう。データ(Model)の本質だけではなくて、通信手段を選択するだけで、たいていのアプリは記述できてしまう。そこだけをDSL化する。(現実には、UXの工夫の部分の工数が一番大きくなるのかもしれないし、ユーザーへのアピールポイントは、そこだけなのだろうが)