Objective-Cエンジニアじゃない人でも分かりやすいようになるべく簡潔に書いて行きます。
必要な物
- Mac
- Xcode 5.1.1 (2014/9 現在)
- Apple Developerアカウント (7,800円/年)
準備
プロジェクトを作る
色々とテンプレートがあるけど、通常は「Single View Application」テンプレートを選んでおけばOK
『Single View Application」テンプレートでプロジェクトを作ったら、以下のファイルが左のツリービューに出来ている。
もしプロジェクト作成の時にclass prefixで入力していた場合、AppDelegate.h、AppDelegate.m、ViewController.h、ViewController.mファイルのファイル名に接頭辞として挿入される。
左はclass prefixが空の状態、右はclass prefixに"Exam"と入れた状態
ファイル説明
iOSアプリはObjective-Cで作成されているが(2014/9現在)、基本的には1つのクラスを作成するとhファイルとmファイルのセットで作成される。
AppDelegateファイル
端末からのイベントを受け取るアプリの大元のクラス。
全てのアプリはこのクラスの上に成り立っている。
1アプリ:1AppDelegateViewControllerファイル
Viewをコントロールするクラス。強引に言ってしまえば、
1画面:1ViewControllerMain.storyboardファイル
このファイルはクラスではなく構成ファイルなので、上記ファイル群とは区別して考える事。
このファイルでは各画面の静的なViewオブジェクト配置や遷移を視覚的にコントロールする事が出来る。
一つのアプリで複数の.storyboardを持つ事が可能なので、条件によって読み込む.storyboardを変えて画面構成や遷移を切り替えて行く。Images.xcassetsファイル
このファイルもクラスではなく構成ファイル。
画像とかを効率的に格納するファイル。
画像を使うときはここに登録する。Supporting Filesフォルダ
この中にはいくつか重要なファイルがありますが、説明しだすと今回のターゲットとは違ってきてしまうので、今回は割愛します。
アプリ制作行程
1.静的画面構成、画面遷移の設定
Main.storyboardファイルに静的な画面構成と画面遷移を設定していく。
ところで、静的ってなんですか?
アプリを起動した時点で変わらない物事。 英語ではstatic。
- ボタンやテキスト、画像の配置や形状、タブバーなんかも静的である事が多い。
対にあるのが、
動的
アプリ起動時に決まっていない物事。 英語ではdynamic。始めから内容が決まっておらず、アプリの状態によって初めて内容が決定する物事。
- テキストの文言やインターネット経由で取ってくる画像、リスト表示する項目なんかはこれに当てはまる事が多い。
2.各画面毎の機能処理追加
各画面毎にViewControllerクラスを作成し、そこに各画面で必要な処理や、動的に配置する必要のある物事を書いて行く。
3.作成したViewControllerをstoryboardで設置した各画面に設定する
ViewControllerクラスを作成しただけではstoryboardで設定した画面構成と紐付いていないので、storyboard内で設置したViewControllerと実際に2で作成したViewControllerクラスを紐付けてあげる。
4.デバッグ
Xcodeの左上にある▶︎ボタンでシミュレーターで起動して動作を確認する。
5.実装、じっそう、zissou
2〜4の繰り返しです。
6.実機確認
ある程度の仕様を実装し終えたら、いよいよ実機で確認です。
実機で確認する際、Apple Developerアカウントから取得できるProvisioningファイルとか証明書ファイルとか必要になるのですが、今回はその辺りはターゲットではないので割愛させて頂きます。とりあえず、実機で確認するには
Appleから発行される証明書が必要
と覚えておいて下さい。
7.アプリ申請
storyboardで静的構成を作成
ViewControllerクラスで動的構成の作成
デバッグを繰り返し仕様要件を全て実装し終えたらいよいよ申請です...が、ここでも申請用のProvisioningファイルやら証明書やらが必要になるのですが、ここも時間的に説明すると時間が足りなくなるので、申請するには
クライアント側にAppleに有料アカウント申請してもらい、そこから発行出来る証明書群が必要になる
と覚えておいて下さい。
最後に
かなり駆け足かつ強引な感じでiOSアプリの作り方の説明でした。
プロジェクトの規模や特性によって若干変わってくる事もありますが、
基本的にはこの流れでiOSアプリを作成しています。