Carthageを使ってみて自作ライブラリにも適用してみた話
by
Kohei Tabata
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Carthageを使ってみて 自作ライブラリにも適用してみた話 2016/07/22 Retty Tech Cafe@Retty
Slide 2
Slide 2 text
自己紹介 ・Kohei Tabata(@nerd0geek1) ・iOS/Mac/tvOS Developer ・Saib Studio LLC ・Fastlane大好き ・最近はBLEと仲良し。 Saib Studio LLC Kohei Tabata
Slide 3
Slide 3 text
Next! Remote ・LT/プレゼン用iOS・Macアプリ ・iOSアプリからMacのスライドを操作可能 ・便利なタイマー機能付き! Macアプリはこちら http://saib-stud.io/Next_Installer.pkg
Slide 4
Slide 4 text
目次 ・CocoaPodsとCarthageの違い ・Carthageのプロジェクトへの導入 ・Carthageの自作ライブラリへの適用
Slide 5
Slide 5 text
Carthage使ってますか?
Slide 6
Slide 6 text
CocoaPods vs Carthage
Slide 7
Slide 7 text
CocoaPods ・rubyで書かれたパッケージマネージャー ・Objective-C/Swiftライブラリが対象 ・iOS4以上(Swiftライブラリを使う場合はiOS8以上)で利用可能 ・ライブラリはプロジェクトのビルド時にコンパイルされる。
Slide 8
Slide 8 text
Carthage ・Swiftで書かれたパッケージマネージャー ・Objective-C/Swiftライブラリが対象 (Objective-Cも使える、とご指摘くださった@ikesyoさん、ありがとうございます。) ・iOS8以上で利用可能 ・frameworkをビルドし、プロジェクトに取り込む
Slide 9
Slide 9 text
Carthageのプロジェクトへの導入
Slide 10
Slide 10 text
Swiftがまだ1.x系だった頃…
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
ビルド速度改善のために導入 (+static libraryとuse_frameworks!同時に使えなかったため)
Slide 13
Slide 13 text
Cartfile
Slide 14
Slide 14 text
carthageコマンド carthage update --platform iOS platform指定の理由は以下の2つ ・ビルド時間短縮のため(デフォルトでは全platformが対象となる) ・iOS以外のplatformを対象としたビルドでコケることが多いため
Slide 15
Slide 15 text
時間短縮に役立ってくれた (SnapKitだけコケる、ということもたまにありますが)
Slide 16
Slide 16 text
ライブラリの作成とCarthage対応
Slide 17
Slide 17 text
ライブラリの作成 ・同時並行で抱えているプロジェクトが多い (常駐先1-2、自社2、個人2-3) ・似たような機能を実装することが多い ・ライブラリ化して使いまわしたい欲求 ・インターフェイス分離の原則に従った設計を行うために、 実験的にライブラリ化したい
Slide 18
Slide 18 text
ライブラリの作成 ・実装者が2人以上いる場合はREADME.mdを用意 ・ただ、場合によってはリリースを優先してREADMEなどは 後から追加したい場合がある
Slide 19
Slide 19 text
CocoaPodsの場合 ・.podspecの作成 ・README.mdの作成 ・サンプルプロジェクトの作成 ・CocoaPodsへの登録 などなどやることが多い。
Slide 20
Slide 20 text
Carthageの場合 ・Build SchemeをShared Schemeに変更する のみ。
Slide 21
Slide 21 text
まとめ ・Carthageはビルド時間の短縮に良い ・Swiftでライブラリをカジュアルに作って使う、という 最初の一歩が踏み出しやすい
Slide 22
Slide 22 text
ご静聴ありがとうございました
Slide 23
Slide 23 text
参考 • メッセージングアプリSync開発の舞台裏(iOS) (http://engineer.wantedly.com/2015/09/09/sync-messenger-ios-project.html) • Carthage/Carthage (https://github.com/Carthage/Carthage) • CocoaPods/CocoaPods (https://github.com/CocoaPods/CocoaPods)