BlackBerryアプリ開発の要点
開発する成果物は3種類ある
開発者がBlackBerry向けにアプリケーションを開発する場合、開発する成果物は、以下の3つのカテゴリに大別されます。(1)テーマ(ユーザー・インタフェース)、(2)Webアプリ(サーバー側)、(3)Javaプログラム(クライアント側)です。 今回は、これらを開発する際の要点を解説します。
RIMが用意している開発者向けのポータル・サイトから、各種開発ツールやマニュアルを無償で利用できます。
(1)テーマやアニメーションの開発
Windowsなどのテーマと同様、BlackBerryの待ち受け画面や各種アイコン、電話使用時の画面といったUI(ユーザー・インタフェース)のデザインを、細部までカスタマイズできます。有償無償を含めて、多数のテーマが公開されています。
また、SVG(Scalable Vector Graphics)の機能を利用することで、アニメーション効果も付加できます。
テーマおよびアニメーションを開発するための、BlackBerry Theme Studioと呼ぶ統合開発環境が用意されています。
(2)Webアプリケーションの開発
BlackBerryのWebブラウザからアクセスするWebアプリケーションの開発が必要になる場合があります。
WebアプリケーションはRIMの開発ツールを利用しなくても開発できますが、Webブラウザ側の画面設計には、PC上で動作するBlackBerry シミュレータによるテストや、専用の開発ツールによるJavaScriptのデバッグが有効です。
Eclipse(Java開発)とVisual Studio(.NET開発)向けに、BlackBerryを用いた開発を支援するプラグインを提供しています。
BlackBerry Widgetと呼ばれる、HTML、JavaScript、CSSなどBlackBerry側に配布するクライアント・アプリケーションの単位でソフトウエア要素をまとめてパッケージ化する開発手法も用意しています。
BlackBerry Widgetによって、JavaScriptからBlackBerry固有の機能(メールやアドレス帳、GPSなど)を利用できるため、 BlackBerryのネイティブ・アプリケーションに近いアプリケーションをJava言語を使うことなく開発することが可能になります。ただし、BlackBerry Bold 9700に搭載されているBlackBerry OS 5.0以上が必要です。
(3)端末側で動作するJavaプログラムの開発
BlackBerryは、OSそのものや付属アプリケーションの大部分が、Javaで作成されています。このため、Java言語は、 BlackBerryの機能を100%活用できるアプリケーションの開発手法です。BlackBerry固有のフレームワーク(ソフトウエア部品)の使い方を習得する必要があるものの、非常に柔軟な開発が可能です。
セキュリティとプッシュ配信が特徴
第1回と第2回で述べた通り、BlackBerryは、端末、ネットワーク、サーバーなど、各階層にわたってセキュリティを制御しています。極めてセキュリティが高いモバイル系プラットフォームと言えます。
開発の自由度が高く、得てしてセキュリティが低くなりがちなJavaアプリケーションであっても、一元管理サーバーであるBlackBerry Enterprise Server(BES)のセキュリティ制御の下でアプリケーションが稼働するため、セキュリティを高く保つことができます。
BESのセキュリティ制御の下では、管理者が許可したアプリケーション以外はインストール自体ができないほか、インストールを許可した場合であっても、アプリケーション単位で端末側の各種機能にアクセス制限を課すことができます。
例えば、GPSやメールの機能など個々の機能へのアクセスに制限を施した場合、サード・パーティ製のアプリケーションから機能をAPIで呼び出しても、実行できません(図1-1)。
デジタル署名による認証機能も備えています。第三者が開発したアプリケーションがBlackBerry端末の各種機能を利用するためには、開発者のデジタル署名が必要です。署名用のキーはRIMのWebサイトから直接入手する必要があります(発行料金は20ドル)。この署名システムによって、悪意のあるアプリケーションの流通を防いでいます。
セキュリティ機能に加えて、サーバー側からのプッシュ配信を実現している点も、BlackBerryの大きな特徴です。プッシュ配信機能は、メール機能などが標準で利用するほか、ユーザーが開発したWebアプリケーションやJavaアプリケーションからも、自由に活用できます。
プッシュ配信機能は、一元管理サーバーのBESの上で設定するだけで、簡単に実現できます。端末側からサーバー側に新着情報を確認しにいくプル型の操作を一切行わないアプリケーションも開発可能です。通信量を抑え、バッテリを節約しつつ、かつリアルタイムでイントラネット(業務サーバー)側の更新情報を端末へ送信できます(図1-2)。
次ページからは、実際にアプリケーションを開発する上でのポイントを、例を挙げながら解説していきます。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- BlackBerryの利便性
- BlackBerryのセキュリティ機能
- クラウドWebサービスの概要とサンプル画面操作
- 結局、iPhoneってなんなの?
- Firebaseの機能と特徴
- HTML5でクロスプラットフォーム開発を実現する4つのツール
- ニフティ、スマートフォンアプリ開発に特化したクラウドサービス「ニフティクラウド mobile backend」を提供開始
- WebAssemblyとRustが作るサーバーレスの未来
- Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす
- 注目のWebAuthnと公式より早いKeycloak最新動向を紹介!OSSセキュリティ技術の会 第5回勉強会