$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Carthageを使ってみて自作ライブラリにも適用してみた話
Search
Kohei Tabata
July 22, 2016
Programming
0
800
Carthageを使ってみて自作ライブラリにも適用してみた話
Kohei Tabata
July 22, 2016
Tweet
Share
More Decks by Kohei Tabata
See All by Kohei Tabata
AIと協業する開発の進め方
nerd0geek1
0
140
営業活動なしで継続的に案件を受注する方法 / how to get a contract without sales as a freelance
nerd0geek1
2
960
生体データを取り扱うアプリ開発の勘所
nerd0geek1
1
120
動線改善とステータス可視化で家庭内のストレスを軽減した話
nerd0geek1
3
4.4k
家庭をプロジェクトとして運営した話
nerd0geek1
2
4.3k
fastlaneの勉強会を主催して学んだこと、得たこと、悩んだこと
nerd0geek1
1
1.1k
みんなで育てるprecheck
nerd0geek1
1
780
matchとは?match導入のメリット
nerd0geek1
4
600
Improve your workflow with Sketch plugin
nerd0geek1
3
1.5k
Other Decks in Programming
See All in Programming
C-Shared Buildで突破するAI Agent バックテストの壁
po3rin
0
390
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
38
26k
Cell-Based Architecture
larchanjo
0
110
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
150
宅宅自以為的浪漫:跟 AI 一起為自己辦的研討會寫一個售票系統
eddie
0
500
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
460
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
160
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
220
How Software Deployment tools have changed in the past 20 years
geshan
0
29k
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
320
JETLS.jl ─ A New Language Server for Julia
abap34
1
390
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
420
Featured
See All Featured
Become a Pro
speakerdeck
PRO
31
5.7k
Side Projects
sachag
455
43k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
For a Future-Friendly Web
brad_frost
180
10k
A better future with KSS
kneath
240
18k
Facilitating Awesome Meetings
lara
57
6.7k
Rails Girls Zürich Keynote
gr2m
95
14k
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)