2013-03-23 58回 Cocoa勉強会(関東)のレポート
会場は今回も新宿伊藤ビルの貸し会議室。
以下発表など。
チーム開発(その他)
お仕事でアプリ開発してて出てくるあれこれ。
iOSアプリの開発で「ぜんぶやってください!」なとき、Dev Centerのプロビジョニングポータル上の作業とかもおまかせされちゃうケースがあるよねえ。自分をチームに入れるのも結局自分で操作したり。規約改訂後に顧客で”agree”してないのがブロックになっちゃったりとか。オペレーション時は顧客の責任者に立ちあってもらうようにしてる、などなど。
(日本では?)昨年から導入されたvolume purchaseだとenterprise developer programとちがって、前者は開発のプロビジョニングが期限切れてもユーザは使い続けられるってのがメリットにもなるよね。
自分のApple IDが複数のチームに所属してるときはログイン後に選べる。顧客ごとにIDを作る(委託側がID用意する)ケースが多い?
in app purchaseのテストではIDがたくさん必要なのでまとめて登録しとく派が多いようです。
プロジェクト管理だとITS効果あるけど、チケットの粒度や文化的になじまない現場もあったり。「バグ」と言う単語を使わないようにしてる人もいるそうです。
Makers手法を用いた自作キーボード (その他)
(ハードウェアの)キーボードを自作する話。
UndoManager (iOS/Mac)
NSUndoManagerによるアンドゥ/リドゥ管理について。
- Core Data使ってると、そのUndo/Redoも登録されてるので注意。操作をグループ化するメソッドを使う。
- Redo実装するときははじめから設計に入れとかないとあとで大変。
- 予期しない動作になるときは標準クラスのメソッドにmethod swizzlingを使って原因となるアクションを調べると便利。
performSelectorのススメ (iOS/Mac)
NSObject Protocolのメソッド(=ほぼ全てのオブジェクトで使える)”performSelector:withObject:afterDelay:”で、delayに0.0を渡すテクがいろいろ便利!という話。
run loopを1回だけまわして次の回に実行するように指示することになる。こんなときに便利。
- あとでまとめて実行することができるので描画パフォーマンスの向上に効果有り。
- 描画させてから実行したい処理(位置の判定、描画画像の取得)で便利。
– timerで”0.1秒後”など指定するよりもrunloop 1回後のほうが意図としても正しい。 - cancelPerformSelectorsWithTarget:系のメソッドで実行指示を取り消せる。
デメリット
- 乱用するとアニメーションなんかはおかしくなるときがある。
(議論など)
- そーいえばNSTimerもrun loop依存だから、それほど正確じゃないよね。
- ゲーム開発のときなんかは正確にきざめるのが欲しい。
その他の話題
- 法人向けのソリューションだと最近はiOS » Android
- 5月からのRetina対応
- iADでけっこう売上立つようになってきた
– iAD使ってるとよその広告会社から営業がけっこう来たり…