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
背景やナビゲーションを画面ごとに効率よく変える
- 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 を利用するのも良いが、描画する文字を一文字ずつ処理する。