雑文発散

«前の日記(2009-01-06) 最新 次の日記(2009-01-13)» 編集
過去の日記

2009-01-07 [長年日記]

[Mac][CakePHP] コードを書かずに iPhone 対応の Web アプリが作れるという ModelBaker が面白そうだ

Widget Press introduces ModelBaker 1.0: Rapid Application Development」というプレスリリースに「コードを書かなくても iPhone / iPod touch や Android 用の Web アプリケーションが作れちゃうアプリをリリースしたぜ!」(意訳)と書かれていたので、気になってちょっと見てみた。

そのソフトウェアの名前は「ModelBaker」。本体は Mac OS X 用のアプリケーションなので、最初はファイルメーカーのようなイメージなのかな?と思ったら全然違っていた。ModelBaker は、「CakePHP を使った Web アプリケーションを GUI で作成できる」という製品だった。

ModelBaker では、MVC(Model / View / Controller)をマウス操作で作成することができる。Model であれば、そのモデルに内包されるアトリビュート名称とデータ型を指定し、さらにバリデーションの内容も指定できる。モデル間の関係(HasOne / HasMany / BelongsTo / HABTM)も GUI で設定でき、その関連は UML 的な表現でグラフィック表示してくれるので、分かりやすい。

ModelBaker Model

コントローラに関しても設定できるようだが、ModelBaker 上ではコードの記述ができないので、スケルトン的な記述に留まるようだ。

ModelBaker View

また、ビューに関しても基本的な設定だけで、細かなカスタマイズはできない様子。

ModelBaker Controller

モデルの設定には強いけど、コントローラやビューは弱いので、名前が ModelBaker なのかも知れないな。

で、MVC の設定が終わったら、次は「Build」という流れになるのだが、そのまえに「Setting」で Build Path を設定しておかないとエラーになってしまう。

ModelBaker Setting

Build Path の設定が終わったら、おもむろに右上の「Build and Go」をクリックすると、指定したパスに CakePHP のアプリケーションが書き出されるという動きになる。

ModelBaker Build

実際に書き出されたファイルはこんな感じ。

 $ pwd
 /Users/suzuki/Sites/modelbaker_test
 $ ls -lFa
 total 24
 drwxr-xr-x@  8 suzuki  staff   272  1  7 22:02 ./
 drwxr-xr-x+ 11 suzuki  staff   374  1  7 22:01 ../
 -rw-r--r--@  1 suzuki  staff   139  6 15  2006 .htaccess
 -rw-r--r--@  1 suzuki  staff  1158 12 26 08:21 README
 drwxr-xr-x  16 suzuki  staff   544  1  7 22:02 app/
 drwxr-xr-x@ 11 suzuki  staff   374  1  7 22:01 cake/
 -rw-r--r--@  1 suzuki  staff  1281  1  7 22:02 index.php
 drwxr-xr-x@  5 suzuki  staff   170 12 26 10:15 vendors/

CakePHP を触ったことがある人なら、見慣れたディレクトリ構成だろう。要するに ModelBaker では、CakePHP でアプリケーションを作成するのに必要なファイル(models / controllers / views ディレクトリ以下に記述するファイル)を GUI で設定した通りに自動記述してくれるのだ。

CakePHP 標準添付の bake コマンドでスケルトン作成も良いけど、こういった GUI での操作の選択肢があるのはアリかも知れないなぁ。

で、iPhone / iPod touch / Android の話はドコよ?と思った訳だが、どうやら iUI を使って実現するらしい。Settings の中にある「Include Apple iPhone & iPod Touch and Google Android version of web application」というチェックボックスをチェックすると、iUI も書き出される、という仕組みの模様。