28
最近の開発環境について 話してみる Koichi Sakata (@huin) genesix, Inc.

[20130624]最近の開発環境について話してみる sakata

Embed Size (px)

Citation preview

Page 1: [20130624]最近の開発環境について話してみる sakata

最近の開発環境について話してみる

Koichi Sakata (@huin)genesix, Inc.

Page 2: [20130624]最近の開発環境について話してみる sakata

自己紹介• Koichi Sakata

• @huin

• genesix, Inc.

• 2012年新卒

• iOS歴2年ちょっと

• WWDC 2013参加できた!!

Page 3: [20130624]最近の開発環境について話してみる sakata

株式会社ジェネシックス

Page 4: [20130624]最近の開発環境について話してみる sakata

iOSアプリ開発でよくあること

Page 5: [20130624]最近の開発環境について話してみる sakata

ライブラリの導入で時間とられる

Page 6: [20130624]最近の開発環境について話してみる sakata

ライブラリの導入で時間とられる

• ソースコードだけなら問題ない

• フレームワークリンクするなら余裕

• Build Settings弄り始めると面倒

• Linker Flag, Header Path, ...

• 他のライブラリ使ってたら激おこ(ry

Page 7: [20130624]最近の開発環境について話してみる sakata

どうするの?

Page 8: [20130624]最近の開発環境について話してみる sakata

CocoaPodsでしょ!!

Page 9: [20130624]最近の開発環境について話してみる sakata

CocoaPods• 皆さんご存知ライブラリ管理ツール

• プロジェクトへのリンクもやってくれるのが非

常にうれしい.

• 社内ライブラリ(非公開)でもおk

Page 10: [20130624]最近の開発環境について話してみる sakata

# 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

Page 11: [20130624]最近の開発環境について話してみる sakata

SenTestingKitが物足りない

Page 12: [20130624]最近の開発環境について話してみる sakata

どうするの?

Page 13: [20130624]最近の開発環境について話してみる sakata

Kiwiでし(ry

Page 14: [20130624]最近の開発環境について話してみる sakata

Kiwi• BDD, RSpecなテストフレームワーク

• Mock, Stubsもひと通り揃ってる

• Class, ProtocolのMockなど

• 非同期なテストもちゃんと書ける

• 導入は

target :ProjectTests, :exclusive => true dopod ‘Kiwi’

end

Page 15: [20130624]最近の開発環境について話してみる sakata

Kiwi• Blocksのネストに違和感

• 慣れたら大したことなかった

• iBooks の チュートリアル本が便利

• https://itunes.apple.com/us/book/id502345143

• Xcodeからit単位で実行できないのが残念

Page 16: [20130624]最近の開発環境について話してみる sakata

開発したいけどAPIが間に合ってない

Page 17: [20130624]最近の開発環境について話してみる sakata

開発したいけどAPIが間に合ってない• よくある話?ウチだけ?

• 待つのは時間がもったいない

• APIできてもエラーまわりのテストとかはしづらい

• 他社のAPIだとどうしようもない

• Sinatra+Powで手元にダミーサーバ?

Page 18: [20130624]最近の開発環境について話してみる sakata

Nocilla

Page 19: [20130624]最近の開発環境について話してみる sakata

Nocilla• リクエストに対して、任意のレスポンスを返してくれるようにするライブラリ

• アプリの中で完結するので楽

• メソッドチェイン的に書けるのが気持ちいい

• 導入は

target :ProjectTests, :exclusive => true dopod ‘Nocilla’

end

Page 20: [20130624]最近の開発環境について話してみる sakata

Nocilla• レスポンス書くのは結局手間

• この部分は仕方ない(と思ってる)

• レスポンスのJSONファイル作ってWikiにコピペ

しておけばなんとなくドキュメント

• 高機能さで言うとOHHTTPStubs

Page 21: [20130624]最近の開発環境について話してみる sakata

コマンドラインからほげほげしたい

Page 22: [20130624]最近の開発環境について話してみる sakata

CLIでほげほげしたい• JenkinsとかJenkinsとかJenkinsとか...

• xcodebuild がテストの実行サポートしてない

• ロジックテストだけならなんとか

• Simulatorでもできるけどトリッキー

• 興味ある方はk_kinukawaさんの記事 参照

• http://kkinukawa.hatenablog.com/entry/2013/04/12/012256

Page 23: [20130624]最近の開発環境について話してみる sakata

xctool

Page 24: [20130624]最近の開発環境について話してみる sakata

xctool• facebook製(なんか信用できる)

• シミュレーターでのテストもできるよ!!

• CI向けの設定も書いてあって安心

• .xctool-argsで設定簡略化

• 導入簡単(いつの間にかHomebrew対応してた)

$ brew install xctool

Page 25: [20130624]最近の開発環境について話してみる sakata

xctool• 任意のテスト(メソッド)単位で実行できる

• Kiwiとの組み合わせだと意味ない

• テストレポートの出力形式が豊富

• パッケージ(ipa)作成はできないみたい

• ‘xctool archive‘はxcarchive用らしい

• xcrun でやりましょう

Page 26: [20130624]最近の開発環境について話してみる sakata

まとめ• 開発効率上げるツールって大事ですよね

• 開発速度に効いてくる

• 最近は豊富になってきたと思う

• ManiacDev.com経由の情報が多い

• http://maniacdev.com/

• もっと便利なのとかあれば教えて下さい

Page 27: [20130624]最近の開発環境について話してみる sakata

参考• 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

Page 28: [20130624]最近の開発環境について話してみる sakata

発表で使ったデモはこちらhttps://github.com/kshuin/ToolsDemo