2011年6月8日水曜日

誰でもAndroid開発できるApp Inventor

 「App Inventor for Android」とはGoogle Labsで公開されているAndroidアプリを作成ツールです。通常Androidアプリ作成/開発を行うには「Eclipse」というツールを使用し、プログラミング言語はJavaで開発するものと決まっていました。
 
 しかし、このApp InventorではEclipseもJavaのコードも使用しません。Webブラウザ上で画面をデザインし、Javaアプリ上でパズルのような部品を組み合わせてイベントを組み立ててAndroidアプリを作成します。
 
 App Inventorはもともと、プログラミングを専門的に学んだことがない学生がプログラムの作り方の基礎を学ぶために作られました。アメリカでは高校やコンピュータサイエンスを専門としない大学での授業でも利用されています。
 
 App Inventorは教育目的のツールであるため、プログラミングの経験が少ない人でも手軽にAndroidアプリの開発を始められます。また、パーツをつなぎ合わせることでアプリを作るので、コーディングの必要がなく、バグの入り込む余地が非常に少ないことも特徴に挙げられます。
 
App Inventorの構成
名称 説明
Google App Inventor Servers デザイナとブロックエディタを同期し、Androidアプリを生成する役割を持つ
App Inventor Designer 画面などの部品をレイアウトするWebアプリ。Webブラウザ上で動作する
App Inventor Blocks Editor ボタンをクリックしたときの動作といった、イベントを定義する。イベントはパズルのような形をしたブロックを組み合わせて定義する。Javaアプリとして動作する
Android Emulator 作成したアプリをPC上で動作させるためのエミュレータ
Android Phone アプリを動作させるAndroidケータイを指す。ただし、App Inventorで動かす場合デバッグモードにする必要がある(変更方法は後で解説)
 
 
 Webブラウザで「デザイナ」と「ブロックエディタ」
 ここで説明するのは主に「App Inventor Designer」(これ以降は「デザイナ」と呼びます)と「App Inventor Blocks Editor」(これ以降は「ブロックエディタ」と呼びます)です。
 デザイナでアプリの画面を作成し、ブロックエディタでイベントを定義します。これらは「Google App Inventor Servers」を介して常に同期しています。ですので、デザイナとブロックエディタ両方を開いている状態で、イベントを設定している部品を削除しようとすると警告が出たり、デザイナで部品を追加するとブロックエディタで編集できるブロックが増えたり、と両者の間で整合が取れるようになっています。
 つまり、私たちがデザイナとブロックエディタ間の同期を意識することはありません。
 App Inventorの基礎となっているもの
 App Inventorの構成を見ていきましたが、これらはどのように実現されているのでしょうか。App Inventorはブロックエディタを使ってイベント処理を定義します。ブロックエディタはMITで作られた「Open Block Java Library」を使用しています。
 また、ブロックエディタで作られたイベントは「Kawa Language Framework」を使ってダイレクトにJavaのバイトコードに変換されます。
 これらのようなMITの長年の研究と、OSSによってApp Inventorは成り立っています。
App Inventorで出来ること・出来ないこと
 20113月現在で大まかに出来ることと出来ないことを列挙すると、以下のようになります。
  • 出来ること
  • ボタンやテキストボックスなどの画面部品の操作に伴うイベントの設定
  • 画像、音声、動画などのマルチメディアコンテンツの利用
  • 条件分岐や繰り返し処理の利用
  • カメラやGPSセンサの利用
  • 出来ないこと
  • Android Marketでアプリを公開
  • Andoridケータイにインストールされている他のアプリと連携
  • マルチバイト文字が扱えない
 
 

0 件のコメント:

コメントを投稿