TOPシステム開発> 第3回:iPod touchで動作するテキストエディタはこう作る! (2/3)

完全先取り! iPod touch開発

完全先取り! iPod touch開発

第3回:iPod touchで動作するテキストエディタはこう作る!

著者:masuidrive

公開日:2007/11/29(木)

Editorアプリケーションに機能を追加

コンパイルが終わると「Editor」ファイルが生成されているはずです。これはiPod touch用のファイルなので、Mac OS X上では実行することができません。さらに、このファイルだけではiPod touch上でも実行できないのです。

このEditorファイルを実行させるには、「アプリケーション名.app」というディレクトリの中に「Info.plist」というプロパティリストファイルと共に収める必要があります。このInfo.plistには、実際に実行するファイルやバージョン、アプリケーションアイコンなどを記載します(リスト4)。

このInfo.plistを「Editor.app」というディレクトリにまとめて保存し、iPod touchの「/Applications」ディレクトリに転送します(リスト5)。転送したあとは再起動が必要ですので、前回の記事と同じように、再起動を行います。

再起動が終わると、ホーム画面に「Editor」というアプリケーションが追加されています。これをタップすると何も起こらず、ただ黒い画面が表示されるはずです(図1)。この何も起こらないアプリケーションを足がかりに、まずは見た目から作っていきましょう。

リスト4:Info.plistの内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>CFBundleDevelopmentRegion</key>
        <string>en</string>
        <key>CFBundleExecutable</key>
        <string>Editor</string>
        <key>CFBundleIdentifier</key>
        <string>jp.masuidrive.touch.editor</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>0.1</string>
        <key>CFBundleName</key>
        <string>Editor</string>
        <key>CFBundlePackageType</key>
        <string>APPL</string>
        <key>CFBundleShortVersionString</key>
        <string>1.0.0</string>
        <key>CFBundleSignature</key>
        <string>????</string>
        <key>CFBundleVersion</key>
        <string>1.0</string>
</dict>
</plist>

リスト5:ディレクトリに保存
$ mkdir Editor.app
$ cp Editor Info.plist Editor.app/
$ scp -r Editor.app root@iPod touchのIPアドレス:/Applications/
Password: alpine

ベースとなるアプリケーションを実行
図1:ベースとなるアプリケーションを実行

リスト6:main.mを書き換え

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト7:editor.hの内容
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <UIKit/UIApplication.h>
#import <UIKit/UITextView.h>

@interface EditorApplication : UIApplication
{
    UIView *mainView;
    UITextView *textView;
}
@end

リスト8:editor.mの内容

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト9:Makefileの内容を変更

(画像をクリックすると別ウィンドウに拡大図を表示します)

リスト10:コンパイルの実行とアプリケーションの転送
$ make
$ scp -r Editor root@touchのIP:/Applications/Editor.app/
Password: alpine

最初は、一般のアプリケーションのタイトルバーに該当する「ナビゲーションバー」から作成します。このような機能追加はUIApplicationクラスを継承し、そこに記述していきます。今回はEditorApplicationクラスを作ることにし、それをeditor.hに記述することとします(リスト6)。

Objective-Cでクラスを生成する場合、クラスのインターフェースを定義する「@interface」と実装を行う「@implementation」に分けられます。@interfaceは.hファイルに、@implementationは.mファイルに書くのが一般的です。

今回はUIApplicationクラスを継承して、EditorApplicationクラスを定義します。それをeditor.hに記述します(リスト7)。

続いて、EditorApplicationクラスの実装を行います(Editor.m)。このクラスではアプリケーション起動後に呼ばれるapplicationDidFinishLaunching関数を上書き定義します。表示のための初期化を行ったあと、ナビゲーションバーを扱うUINavigationBarを生成します(リスト8)。

プログラムを見ると見慣れない書き方が並んでいることと思います。オブジェクトの関数呼び出しは、「[オブジェクト 関数名 引数]」という形式になります。「[window orderFront: self];」は、C++やJavaでは、「window.orderFront(this);」に相当します。

また文字列の前に@を付けるのもObjective-Cの特徴です。コレを付けることで、文字列からNSStringクラスのオブジェクトを生成します。プログラムの詳細はコメントを参考にしてください。

コンパイル時にeditor.mを含めるためMakefileをリスト9のように変更し、コンパイルしましょう。コンパイルを実行した後、実行ファイルをiPod touchに転送します(リスト10)。 次のページ


前のページ  1  2  3  次のページ


masuidrive
著者プロフィール
masuidrive
最近は風呂の人と呼ばれるが、別にいつも風呂で仕事なわけじゃない。喫茶店が好きでMacBook proを持って、あちこちのお店で仕事してる。でも良い喫茶店が見つからず、マクドが多いのが残念。
http://masuidrive.jp/


INDEX
第3回:iPod touchで動作するテキストエディタはこう作る!
  iPod touch用のテキストエディタを作ろう
Editorアプリケーションに機能を追加
  機能を追加したEditorアプリケーションを起動