はじめに
Research in Motion(RIM)はBlackBerry Stormタッチフォンの発表に続いてBlackBerry Java Development Environment(JDE)API 4.7.0(およびベータ版のバージョン5)をリリースしました。この最新バージョンのJDEでは、タッチ方式のユーザーインターフェースを使用するカスタムアプリケーションの開発がサポートされています。
RIMは最新のJava ME標準にも対応しており、RIM提供の開発環境は最新のJava ME仕様(MIDP 2.0/CLDC1.1など)のすべての機能をほぼサポートしています。また、BlackBerryデバイスは独自のBlackBerry SDKを使用して記述されたJavaアプリケーションを実行し、Java MEにはない機能を提供します。これらの機能は、BlackBerryデバイスと特定のモデルに合わせて最適化されています(Stormのタッチ機能など)。
この記事では、BlackBerry JDE APIでサポートされている主要なタッチプログラミング機能についてひととおり解説し、これらの機能のプログラミング方法が分かる簡単なJavaコードを紹介します。
BlackBerry JDE API
BlackBerryデバイスは、Javaおよび.NETで書かれたアプリケーションを実行できます。Java開発者は、純粋なJava MEアプリケーションを開発することも、RIM独自のSDK(後述)に基づくアプリケーションを開発することもできます。Java MEのサポートは、デバイスの種類およびデバイスに導入されるSDKのバージョンに依存します。
デバイス、SDK、およびJava ME互換性の対応については、BlackBerryの(使いにくいけれども内容は充実した)ソフトウェア開発者向けWebサイトを参照ください。非常に役に立つ資料が豊富に提供されています。このリソースを有効に利用するには、最初にBlackBerryでのソフトウェア開発を紹介したビデオとAPIドキュメントを見るとよいでしょう。その後で、BlackBerry SDKのJavadocを読んでください。BlackBerryでのプログラミングに関する最も詳細な情報が記載されています。
開発にあたって、RIMはデフォルトの開発プラットフォームとしてEclipse 3.4.0または3.4.1を推奨しています。また、無料のEclipseプラグインとしてBlackBerry IDE(デバッガーと高機能のマルチデバイスシミュレーターを完備)が提供されています。BlackBerry IDEについてはこの記事で紹介します。
BlackBerry用タッチプログラミングの概要
BlackBerryのタッチ指向プログラミングの基礎は、タップ、ジェスチャー、仮想キーボードという3つの概念で構成されています。これらの概念は、BlackBerryプラットフォームにプログラミング可能な機能として組み込まれています。BlackBerry SDKを実行するタッチスクリーン式デバイスでは、タップはライトタッチ、ダブルタップ、プレスホールド、プレスアンドドラッグ、およびマルチタッチ(2つのUIアイテムを同時にタッチ)として認識されます。また、ジェスチャーは、UI上での1つ以上の接点(つまり指)の動きと、指定されている4つの方向(NORTH、EAST、WEST、SOUTH)として認識されます。動作の特徴は、スワイプ(叩くこと)、移動してタップ、またはクリックとして表されます。
仮想キーボードは組み込みのUIコンポーネント(net.rim.device.api.ui.VirtualKeyboardクラスのインスタンス)であり、ユーザーが入力フィールドUIコンポーネントに入力するときに自動的に表示されます。または、プログラムで仮想キーボードシングルトンを画面から取得し、インスタンスでshow
メソッドを実行することで、仮想キーボードを表示することもできます。
VirtualKeyboard keyboard; MainScreen screen = new MainScreen( MainScreen.VERTICAL_SCROLL ); keyboard = screen.getVirtualKeyboard(); keyboard.setVisibility( VirtualKeyboard.SHOW );
次に示すコマンドのグループは、net.rim.device.api.ui
パッケージ内にTouchEventクラスおよびTouchGestureクラスの定数としてモデル化されています。
- タップジェスチャーとドラッグジェスチャーは、タッチイベントの2つの異なるグループとして認識されます。
- タップとクリックは、従来のコマンドボタンやトラックボールのクリックと互換性のある単純な入力です。
- タッチジェスチャーは、画面の並べ替え、アイテムのドラッグ、およびスクロールのためのコマンドです。
BlackBerry SDK 4.7以降を実行し、タッチ操作がデフォルトで有効になっているデバイスは、もともとタッチ操作用に開発されていないアプリケーションであってもタッチ機能をサポートできます。自動的にアクティブ化される仮想キーボードを使用することで、SDKは、クリック、スクロール、編集フィールドへのテキスト入力などのイベントを、タップ、ジェスチャー、または入力により自動的に処理します。
ただし、これらの機能はいくつかの非常に基本的な動作のみに限定されます。さらに高度で特殊なユーザーインターフェース(UI)対話機能を提供するには、カスタムコードで独自のハンドラを作成する必要があります。
仮想キーボードのレイアウトは画面の向きによって異なります。横長の場合は、完全なキー配置の仮想キーボード(QWERTYキーボード)が表示されます。縦長の場合は、2つの文字が1つのフィールドに配置された省略形式の仮想キーボードが表示され、ユーザーが選択したキーの実際の値は、キーがクリックされた回数を数えることで取得されます。
キーボードの外観とレイアウトの制御だけでなく、BlackBerry SDKでは、スペルチェックイベントをプログラムで制御することもできます。この機能についてはこの記事では説明しませんが、仮想キーボードのスペルチェッカーのプログラミングに興味がある場合は、net.rim.blackberry.api.spellcheck
パッケージでクラスとサポートされるイベントを調べてみてください。