● Carbon視点でiPhone探求(2009/02/12)

  このニュースは、MOSAの会員にのみ配布されているデベロッパー向けの
  デジタルマガジンMOSADeNのに掲載された記事です。ほぼ一ヶ月遅れで
  ここに掲載されて行きます

 〜 Xcodeのプロジェクトを準備する 〜


前回の宿題「iPhone用しんぶんしの開発には、どのテンプレートを使うか?」ですが、とりあえず「Navigation-Based Application」が向いているだろうと結論付けました。途中で何か問題が発生したら、その時点で対策を講じる事にして開発をスタートしたいと思います。

さっそくXcode(最新バージョンは3.1.2)を起動し、 ファイルメニューから「新規プロジェクト...」を選びます。表示されたテンプレート選択ダイアログの左側からは「iPhone OS」直下の「Application」を、右側からは「Navigation-Based Application」を選び「選択...」ボタンをクリックします。続いてプロジェクト名を入力するのですが、「しんぶんし」ではワールドワイドをターゲットとするiPhoneアプリケーションには似つかわしくないので(笑)今回からは「Symmetry」という新名称(少々イージーですが...)に変更したいと思います。この時に入力したプロジェクト名が、とりあえずのアプリケーション名(後で変更可能)となります。

この一連の作業により指定場所に「Symmetry」フォルダが作成され、その中に開発に最低限必要なソースコードファイルやnibファイルなどが保存されます。 クラス定義のヘッダファイル(.h)やObjective-Cのソースコードファイル(.m)は「Classes」フォルダに保存されています。MainWindow.xibと RootViewController.xibはユーザインターフェース・オブジェクトが定義されているnibファイルです。こちらをダブルクリックするとInterface Builderを起動することができます。そうした中のひとつ、薄い青色アイコンの「Symmetry.xcodeproj」というファイルがXcodeのドキュメントです。次回からは、このファイルをダブルクリックすることでXodeが起動し、開発関連のファイル一覧を表示したプロジェクトウィンドウをオープンできます。

プロジェクトウィンドウには、フォルダ内に保存されている各種ファイルや開発で使うFrameworkなどが「Classes」「Others Sources」「Resources」「Frameworks」「Products」といったグループ(フォルダのアイコン)別に登録されています。こうしたグループは、Xcodeのプロジェクトメニューの「新規グループ」で新しく追加することもできます。一覧リストに表示されているファイル名をダブルクリックすると、目的に応じてその内容がオープンする仕組みとなっています。ソースコードならテキストエディターが、nib(.xib)ファイルならInterface Builderが、Info.plistファイル(XML)ならProperty List Editorが起動します。

このプロジェクトウィンドウの形状ですが、Xcodeメニューの「環境設定...」の「全般」で切り替える事ができます。3種類のレイアウト「デフォルト」「コンデンス」「オールインワン」からひとつを選択できますが、私は昔からの習性(笑)で「コンデンス」を使っていますので、この連載も「コンデンス」レイアウトを対象とした解説となります。ご了承ください。環境設定でのレイアウト切り替えは、ひとつでもプロジェクトファイルがオープンされていると実行できませんので(ハイライト表示のまま)御注意ください。レイアウトを変更し「摘要」ボタンをクリックすれば、次回からオープンされるXcodeプロジェクトの内容は、そのレイアウトのプロジェクトウィンドウに表示されます。

プロジェクトフォルダ内に保存されている開発関連ファイルは、一般的なMac用のCocoaアプリケーションのテンプレートとよく似ています。 main.mやSymmetry_Prefix.pchファイルの役割もMac用とまったく同じです。 両者の違いとしては、Mac用テンプレートの方は、リソース関連ファイルが「English.lproj」フォルダにまとめられていますが、iPhoneアプリ用のテンプレートでは、そうしたファイルがフォルダにまとめられていないことでしょう。その代わりに、クラス定義用ヘッダファイルやObjective-Cソースコードファイルの方は「Classes」フォルダにまとめられています。

Mac用テンプレートの「English.lproj」フォルダは、アプリケーションのローカライズを考慮した時に英語用リソース(nibファイルや文字列ファイル)を保存しておく場所となりました。これと同じiPhoneアプリケーションの英語用リソースフォルダは「en.lproj」となります。ちなみに、日本語用フォルダ名は「ja.lproj」です。もし多言語に対応したiPhoneアプを作成する場合には、先んじてこうした国別フォルダを用意し、その中に各国語対応のリソースファイルを保存しておく必要があります。今回、そうした作業は開発終了時(最後)に実行することにしますので、とりあえずは「ja.lproj」フォルダだけを用意し、そこに関連リソース(日本語用)を保存することにします。

Finderで「Symmetry」プロジェクトフォルダ内に「ja.lproj」フォルダを作成し、そこへnibファイルのMainWindow.xibとRootViewController.xibを移動します。この状態で、Xcodeのプロジェクトウィンドウのファイルリストを調べてみると、両方の名称が赤色に変化していることが分かります。これは、ファイルの保存場所を変更したためプロジェクトに登録されているファイルのリンク情報(ファイルパス)が切れ、Xcodeがそれらのファイルを発見できなくなったことを示しています。まずは両方のファイル名を選択して、Deleteキー(編集メニューの削除)を押してプロジェクトウィンドウのリストから外します。

続いてドラッグ&ドロップで「ja.lproj」フォルダ内の両ファイルを、プロジェクトウィンドウの「Resources」グループ内に登録します。この操作により、MainWindow.xibとRootViewController.xibの左側に小さな「三角形マーク」が表示されるようになります。クリックしてみると、ひとつ深いレベルに「ja」という名称が表示されます。この「ja」をダブルクリックすることで、Interface Builderを起動させ、対応するnibファイルを編集することが可能になります。英語用のnibファイルを作成してプロジェクトへ登録した場合には、このレベルに「en」という名称が表示されます。英語用のnibファイルをInterface Builderで編集する場合には、こちらをダブルクリックすることになります。

ところで、プロジェクトフォルダには「Info.plist」というXMLファイルも保存されていますが、これはiPhoneアプリ自身の環境設定(プロパティ)ファイルのようなものです(Macアプリの場合とまったく同じ)。この中には、バージョン番号やディフォルトで利用する言語、iPhoneに表示されるアプリケーション名、最初に読み込まれるnibファイル名などが定義されています。例えば、 Info.plistに以下様なタグを追加すると、iPhoneのホームに表示されるアイコンの表示形態が切り替わることになります。

 <key>UIPrerenderedIcon</key>
 <true/>

この設定は、iPhoneアプリのアイコン表示に光沢やベベルエフェクトを付けるかどうかをブール値で指示しています。デフォルトのプロパティはfalseです。こうしたエフェクトをアイコン表示に追加しない場合は、値をtrueに設定します。例えば、iPhoneアプリの「計算機」や「メモ」は、上記と同じ指定がされています。 Info.plistファイルはローカライズのために複数作成する必要はありません。

さて次回は、このinfo.plistをもう少し詳しく調べてみることにします。また最初の仕事として「Symmetry」アプリのアイコン画像(PNG画像ファイル)を作成し、プロジェクトウィンドウに登録してみます。

copyright 2009 Ottimo, Inc. All rights reserved
無断転載・引用禁止