XcodeとObjectiveC講習会

XcodeとObjectiveC講習会
講師:株式会社 アセンディア
遠藤 豊紀
2010年4月よりiOSアプリの開発に
参画
(某通信教育の高校生用の教材を
設計作成)
目的
●
●
●
●
iOSアプリを作成する環境を理解する
InterFace Builderを使用したiOSアプリを
作成出来る
UIのパーツを理解し使用出来る
ObjectiveCのメモリ管理の考え方を理解する
受講のスケジュール(1日目)
9:30〜10:45
1 開発環境の構築
2 開発環境の基本
3 ObjectiveCの基本
4 アプリ開発の基本
10:45〜11:00 (休憩15分)
5 基本的なパーツで作る(前半)
12:00〜13:00 (休憩15分)
5 基本的なパーツで作る(後半)
6 画像やアニメーションを扱う
受講のスケジュール(2日目)
続きから
7 iPhoneらしい機能の実装
8 データ読み込みと保存(省略)
9 複数の画面を切り替える(省略)
10 テーブル表示
11 アプリを仕上げる
12 実機でテストする
メモリ管理(1)
■RefCounter(参照カウント)の考え方
RefCounter[retainCount]の数によりメモリを解放する、解放しないの判
断をする為の手法
このRefCounterはプログラムがこの変数を保持している数を示している
・[retain]
変数の参照カウントを+1する
※alloc後の初期化にinitの接頭詞が付いている場合、retainとなる
・[release]
変数の参照カウントをー1する
・[autorelease]
変数をautorelease pool管理とし、利用終了後にメモリを解放する
※alloc後の初期化にinitの接頭詞が付いていない場合、autoreleaseとなる
もしくは明示的に使用した場合。
メモリ管理(2)
NSMutableArray *array = [[NSMutableArray alloc] init];
NSString *testString =[[NSString alloc] initWithFormat:@"aaaa"];
->このときtestStingのretainCountは1となる
[array addObject:testString];
->このときtestStingのretainCountは2となる
「testStringを生成したPG」と「array」の2つが保持している
[testString release];
->このときtestStingのretainCountは1となる
メモリ管理(3)
■Automatic Rerence Counter(ARC)
本来、[release]を必要とするソースコードに自動でreleaseを保管する機能
■メモリの管理のチェックをするツール
-Leaks
■アプリケーションの落ちている場所をチェックするツール
-Zombies
iOSとアプリケーションの通知
viewController
AppDelegate
①
②
④
③
IOS
①アプリ起動(didFinishLaunchingWithOptions)
②Homeボタン押下時、バックグラウンドに配置
(applicationDidEnterBackground)
③バックグラウンドから復帰(applicationWillEnterForeground)
④メモリーワーニングの通知(didReceiveMemoryWarning)
UIViewControllerとUIView
UILabel
←Window
●
RoundRect
Button
●
UIViewController
●
UIImageVie
w
●
●
●
●
●
1.最初にアプリを表示する為の
Windowが存在する
2.ViewControllerを配置する
3.その上にUIKitを配置する
4.UIKitはすべてUIViewを
継承している
→これら部品すべてアニメ可能
NavigationController
NavigationController
●
●
●
ナ
ビ
ゲ
ー
シ
ョ
ン
バ
ー
ViewController2
pus
hVi
ViewController1
ew
Con
troll
戻
er
画面遷移を管理してくれる
る
ナビゲーションバーに戻るを
自動で作成出来る
プロビジョニングについて
■プロビジョニング
アップルがそのプログラムを実機(iPhone)に入れてもよいという証明書
■プロビジョニングに必要な事項
・iOS Developer Programに登録済みの事
・開発者の証明書、秘密鍵をアップルからもらう
・使用する実機を登録する
・使用するプログラム名を登録する(但し、ワイルドカードは使用可能(*))
・プロビジョニング申請を行い、プロビジョニングを取得する
プロビジョニングの設定について
◇設定の確認
organizerを使用して以下の設定を確認する
開発者の証明書
プロビジョニング
プロビジョニングの設定について
◇設定の確認
Project > target > Summary > identifer
のアプリケーション名の前に「OitaUnivTest.」を追加する
プロビジョニングの設定について
◇設定の確認
Project > target > Build Settings > Code Signing identity
を「OitaUnivTest.」に設定する
プロビジョニングの設定について
手順
1.info.plistのBundle identifierの変更(App IDに合わせる)
→OitaUnivTest.○○
2.projectのCode Signing Identityのプロビジョニングを設定する
→OitaUnivTest.*のプロビジョニングを選択
3.projectのiOS Deployment targetを設定する
→ios 4.0等
4.「Release」にて実行が可能です。
プロビジョニングの設定について
上記で動かない場合
(1) Xcodeのプロジェクトウィンドウからプロジェクト名の上で右クリックし、
「新規ファイルの追加」をする。
(2) iPhoneOS-Code Signingグループから「Entitlements」を選択して「次へ」を押す。
ファイル名をdist.plistとして保存する。
(3) 追加されたdist.plistを選択し、「get-task-allow」のチェックを外す。
(4) ターゲットのビルド設定画面の「Code Signing Entitlements」の値として「dist.plist」を
設定する。
※ターゲットのビルド設定画面のProvisioning Profileの項目には、Ad Hoc用のProvisioning
Profileを設定しておくこと。Ad Hoc用のProvisioning Profileは、iPhone Developer
Program Portalから生成できる。
(5) この状態でビルドすると(ビルド前にクリーニングしておくとより吉)、プロジェクトの
buildフォルダの中に各ビルド毎のビルド結果がプロジェクト名と同名の「アプリケーション
バンドル」として出力されている。
(6) これをiTunesにドロップするとインストールできる。
(7) Ad Hoc用のProvisioning ProfileもiTunesにドロップしておく(これは最初の一回でOK)。