誰でもAndroid開発できるApp Inventorの基礎知識:App Inventorでアプリ開発はどこまでできるのか(1)(1/3 ページ)
プログラミング未経験でも手軽にAndroidアプリが作れるApp Inventor。本連載では、App Inventorでアプリを作り、使用しているコンポーネントに関して実際にJavaのAPIと比較して、できることを検証していきます。
「コードが書けない」人を救う「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の構成
次に、App Inventorの構成を見てみます。以下の図はApp Inventorのサイトにあるものです。ここで表されているものが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で出来ること・出来ないこと
2011年3月現在で大まかに出来ることと出来ないことを列挙すると、以下のようになります。
●出来ること
- ボタンやテキストボックスなどの画面部品の操作に伴うイベントの設定
- 画像、音声、動画などのマルチメディアコンテンツの利用
- 条件分岐や繰り返し処理の利用
- カメラやGPSセンサの利用
●出来ないこと
- Android Marketでアプリを公開
- Androidケータイにインストールされている他のアプリと連携
- マルチバイト文字が扱えない
App Inventorはまだ発展途上なので、今後もできることは増えていきます。できないことに関しても減らしていこうという流れになっているようです。できない中にあるマーケットに公開できないところも改善に向けて進めているようです。
概要の説明は以上にして、次ページでは、App Inventorのセットアップを行います。
この連載の目的
この連載の目的はApp Inventorの特徴と限界を知り、使いどころを判断するための材料を提供することにあります。
@IT読者の多くはプログラミングの知識が豊富だと思います。そういう方はApp Inventorを使うのではなく、初めからJavaで作ればよいという方もいると思います。しかし、App Inventorの限界を知り、特性を生かせばJavaで開発するのに比べて効率良くAndroidアプリを作ることも可能です。
そのため、本連載はApp Inventorでアプリを実際に作り、使用しているコンポーネントに関して実際にJavaのAPIとの比較を行うという流れで進めていきます。
今回はまず準備としてApp Inventorのセットアップを行います。そして、シンプルなAndroidアプリを作って実機で動作させるまでの流れを説明し、App Inventorでのアプリケーション作りの流れを理解していただきます。
Copyright © ITmedia, Inc. All Rights Reserved.