概要
今回は iOS アプリケーションのライフサイクルの説明をしました。
普通に新入社員研修でやるような内容だと思います。
諸事情により、生徒は実質1人でしたのでほぼマンツーマンでした。
やること
Cocoapods の使い方
- インストール
- gem install cocoapods
- pod setup
- Pod init
- Podfile を編集して
- pod install
- xcworkspace の方を開く
- Alamofire を入れてみる (HTTP ライブラリ)
- json API を叩いてみる
- cocoapods ライブラリの探し方
- https://cocoapods.org/ で検索する
iOS アプリケーションのライフサイクル
- AppDeleagte
- AppDelegate とは?
- ライフサイクル
- UIViewController
- UIViewController とは?
- ライフサイクル
自分で調べる方法
[UIViewController ライフサイクル]
とかでググると色々出てくるので自分で調べられる。
- http://qiita.com/kayo_h/items/4710c4ac02a191652a96
- http://qiita.com/Uejun/items/6055aca59a370200609a
進め方(1.5時間)
Cocoapods の使い方
-
pod setup
がなぜか終わらず悲しい... - 何時まで待っても終わらないので Cocoapods の使い方をざっくりと説明して終わりにしました
- 適当な API を叩いて Json を取得する処理を書こうと思ったのですが止めました
iOS アプリケーションのライフサイクル
AppDelegate のライフサイクルを知るためにそれぞれのメソッドにブレークポイントを貼ってアプリを起動したり、ホームボタンを押したりしてどのメソッドが呼ばれるのか確認しました。
その後、 それぞれどんなときにどんな処理をするために使用するのかをざっくりと説明しました。
次に UIViewController のライフサイクルを説明しました。
AppDelegate の時と同様にそれぞれのメソッドにブレークポイントを貼っていつどんなメソッドが呼ばれるのかを確認しました。
次に viewDidLoad
でラベルやボタンを追加する処理を書いて動作を確かめました。
画面遷移
若干時間が余ったので別の ViewController に遷移する処理を書きました。
iOS では画面遷移には大きくモーダルとプッシュの2種類があるのでそれぞれどのように動作するのかを確認しました。
最初はモーダルの表示を行いました。
次にプッシュの動作を確認しました。
Xcode が生成する Single View Application は NavigationController が最初は追加されていないので StoryBoard で NavigationController を追加した後に遷移が行われることを確認しました。
これらの遷移はコードで行って確認しましたがその後、コードを消し同じことを StoryBoard でやる方法を確認しました。
これらの画面遷移について説明して時間が来たので終了です。
まとめ
Xcode のバージョンが古かったため作業が行えない状態になった生徒がいたため、暇にさせてしまいましたのが反省点です(悲しいことに OS のアップデートが始まった...)。
ライフサイクルの説明もただダラダラと説明するのではなくもっと実際にアプリを作りながら説明したほうが良かったと後で思いました。
別に機会にサンプルプログラムを用意してそれを動かしたり改造したりという感じで進められたらいいのかなと思います。