Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Carthageを使ってみて自作ライブラリにも適用してみた話
Search
Kohei Tabata
July 22, 2016
Programming
0
790
Carthageを使ってみて自作ライブラリにも適用してみた話
Kohei Tabata
July 22, 2016
Tweet
Share
More Decks by Kohei Tabata
See All by Kohei Tabata
AIと協業する開発の進め方
nerd0geek1
0
98
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
900
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
97
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
4.2k
家庭をプロジェクトとして運営した話
nerd0geek1
2
4.2k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
1k
みんなで育てるprecheck
nerd0geek1
1
710
matchとは?match導入のメリット
nerd0geek1
4
560
Improve your workflow with Sketch plugin
nerd0geek1
3
1.3k
Other Decks in Programming
See All in Programming
Google Cloudとo11yで実現するアプリケーション開発者主体のDB改善
nnaka2992
1
130
Drawing Heighway’s Dragon- Recursive Function Rewrite- From Imperative Style in Pascal 64 To Functional Style in Scala 3
philipschwarz
PRO
0
160
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
260
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
260
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
3.3k
PEPCは何を変えようとしていたのか
ken7253
3
310
Jakarta EE meets AI
ivargrimstad
0
720
CIBMTR振り返り+敗北から学ぶコンペの取り組み方反省
takanao
1
140
ML.NETで始める機械学習
ymd65536
0
250
もう少しテストを書きたいんじゃ〜 #phpstudy
o0h
PRO
21
4.4k
5分で理解する SOLID 原則 #phpcon_nagoya
shogogg
1
420
Go 1.24でジェネリックになった型エイリアスの紹介
syumai
2
310
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
41
2.5k
Building an army of robots
kneath
303
45k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
260
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
175
52k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
33
2.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
4 Signs Your Business is Dying
shpigford
183
22k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
4
390
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
We Have a Design System, Now What?
morganepeng
51
7.4k
Transcript
Carthageを使ってみて 自作ライブラリにも適用してみた話 2016/07/22 Retty Tech Cafe@Retty
自己紹介 ・Kohei Tabata(@nerd0geek1) ・iOS/Mac/tvOS Developer ・Saib Studio LLC ・Fastlane大好き ・最近はBLEと仲良し。
Saib Studio LLC Kohei Tabata
Next! Remote ・LT/プレゼン用iOS・Macアプリ ・iOSアプリからMacのスライドを操作可能 ・便利なタイマー機能付き! Macアプリはこちら http://saib-stud.io/Next_Installer.pkg
目次 ・CocoaPodsとCarthageの違い ・Carthageのプロジェクトへの導入 ・Carthageの自作ライブラリへの適用
Carthage使ってますか?
CocoaPods vs Carthage
CocoaPods ・rubyで書かれたパッケージマネージャー ・Objective-C/Swiftライブラリが対象 ・iOS4以上(Swiftライブラリを使う場合はiOS8以上)で利用可能 ・ライブラリはプロジェクトのビルド時にコンパイルされる。
Carthage ・Swiftで書かれたパッケージマネージャー ・Objective-C/Swiftライブラリが対象 (Objective-Cも使える、とご指摘くださった@ikesyoさん、ありがとうございます。) ・iOS8以上で利用可能 ・frameworkをビルドし、プロジェクトに取り込む
Carthageのプロジェクトへの導入
Swiftがまだ1.x系だった頃…
None
ビルド速度改善のために導入 (+static libraryとuse_frameworks!同時に使えなかったため)
Cartfile
carthageコマンド carthage update --platform iOS platform指定の理由は以下の2つ ・ビルド時間短縮のため(デフォルトでは全platformが対象となる) ・iOS以外のplatformを対象としたビルドでコケることが多いため
時間短縮に役立ってくれた (SnapKitだけコケる、ということもたまにありますが)
ライブラリの作成とCarthage対応
ライブラリの作成 ・同時並行で抱えているプロジェクトが多い (常駐先1-2、自社2、個人2-3) ・似たような機能を実装することが多い ・ライブラリ化して使いまわしたい欲求 ・インターフェイス分離の原則に従った設計を行うために、 実験的にライブラリ化したい
ライブラリの作成 ・実装者が2人以上いる場合はREADME.mdを用意 ・ただ、場合によってはリリースを優先してREADMEなどは 後から追加したい場合がある
CocoaPodsの場合 ・.podspecの作成 ・README.mdの作成 ・サンプルプロジェクトの作成 ・CocoaPodsへの登録 などなどやることが多い。
Carthageの場合 ・Build SchemeをShared Schemeに変更する のみ。
まとめ ・Carthageはビルド時間の短縮に良い ・Swiftでライブラリをカジュアルに作って使う、という 最初の一歩が踏み出しやすい
ご静聴ありがとうございました
参考 • メッセージングアプリ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)