iPhone勉強会 20111023 -キーチェーン、miil-

2011/11/23

サンプルソース

NSDefault からユーザ名、パスワードが盗まれる可能性

キーチェーンに登録

UIKeyChainString を利用する

[UIKeyChainString setString: @"xxxxx" forKey:@"username"];

//サービス(ドメイン)名を指定
[UIKeyChainString setString:@"xxxxx" forKey:@"username" service: @"com.xxxxx"];

//インスタンスを利用
UIKeyChainString *store = [UIKeyChainString keyChainStoreWith];

[store removeItemForKey: @"username"];
[store synchronize]; //Write to keychain

miil のつくりかた

背景やナビゲーションを画面ごとに効率よく変える

- void drawInRect:(CGRect) rect {
    [background drawAsPatternInRect: rect];
}

■UITableView のパフォーマンス - FFTimelineTitleCell - FFTimelineMoreCommentCell など、セルのカスタマイズが多い

全体の処理時間より、イベントループごとの時間を短くする事で体感的に早い場合が多い。

セルの単位を細かくしてやる

画像の表示 - UIImageView ○ - CALayer ○ - UIImage drawRect △

※最適化 png をすると drawRect が一番早い

■画面のキャッシュ - ある程度はキャッシュに持ちつ - 無ければディスクか - それでもなければネットから

キャッシュに入れるには、

NSCache(ちょっとカッコいい NSDictionary)

を利用するとよい。

■スクロールのスナップ スナップが通常に機能すると、セルが長くなった時に読めない・・・。 - 上向き、下向きのスクロールの判別 - 位置座標、移動量を判別してスナップ - 高さが1画面に満たしているかを判別

■アニメーション UIView transitionFromView, UIViewAnimationOptionShowHideTransition を利用するのが自然だった

■サムネイル UITableView を横向きに使うのが良かった ScrollView を使うのは面倒

■特定の文字のスタイルを変更する CoreText を利用するのも良いが、描画する文字を一文字ずつ処理する。