本連載で、SDKとEclipseを使ってAndroidの携帯端末で動くJavaアプリを作成し、Android Marketでの配布を目指しましょう
作成したアプリをできるだけたくさんのユーザーに使ってもらうためには、どうすればよいでしょうか。
これまでのケータイアプリでは、“配布する場所”と“方法”が最も重要でした(参考「携帯アプリを無料で公開して使ってもらうには?」)。Androidアプリの場合は、あらゆるユーザーがAndroid Marketからアプリをダウンロードするため、配布場所と方法は確立しています。「あらゆるユーザー」とは、「あらゆる“国”の、あらゆる“端末”を持つユーザー」という意味になるため、アプリがカバーする言語や端末を増やすことが多くのユーザーを取り込む第一歩となります。
そこで重要なのは、「英語をサポートすることだ」と考えます。
Androidには、複数の言語がプリセットされていて、ユーザーの好みに応じて言語を切り替えられるようになっています。
なお、2009年6月17日に公開されたSDK 1.5 r3から、日本語IMEとして「OpenWnn」が組み込まれています。ようやく日本語入力環境が完備されたといってよいでしょう。
ユーザーが言語を切り替えると、端末全体がその言語に切り替わりますが、「それに連動してアプリも言語が切り替わる」という仕組みがAndroidには用意されています。今回は、その仕組みを利用して国際化対応アプリの作成方法を解説します。
また、同じ仕組みを利用して、端末のハードウェア的な差異にも対応可能です。多くの端末をサポートすることもユーザーのカバレッジを増やす手段の1つです。こちらも併せて解説します。
なお、国際化プログラミングの基礎については、以下の記事を参考にしておいてください。
ADT(Android Development Tools Plugin for the Eclipse IDE)で作成した直後のリソースファイルは、以下のようになっています。
このdrawable、layout、valuesはデフォルトで使用されるリソースです。例えば、「values-ja-land」というフォルダを作成して、その中にstring.xmlを配置すれば、横長端末で日本語に設定されている場合に限り、この内部のリソースが自動的に使用されます。
この、drawable、layout、valuesのフォルダ名の後ろに付ける修飾語句には厳密な決まりがあります。以下の表1が修飾語句をまとめたものです。
優先度 | 修飾語句 | 値 | 例 |
---|---|---|---|
1 | MCCとMNC | Mobile Country CodeとMobile Network Code | mcc310-mnc004 mcc208-mnc00 mcc234-mnc00 |
2 | 言語と地域 | ISO 639-1形式の2文字で言語コードを、ISO 3166-1-alpha-2形式の2文字で地域コードを指定(地域コードの前には「r」を付与) | en-rUS es-rES ja-rJP |
3 | 画面の向き | 縦か、横か、正方形かを指定 | port land square |
4 | 画面解像度 | 92dpi 108dpi |
|
5 | タッチスクリーンタイプ | タッチなし、スタイラス、指 | notouch stylus finger |
6 | キーボードの利用有無 | 表に出ているタイプ、隠れているタイプ、ソフトキー | keysexposed keyshidden keyssoft |
7 | 主要なテキスト入力方法 | キーなし、キーボード、テンキー | nokeys qwerty 12key |
8 | 主要なタッチスクリーン以外の操作方法 | 操作系なし、十字キー、トラックボール、ホイール | nonav dpad trackball wheel |
9 | 画面サイズ | 大きな方を先に書く | 320x240 640x480 |
10 | SDKバージョン | ndroid 1.0 SDKならv1、Android 1.1 SDKならv2、Android 1.5 SDKならv3 | v1 v2 v3 |
表1 修飾語句と、その説明 |
修飾語句は複数同時に指定できますが、同一修飾語句を複数指定できません。
リソースは複数用意していても、Androidが自動的に最も適合するものを選択するようになっています。コードを駆使して開発者が選ばせたり、ユーザーが好きなものを選んだりはできません。
次ページからは、Androidが最も適合するリソースを選択する際の流れを説明します。
Copyright © ITmedia, Inc. All Rights Reserved.