MonoTouchを使ったiPhoneアプリ開発 (1)

年も改まったことだし、以前から考えていたiPhoneのアプリの開発を始めて見ることにしました。
Seasar.NET関連のみなさま、申し訳ありません。
ちょっと、寄り道をします。
さて、iPhone用アプリの開発言語といえば、当然Objective-Cです。
しかしながら自宅の趣味の範囲で開発を行うには、今からObjective-Cを覚えるのは躊躇してしまいます。
なぜなら、C#erの私でも大丈夫なようにMonoTouchというものがあるからです。
MonoTouchは、ご存知の方も多いと思いますが、Windows以外でも.NETを構築できるMonoの開発環境であるMonoDevelopのプラグインという形で提供されています。
ただし、ちょっと値段が高い。
MonoTouchをインストールするには、iOSのSDK(XCodeを含む)、MonoDevelopを先にインストールしておく必要があります。
しかし、ググればMonoTouchのインストール方法は出てくるので、ここでは省略します。
今回、勉強をかねて作ってみたのは、Hello World的な、〇〇と名前を入力すれば「Hello Mr.○○」と表示する画面とHelloとMr.の部分を変更するいわば設定画面のふたつの画面を持つアプリ、つまりちょっとした画面遷移のあるアプリを作ってみました。
この二つの画面をツールバーのボタンを使って切り替えることにします。
基本的なところを押さえてみたつもりです。
なお、Windowsアプリではないので画面というのはおかしく、ビューと呼ぶべきですね。
今回、参考にしたのが下記の本です。

はじめてのiPhone3プログラミング
ソフトバンククリエイティブ
Dave Mark

amazon.co.jpで買う
Amazonアソシエイト by はじめてのiPhone3プログラミング の詳しい情報を見る / ウェブリブログ商品ポータル


これ以上にマルチビューについて書いているのは無さそうです。
しかし、当然のことですがこの本はObjective-C用に書いてあるので、MonoTouchおよびC#で置き換えていく必要があります。

さて、MonoTouchを使ってアプリを開発することにします。
最初にMonoTouchでソリューションを新規に作成します。
そのときひな形から「C#」→「iPhone and iPad」→「iPhone Window-based Project」の順で選択して作成します。

こうしてできたプロジェクトにはまだMainWindow.xlibしかありません。
最初に、二つのビュー用にファイルを二つ追加することにします。
起動時に表示したい方のビュー、つまり「Hello Mr.○○」と表示するビューです。
追加するにはプロジェクトを選択した後右クリックすると表示されるコンテキストメニューから「追加」→「新しいファイル」です。
ここで追加するのは「iPhone View with Controller」です。
名前を「MainViewController」とします。

次に、HelloとMr.の部分を変更するビューを追加します。同様に、操作して追加します。
名前を「EditViewController」とします。

作った二つのビューのそれぞれMainViewControllerxlib、EditViewController.xlibをダブルクリックして、Interface Builderを起動し、ビューの中身を作成していきます。
注意点は、このときビューを切り替えるツールバーはこれらのビューには作成しないことです。
ビューを切り替えるツールバーは別に作成します。

ここまで作ったのは切り替える先のビューです。
次に作るのが、これまで作った二つのビューを切り替えるコントローラーとしての役割を持つビューです。
これまでと同様に「iPhone View with Controller」で作成します。
名前を「SwitchViewController」とします。
また、SwitchViewController.xlibをダブルクリックしてInterface Builderを起動します。
ここで、LibraryからToolBarを選択し、配置します。そしてToolBarにBar Button Itemを配置します。
このBar Button Itemでビューを切り替えることになります。
こんな感じになります。
画像


さて、配置は終わったところで、順番に実装をしていくわけですがここで一番おおもとになる「MainWindow.xlib」をダブルクリックしてInterface Builderを起動します。
ここで、アウトレットを作成します。
Libraryを一番上をClassesに変更し、「AppDeligate」を選択します。
「Inheritance」を「Outlets」にきりかえて、+ボタンを押して、アウトレットを追加します。
TypeはSwitchViewControllerです。
画像


次に、Libraryを一番上をObjectsに変更し、「View Controller」をドラッグしていき、nibのメインウィンドウ(MainWindow.xlib)にドロップします。
すると、SwitchViewControllerというビューが表示されます。
画像


このままではTypeがUIViewControllerなので、IdentityのClassesをSwitchViewControllerに変更します。
画像

そして、アウトレットとビューを関連づけるためにnibのメインウィンドウのAppDelegateで右クリックしてアウトレットとSwitchViewControllerビューを紐づけます。
画像

ここで、Interface Builderで保存します。

そして、MonoTouchに戻ります。
Main.csを開き、FinishedLaunchingメソッドの中の
window.MakeKeyAndVisible ();
という一行をみつけて、その上に
window.AddSubview(switchController.View);
を追加します。
switchControllerは先ほど作ったアウトレットになります。
こうして、起動時にSwitchViewControllerが表示されることになります。
しかしまだ、最初に作った二つのビューは表示することも切り替えることもできません。
ビューを切り替える続きはこちらです。

この記事へのコメント

koyak
2011年01月19日 06:00
おお!C#でiPhoneアプリが作れるのですね!
興味深いです。

この記事へのトラックバック