きりかノート 3冊め

おあそびプログラミング

第58回 Cocoa勉強会に行ってきた(3/23)

会場は今回も新宿伊藤ビルの貸し会議室

以下発表など。今回はあんまダイレクトに技術な話は少なかったかも。

チーム開発(その他)

お仕事でアプリ開発してて出てくるあれこれ。

iOSアプリの開発で「ぜんぶやってください!」なとき、Dev Centerのプロビジョニングポータル上の作業とかもおまかせされちゃうケースがあるよねえ。自分をチームに入れるのも結局自分で操作したり。規約改訂後に顧客で"agree"してないのがブロックになっちゃったりとか。オペレーション時は顧客の責任者に立ちあってもらうようにしてる、などなど。
(日本では?)昨年から導入されたvolume purchaseだとenterprise developer programとちがって、前者は開発のプロビジョニングが期限切れてもユーザは使い続けられるってのがメリットにもなるよね。

自分のApple IDが複数のチームに所属してるときはログイン後に選べる。顧客ごとにIDを作る(委託側がID用意する)ケースが多い?
in app purchaseのテストではIDがたくさん必要なのでまとめて登録しとく派が多いようです。

プロジェクト管理だとITS効果あるけど、チケットの粒度や文化的になじまない現場もあったり。「バグ」と言う単語を使わないようにしてる人もいるそうです。

Makers手法を用いた自作キーボード (その他)

(ハードウェアの)キーボードを自作する話。

(感想?)自分はキーボードこだわらない派でぺにょぺにょなキータッチでもあんま気にならないけれど、たまに昔のiBookとか触るとちょっとあれはヒドイなと今では思うのです。

UndoManager (iOS/Mac)

NSUndoManagerによるアンドゥ/リドゥ管理について。

  • Core Data使ってると、そのUndo/Redoも登録されてるので注意。操作をグループ化するメソッドを使う。
  • Redo実装するときははじめから設計に入れとかないとあとで大変。
  • 予期しない動作になるときは標準クラスのメソッドにmethod swizzlingを使って原因となるアクションを調べると便利。

(感想)Core Dataが嫌われるのっていろいろ自動でブラックボックスになってて、それが結果的にハマる原因になったりするからなんだろうなあ。個人的にはけっこー好きなんだけど。

performSelectorのススメ (iOS/Mac)

NSObject Protocolのメソッド(=ほぼ全てのオブジェクトで使える)"performSelector:withObject:afterDelay:"で、delayに0.0を渡すテクがいろいろ便利!という話。

run loopを*1回だけ*まわして次の回に実行するように指示することになる。こんなときに便利。

  • あとでまとめて実行することができるので描画パフォーマンスの向上に効果有り。
  • 描画させてから実行したい処理(位置の判定、描画画像の取得)で便利。
    • timerで"0.1秒後"など指定するよりもrunloop 1回後のほうが意図としても正しい。
  • cancelPerformSelectorsWithTarget:系のメソッドで実行指示を取り消せる。

デメリット

  • 乱用するとアニメーションなんかはおかしくなるときがある。
  • (3/25 追記:単に@YES, @NOでよかったようです)アニメーションのYES/NOを渡すときは非オブジェクトなのでNSNumberなどに変換する必要あり。cancelできるようにするにはオブジェクトのポインタが一致するよう、staticであらかじめ宣言しておくなどの工夫が必要。

(議論など)

  • そーいえばNSTimerもrun loop依存だから、それほど正確じゃないよね。
  • ゲーム開発のときなんかは正確にきざめるのが欲しい。

その他の話題

  • 法人向けのソリューションだと最近はiOS >> Android
  • 5月からのRetina対応
    • WebViewはどうしてる? "@x2"ではダメだし。(解決手法の話してたと思うんですが聞き忘れた、、)
  • iADでけっこう売上立つようになってきた
    • iAD使ってるとよその広告会社から営業がけっこう来たり…

次回の予定

次回は5月の後半ごろ?、千葉の松戸あたりの予定です。