[20130624]最近の開発環境について話してみる sakata
TRANSCRIPT
最近の開発環境について話してみる
Koichi Sakata (@huin)genesix, Inc.
自己紹介• Koichi Sakata
• @huin
• genesix, Inc.
• 2012年新卒
• iOS歴2年ちょっと
• WWDC 2013参加できた!!
株式会社ジェネシックス
iOSアプリ開発でよくあること
ライブラリの導入で時間とられる
ライブラリの導入で時間とられる
• ソースコードだけなら問題ない
• フレームワークリンクするなら余裕
• Build Settings弄り始めると面倒
• Linker Flag, Header Path, ...
• 他のライブラリ使ってたら激おこ(ry
どうするの?
CocoaPodsでしょ!!
CocoaPods• 皆さんご存知ライブラリ管理ツール
• プロジェクトへのリンクもやってくれるのが非
常にうれしい.
• 社内ライブラリ(非公開)でもおk
# Install CocoaPods$ gem install cocoapods
# Setup$ cd /path/to/Project$ vim Podfileplatform :ios
pod ‘Reachability’pod ‘PrivateLib’, :git => ‘[email protected]:org/PrivateLib.git’
# Install Libs$ pod install$ open Project.xcworkspace -a /Application/Xcode.app
SenTestingKitが物足りない
どうするの?
Kiwiでし(ry
Kiwi• BDD, RSpecなテストフレームワーク
• Mock, Stubsもひと通り揃ってる
• Class, ProtocolのMockなど
• 非同期なテストもちゃんと書ける
• 導入は
target :ProjectTests, :exclusive => true dopod ‘Kiwi’
end
Kiwi• Blocksのネストに違和感
• 慣れたら大したことなかった
• iBooks の チュートリアル本が便利
• https://itunes.apple.com/us/book/id502345143
• Xcodeからit単位で実行できないのが残念
開発したいけどAPIが間に合ってない
開発したいけどAPIが間に合ってない• よくある話?ウチだけ?
• 待つのは時間がもったいない
• APIできてもエラーまわりのテストとかはしづらい
• 他社のAPIだとどうしようもない
• Sinatra+Powで手元にダミーサーバ?
Nocilla
Nocilla• リクエストに対して、任意のレスポンスを返してくれるようにするライブラリ
• アプリの中で完結するので楽
• メソッドチェイン的に書けるのが気持ちいい
• 導入は
target :ProjectTests, :exclusive => true dopod ‘Nocilla’
end
Nocilla• レスポンス書くのは結局手間
• この部分は仕方ない(と思ってる)
• レスポンスのJSONファイル作ってWikiにコピペ
しておけばなんとなくドキュメント
• 高機能さで言うとOHHTTPStubs
コマンドラインからほげほげしたい
CLIでほげほげしたい• JenkinsとかJenkinsとかJenkinsとか...
• xcodebuild がテストの実行サポートしてない
• ロジックテストだけならなんとか
• Simulatorでもできるけどトリッキー
• 興味ある方はk_kinukawaさんの記事 参照
• http://kkinukawa.hatenablog.com/entry/2013/04/12/012256
xctool
xctool• facebook製(なんか信用できる)
• シミュレーターでのテストもできるよ!!
• CI向けの設定も書いてあって安心
• .xctool-argsで設定簡略化
• 導入簡単(いつの間にかHomebrew対応してた)
$ brew install xctool
xctool• 任意のテスト(メソッド)単位で実行できる
• Kiwiとの組み合わせだと意味ない
• テストレポートの出力形式が豊富
• パッケージ(ipa)作成はできないみたい
• ‘xctool archive‘はxcarchive用らしい
• xcrun でやりましょう
まとめ• 開発効率上げるツールって大事ですよね
• 開発速度に効いてくる
• 最近は豊富になってきたと思う
• ManiacDev.com経由の情報が多い
• http://maniacdev.com/
• もっと便利なのとかあれば教えて下さい
参考• CocoaPods
• http://cocoapods.org/
• Kiwi
• https://github.com/allending/Kiwi
• Nocilla
• https://github.com/luisobo/Nocilla
• OHHTTPStubs
• https://github.com/AliSoftware/OHHTTPStubs
• xctool
• https://github.com/facebook/xctool
発表で使ったデモはこちらhttps://github.com/kshuin/ToolsDemo