Googleが、マウスでビジュアルにプログラムを作れるAndroidの開発ツールをリリースする、といって話題となったのは今からしばらく前。とりあえず申し込みだけして忘れていたのだけど、今朝、Googleからメールが届いて、「あんたもApp Inventorが使えるようになってるよ」とのこと。さっそく触ってみた。
App Inventorは、ローカル環境で動くスタンドアロンな開発ツールと思っていたけれど、実際に見てみると「Webアプリケーション」「Java Web Startプログラム」「Android SDKの拡張プログラム」の3つの複合体のようなものであるようだ。使用には、まずApp Inventor Extrasをダウンロードしてインストールしておく。そしてhttp://appinventor.googlelabs.com/にアクセスすると、ブラウザ内にApp Inventorの開発画面が現れる。
新規にプロジェクトを作成すると、左側に部品類、中央に画面のデザイナ、右側に各種のプロパティエディタが並んだ画面になる。このあたりは、EclipseやVisual Studioなどでもおなじみのデザインだろう。左側の部品のパレットから使いたい部品を中央のデザイナにドラッグ&ドロップし、そのプロパティを編集する、といった形でデザインを行っていく。
部品は、画面に表示されるビジュアルなものだけでなく、例えばセンサーとかメディア、ノーティファイア(トーストの表示)など、非表示のものもある。要するに、プログラム内で利用するオブジェクトはみんな部品としてパレットに用意されているわけだ。が、逆にいえばパレットに用意されている機能しか使えないことになる。
ざっと見たところ、基本的な部品類以外にも、実用で役立つものがけっこう揃っているようだ。例えばデータベースとか、バーコードリーダー、音声認識、テキスト読み上げ、各種メディアのプレーヤー、メールやアドレス帳のピッカー、Twitterなど、「これがあると面白いことができそうだ」という機能は一通り揃っている。このあたりは、さすがAndroidという端末をわかってらっしゃる、という感じだ。
配置した部品へのコーディングは、ここからJNLPファイル(Java Web Startの起動ファイル)をダウンロードし、Javaのプログラムをロードして行う。新しく現れるウインドウには、左側に部品のジャンルを示すボタン類が並び、右側には広い配置エリアが表示される。使用したいジャンルのボタンをクリックすると、そのジャンルの部品がポップアップして現れるので、そこから使いたいものを配置エリアにドラッグして並べていく。
この部品類は、ジグソーパズルのピースみたいに部品どうしがカチッと嵌めこまれて連結されるようになっている。こうして部品を順番に並べて組み込んでいくことで処理を作成していけるというわけ。これ、どっかで見たことあるな……と思ったが、Scratch(Smalltalkの子供向け開発ツール)にそっくりだ。そういえば、Scratchの技術をうんぬんと書いてあった気がするぞ。
こうして、Webブラウザで画面GUIを、Javaプログラムでコードをそれぞれ作成したら、ボタンをクリックすればUSB接続された実機でプログラムが実行され、動作を確認することができる。実際にちょこっと試してみたが、表示や動作そのものは通常のAndroidのプログラムと全く同じ。App Inventorだから……というような部分はまったく見えなかった。
用意される部品がどれだけ充実するかにもよるが、非常に簡単にアプリケーション開発が行えることは間違いない。ちょっとしたアプリを作るのにはかなり重宝しそうだ。ただし、この種の「ビジュアルに部品を並べてプログラムを作る」というタイプのツールは、複雑な処理、長い処理になってくると、逆にコードを直接書くより煩雑でわかりにくくなる。個人的には、コードエディタと併用できるようになっていれば、更には両者が2way方式(相互に変換できる)ようになっていれば完璧なんだがな……。例えば、部品を並べてざっと作ったら、コードエディタに切り替えると配置した処理がソースコードとして出てきて、それを直接編集してまたビジュアルエディタに戻す――というようなことができると、非常に強力と思うのだが。
また、Webベースのツールというのはいいのだけど、エディタ部分がJava Web Startというのは、正直、使い勝手があまりよくない。このへんももっと統合されるといいんだけどな。Googleの技術なら、ビジュアルエディタ部分をHTML5で作り直し、すべてWebベースにすることは可能だろう。
とりあえず、「Android開発の敷居をぐぐっと引き下げる」という点においては、このApp Inventorはかなり強力だ。後は、これがどれくらい浸透するか、だな。Googleは、宣伝で稼いでいるくせに、自社製品の宣伝はえらく下手くそだから……。
コメント
コメントを投稿