読者です 読者をやめる 読者になる 読者になる

【悲報】故HatenaNotifyのiOS 7版の機能がしょっぱいとネットで話題に・・作者「問題ない」←炎上 そのまま審査に出した結果wwww(画像あり)

やけくそ気味の見出しはご勘弁ください。

めんどうなので要点だけ。

以下は開発中に思いついたメモとか

ViewControllerクラスを単体でテストするなの話

ViewContorllerのユニットテストを過去にクラスベースでインスタンス化してライフサイクルメソッド順番に呼び出して画面にLabel出てる?(手動で呼んでるんだから出てるよ) みたいなテストコードをいちいち書いてて、その経験からあんま投資効果なかったなーという事実からViewControllerのテストはアプリに結合済みのものを通じた受け入れテストで実行しろ、というのをずっと説いているんだけど(関連: いい感じのViewControllerのテストの書き方を考えてみる)、あんまこの辺の想いを他人と共用できたことがなかったので、実践的なサンプルコードを出さないとな〜と思っていて、それを意識してATDD風に開発していった(経験足りなくてキッチり全部ドリブンするのはキツかったので中途半端……)。

https://github.com/laiso/HatenaNotify/tree/master/Acceptance%20Tes

いつも言ってるKIFのメリットとして、UI AutomationとかAppiumとかのInstrumentsを通じて既にビルドされたバイナリに対するテストをするフレームワークや、Calabash, FrankのようにHTTPリクエスト経由で命令していくのと違って直接動いてる機能を書き換えられるっていうのをこのへんでやっている。ログインAPIに対するリクエストをスタブ化してネットワークやサーバーの状態に限らずテストが実行できる。

https://github.com/laiso/HatenaNotify/blob/master/Acceptance%20Tests/AcceptanceTestHelper.m

ただとくに考えがまだまとまってない部分もあってまた今度まとめて書く。

AFNetworking 2.0

実はASIHttpRequest/TTURLRequestチルドレンで今だにそっちを使ったコードとかを保守してるのでAFNetworking 1.x系を使う機会全然なかったからとくに2.x系の移行とか違いとか意識しなかったんだけど。あのスーパープログラマーの人が作ってる奴かという高級料亭のような安心感があった。あんまり活用してない。

Kiwi

もうずっとSenTestingKitだったから久しぶりに使った。テスト項目(example)に日本語使えるのが利点とは言える。最初XCTest使ってたんだけどSenTestingKit時代の非同期処理の待ち受けモジュールがいじらないと動かなかったのでKiwiにしてみた。
XUnit系でもフラットなクラス→ベタtest関数の書き方じゃなくて、BDD的な構造を意識してテストケースを分割して適切な語彙を使って構成すればおんなじようにできなくはないと思っているけど、やっぱりXSpec系のがコードに見た目と記述量的にはスマートに見える。

iTunes - ブック - Daniel H Steinberg「Test Driving iOS Development with Kiwi」

iAd

オールドインターネッターなのでフリーソフトで金儲けなどけしからん! 潔く電子の藻屑となれ。と感じてしまうクチなんだけど、開発中Running Lean ―実践リーンスタートアップ (THE LEAN SERIES)をずっと読んでて「初日から課金せよ! それは課金するに足る価値のある製品を作り出すためだ!」という話がのっててなるほどなあと思ったので速攻で広告つけてアンロック課金アイテムつけた(まあAppStoreにリリースできなかったけど)。

Running Lean ―実践リーンスタートアップ (THE LEAN SERIES)

Running Lean ―実践リーンスタートアップ (THE LEAN SERIES)