例のごとく、『第5回 #potatotips』『第6回 #potatotips』について @hirama2 さんの記事を読んでキャッチアップさせていただきました。
- 第5回 #potatotips で発表された12個のiOSのtipsをまとめる - Think Big Act Local
- 第6回はUIEvolution開催! #potatotips で発表されたiOSのtipsまとめ - Think Big Act Local
で、ちまちまメモとして勉強になったことをツイートしてたのですが、わりとふぁぼられ率が高いので、ニーズあるかもしれないのでこちらにまとめておきます。
え!?Storyboard使ってるのにそんな画面遷移のしかたしてるのですか!?
ViewControllerを疎結合にしておくための、値の受け渡し方の提案、およびそれを実現するための TKRIntent の話。
スライドでは「そもそものstoryboardのいいところ」から始まり、「困るケース」「解決案」と順を追って説明してくれるので、すごくなるほど感があります。
下記ツイートの通り、直近の案件でまさにそういう状況になってたので、タイムリーに響きました。
「遷移先に値を渡す」「遷移先が複数ある」=>「密結合、ぐちゃぐちゃ」になってつらかったことがつい最近あったのでTKRIntentすごくよさそう。 / え!? Storyboard使ってるのにそんな画面遷移のしかたしてるのですか!? https://t.co/kCgP2sjcIN
— Tsutsumi Shuichi (@shu223) April 10, 2014
SDWebImageを1年半使ってみた
超定番ライブラリ、SDWebImage の諸々の使い方や、職人的に気が利いてるところの紹介。FastImageCache との併用例も。
「非同期で画像をとってきてくれるライブラリ」は過去にもいろいろなものが台頭しましたが、このスライドを読んで、SDWebImage はそれらの決定版なんだなーと。
あと、最後のページの「自前の実装は捨てましょう」が個人的にグッときました *1。
「この辺り自前で実装すると空気読むのが大変」「自前の実装は捨てましょう」最近別ライブラリ(画像フェッチャーではない)でそういうことあったのでグッときた。 / SDWebImageを1年半使ってみた http://t.co/U91V15gALx
— Tsutsumi Shuichi (@shu223) April 10, 2014
デバッグ時のカスタムQuick Look機能
個人的にこのTipsを知ったときは超テンション上がりました。
QuickLook知らなかった・・!UIBezierPathやCLLocation、独自UIViewまでデバッグ時に表示できるってめっちゃいいな。2週間前に知りたかった。 / Xcode の Quick Look で艦娘をデバッグする http://t.co/4YrFBEwV6q
— Tsutsumi Shuichi (@shu223) April 10, 2014
下記記事にキャプチャ入りで詳細に書かれています。
多段delegateをResponder Chainで取り除く方法
Responder Chainをたどって、移譲先(セレクタが実装されているコントローラ)を見つけて、処理してもらう方法。
delegate が多段になってつらくなる、というケースも結構あるあるなので、今度試してみようと思います。
iOS simulatorでもcolored logcatしたい!
タイトルだけ見たときは、「コンソールのログ出力に色をつけてくれるXcodeプラグインなのかな?」と思ったのですが、記事を読んでみると、
- ブラウザでログを見る
- 複数アプリのログを見ることができる
- url schemeでアプリ間を行き来する際のログを追うこともできる
という特徴があり、しくみとしては、
- goのlogcat serverがブラウザにログを送る
- ログの整形は template/main.html で行っている
となっているそうです。
こういうやり方もあるのかーと勉強になりました。
関連
- 第3回 #potatotips で勉強になったことのまとめ - Over&Out その後
- 『上を目指すプログラマーのためのiPhoneアプリ開発テクニック iOS 7編』書評 - Over&Out その後
- 評判のいいiOSアプリ開発のTips ベスト20 - Over&Out その後
- iOS Advent Calender 2011 で勉強になったことメモ - Over&Out その後
- リファクタリング講座メモ - Over&Out その後
*1:UIScrollView をベースに、自前でつくってたカルーセルUIコンポーネントがあったのですが、ふと『iCarousel』(こちらも超有名OSS)を見てみたら、そっちの方がずっとよくできてて、自分の実装はあっさり葬り去ることになったという。(iCarouselは「カバーフローをつくるもの」という思い込みがあって、当初は選択肢として考えてなかった)