SlideShare a Scribd company logo
Women Who Code
iOS Meetup
2016 AUG 21
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
While on your journey of introducing a new experience for your amazing app
you hit a decision point.
Do you develop write your own code or do you use something someone has
written?
If you want to DIY, turn to page 57
If you want to use something someone has written, turn to page 154
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
What this talk IS covering
Dependency Management Options
Pros and Cons of each
My personal bias
What this talk IS NOT
covering
Application Architecture (kind of)
Project Structure (sort of)
System Configuration (just a little)
154
Dependent things   dependency management for apple sw - slideshare
Cocoapods in 5 “easy” steps
$ sudo gem install cocoapods && pod setup —-verbose
$ pod init
$ pod install
$ nano Podfile
1
2
3
4
// sudo because it’s a global install
// gem because it’s written in Ruby
// Run setup… go take a break
// if setup breaks… there’s a fix
// creates a ‘Podfile’ with defaults
// Assumes you already are at the top level of your project
// (personal choice) use linux text editor for initial changes to Podfile
// select your platform
// select the libraries you want to use
// exit from the editor
// install libraries
5 $ open MyApp.xcworkspace // open workspace in XCode. W T H is a workspace?
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'PrettyRandom' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for PrettyRandom
pod 'CocoaLumberjack/Swift'
target 'PrettyRandomTests' do
inherit! :search_paths
# Pods for testing
end
target 'PrettyRandomUITests' do
inherit! :search_paths
# Pods for testing
end
end
# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
target 'PrettyRandom' do
# Comment this line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for PrettyRandom
pod 'CocoaLumberjack/Swift'
target 'PrettyRandomTests' do
inherit! :search_paths
# Pods for testing
end
target 'PrettyRandomUITests' do
inherit! :search_paths
# Pods for testing
end
end
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
I love homebrew
http://brew.sh
Dependent things   dependency management for apple sw - slideshare
Carthage in 5 “easy”-ish steps
$ brew install carthage
$ nano Cartfile
$ carthage update —-platform iOS
1
2
3
4
// shouldn’t take long
// it’s easier to start a Cartfile from here
// install libraries for the type of app you are building for
// extremely minimalistic
// This is platform dependent
// you must manually link your libraries
// It has to be done through the XCode UI
4?
github "CocoaLumberjack/CocoaLumberjack"
Carthage Step 4 (a) … (c)
macOS
iOS, watchOS, tvOS
• On your application targets’ “General” settings tab, in the “Embedded Binaries” section, drag and drop each
framework you want to use from the Carthage/Build folder on disk.
• On your application target’s “Build Phases” settings tab, click the “+” icon and choose “New Copy Files Phase”.
• For each framework you’re using, drag and drop its corresponding dSYM file.
• On your application targets’ “General” settings tab, in the “Linked Frameworks and Libraries” section, drag and
drop each framework you want to use from the Carthage/Build folder on disk.
• On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase”.
Create a Run Script in which you specify your shell (ex: bin/sh), add the following contents to the script area below
the shell:
• and add the paths to the frameworks you want to use under “Input Files”, e.g.:
/usr/local/bin/carthage copy-frameworks
$(SRCROOT)/Carthage/Build/iOS/Box.framework
$(SRCROOT)/Carthage/Build/iOS/Result.framework
$(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Dependent things   dependency management for apple sw - slideshare
Swift PM in 5
$ swift package init --type executable
$ swift package generate-xcodeproj
1
2
3
5
// creates a ‘Package.swift’ with defaults
// Assumes you already are at the top level of
your project
// depending on your internets, this could take a while
// add dependencies
// generates PrettyRandom.xcodeproj file
Install Xcode 8.0 (beta)
$ open PrettyRandom.xcodeproj
4
import PackageDescription
let package = Package(
name: "PrettyRandom",
dependencies: [
.Package(url: "https://github.com/thecb4/SwiftyJSON.git", versions: Version(3,0,2)..<Version(3,0,34)),
]
)
$ nano Package.swift
// open Xcode (beta) and realize nothing works because
the library isn’t Swift 3 compatible
Swift PM in 5… Nevermind
$ swift package init --type executable
$ swift package generate-xcodeproj
1
2
3
5
// creates a ‘Package.swift’ with defaults
// Assumes you already are at the top level of
your project
// depending on your internets, this could take a while
// add dependencies
// generates PrettyRandom.xcodeproj file
Install Xcode 8.0 (beta)
$ open PrettyRandom.xcodeproj
4
import PackageDescription
let package = Package(
name: "PrettyRandom",
dependencies: [
.Package(url: "https://github.com/thecb4/SwiftyJSON.git", versions: Version(3,0,2)..<Version(3,0,34)),
]
)
$ nano Package.swift
// open Xcode (beta) and realize nothing works because
the library isn’t Swift 3 compatible
Dependent things   dependency management for apple sw - slideshare
side by side comparison
Written In Ruby Swift Swift
Current Version 1.0.1 0.16.2 swiftpm-18
Control File Podfile Cartfile Package.swift
Repository Cocoapods Trunk git git
Libraries 3000+ 3000+1 ???
Search Index website,
command line
If it’s on github you can
use it1
IBM Catalog
Version support Semantic Semantic Semantic
Target Support Yes What target? On Roadmap
Integration Type Source Source or Binary Source
Platform Support
macOS, iOS, watchOS,
tvOS
macOS, iOS, watchOS,
tvOS
Linux, macOS2, iOS2,
watchOS2, tvOS2
Swift Support 2.2.3 2.2.3 3.0
1. The library has to have a Shared Scheme to work
2. If you are building a library you are fine. Anything with a UI is a lot of work
I love carthage
https://github.com/Carthage/Carthage
Written In Ruby Swift Swift
Current Version 1.0.1 0.16.2 swiftpm-18
Control File Podfile Cartfile Package.swift
Repository Cocoapods Trunk git git
Libraries 3000+ 3000+1 ???
Search Index website,
command line
If it’s on github you can
use it1
IBM Catalog
Version support Semantic Semantic Semantic
Target Support Yes What target? On Roadmap
Integration Type Source Source or Binary Source
Platform Support
macOS, iOS, watchOS,
tvOS
macOS, iOS, watchOS,
tvOS
Linux, macOS2, iOS2,
watchOS2, tvOS2
Swift Support 2.2.3 2.2.3 3.0
1. The library has to have a Shared Scheme to work
2. If you are building a library you are fine. Anything with a UI is a lot of work
Dependent things   dependency management for apple sw - slideshare
Any Questions?
references
These slides… http://goo.gl/oJM5Pf
Homebrew… http://brew.sh
Carthage… https://github.com/Carthage/Carthage
Cocoapods… https://cocoapods.org
Swift Package Manager… https://swift.org/package-manager
Libraries vs. Frameworks… http://www.knowstack.com/framework-vs-library-cocoa-ios/
contact
cavelle@thecb4.io
@_thecb4

More Related Content

What's hot (20)

PPTX
LVPHP.org
Joshua Copeland
 
PDF
Php Dependency Management with Composer ZendCon 2016
Clark Everetts
 
PDF
WebRTC - Brings Real-Time to the Web
Vũ Nguyễn
 
PPTX
drone continuous Integration
Bo-Yi Wu
 
PPTX
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
PDF
Console Apps: php artisan forthe:win
Joe Ferguson
 
PDF
Automate Yo' Self
John Anderson
 
PDF
A Modest Introduction to Swift
John Anderson
 
PDF
High Productivity Web Development Workflow
Vũ Nguyễn
 
PDF
Moderne Android Builds mit Gradle
inovex GmbH
 
PDF
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Julio Bitencourt
 
PDF
手機自動化測試和持續整合
Carl Su
 
PDF
Perl Continous Integration
Michael Peters
 
PDF
用 Go 語言實戰 Push Notification 服務
Bo-Yi Wu
 
PDF
Dependency management in golang
Ramit Surana
 
PDF
Lesson 02 - React Native Development Environment Setup
University of Catania
 
PPT
Lunch and learn as3_frameworks
Yuri Visser
 
PDF
Getting Your Hooks into Cordova
ColdFusionConference
 
PDF
Getting your Hooks into Cordova
Gavin Pickin
 
ODP
Apache Cordova, Hybrid Application Development
thedumbterminal
 
LVPHP.org
Joshua Copeland
 
Php Dependency Management with Composer ZendCon 2016
Clark Everetts
 
WebRTC - Brings Real-Time to the Web
Vũ Nguyễn
 
drone continuous Integration
Bo-Yi Wu
 
PHP & JavaScript & CSS Coding style
Bo-Yi Wu
 
Console Apps: php artisan forthe:win
Joe Ferguson
 
Automate Yo' Self
John Anderson
 
A Modest Introduction to Swift
John Anderson
 
High Productivity Web Development Workflow
Vũ Nguyễn
 
Moderne Android Builds mit Gradle
inovex GmbH
 
Cenário atual do PHP e Introdução ao Laravel no Devinvale 2014
Julio Bitencourt
 
手機自動化測試和持續整合
Carl Su
 
Perl Continous Integration
Michael Peters
 
用 Go 語言實戰 Push Notification 服務
Bo-Yi Wu
 
Dependency management in golang
Ramit Surana
 
Lesson 02 - React Native Development Environment Setup
University of Catania
 
Lunch and learn as3_frameworks
Yuri Visser
 
Getting Your Hooks into Cordova
ColdFusionConference
 
Getting your Hooks into Cordova
Gavin Pickin
 
Apache Cordova, Hybrid Application Development
thedumbterminal
 

Viewers also liked (10)

PPTX
Apple - what's new in iOS 10, watchOS 3 & tvOS 10
Accedo
 
PDF
Learn watchOS Programming!
Snehal Patil
 
PPTX
Apple Watch Technology & WatchOS 2
Saransh Viswari
 
PDF
[CocoaHeads Tricity] watchOS 2 - native apps are coming
Mateusz Klimczak
 
PDF
watchOS 2でゲーム作ってみた話
Kohki Miki
 
PPTX
Transfer data from iPhone to iWatch
Pawan Ramteke
 
PDF
C language in our world 2016
Juraj Michálek
 
PDF
Apple watch course
bestonlinecoursescoupon
 
PDF
D2 OPEN SEMINAR - WWDC 핫 이슈
NAVER D2
 
PDF
Development of Mobile Applications
Dávid Kaya
 
Apple - what's new in iOS 10, watchOS 3 & tvOS 10
Accedo
 
Learn watchOS Programming!
Snehal Patil
 
Apple Watch Technology & WatchOS 2
Saransh Viswari
 
[CocoaHeads Tricity] watchOS 2 - native apps are coming
Mateusz Klimczak
 
watchOS 2でゲーム作ってみた話
Kohki Miki
 
Transfer data from iPhone to iWatch
Pawan Ramteke
 
C language in our world 2016
Juraj Michálek
 
Apple watch course
bestonlinecoursescoupon
 
D2 OPEN SEMINAR - WWDC 핫 이슈
NAVER D2
 
Development of Mobile Applications
Dávid Kaya
 
Ad

Similar to Dependent things dependency management for apple sw - slideshare (20)

PDF
"I have a framework idea" - Repeat less, share more.
Fabio Milano
 
PPTX
How Do I Pick the Best Platform for an iOS App?
SemaphoreSoftware1
 
PDF
MPD2011 | Александр Додатко "Процесс непрерывной интеграции для iOS проектов"
ITGinGer
 
PPTX
How to Choose the Best Platform for iOS App Development?
SemaphoreSoftware1
 
PDF
Building a Cross-Platform Mobile SDK in Rust.pdf
IanWagner13
 
PDF
How to build your own iOS framework
Billy Tobon
 
PDF
Nimble - iOS dependency management
Nimble
 
PPTX
Bitrise: Make iOS Builds Faster - Tokyo 2019 March - Cookpad meetup
Viktor Benei
 
PDF
Jazoon12 355 aleksandra_gavrilovska-1
Netcetera
 
PDF
Fastlane - ATC 2016
Pablo Menezes
 
PDF
[CONFidence 2016] Sławomir Kosowski - Introduction to iOS Application Securit...
PROIDEA
 
PDF
Write cross platform native apps in Ruby
Giedrius Rimkus
 
PDF
RubyMotion Inspect Conference - 2013. (With speaker notes.)
alloy020
 
PPTX
CocoaPods.pptx
Nicole and Yoonseo
 
PDF
Automate your iOS deployment a bit
Michał Łukasiewicz
 
PPT
State ofappdevelopment
gillygize
 
PDF
Building static libraries for iOS with CocoaPods
Sigmapoint
 
PDF
Gigigo Workshop - Create an iOS Framework, document it and not die trying
Alex Rupérez
 
PDF
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
Srijan Technologies
 
PPTX
Continous Integration for iOS Projects
Ciprian Redinciuc
 
"I have a framework idea" - Repeat less, share more.
Fabio Milano
 
How Do I Pick the Best Platform for an iOS App?
SemaphoreSoftware1
 
MPD2011 | Александр Додатко "Процесс непрерывной интеграции для iOS проектов"
ITGinGer
 
How to Choose the Best Platform for iOS App Development?
SemaphoreSoftware1
 
Building a Cross-Platform Mobile SDK in Rust.pdf
IanWagner13
 
How to build your own iOS framework
Billy Tobon
 
Nimble - iOS dependency management
Nimble
 
Bitrise: Make iOS Builds Faster - Tokyo 2019 March - Cookpad meetup
Viktor Benei
 
Jazoon12 355 aleksandra_gavrilovska-1
Netcetera
 
Fastlane - ATC 2016
Pablo Menezes
 
[CONFidence 2016] Sławomir Kosowski - Introduction to iOS Application Securit...
PROIDEA
 
Write cross platform native apps in Ruby
Giedrius Rimkus
 
RubyMotion Inspect Conference - 2013. (With speaker notes.)
alloy020
 
CocoaPods.pptx
Nicole and Yoonseo
 
Automate your iOS deployment a bit
Michał Łukasiewicz
 
State ofappdevelopment
gillygize
 
Building static libraries for iOS with CocoaPods
Sigmapoint
 
Gigigo Workshop - Create an iOS Framework, document it and not die trying
Alex Rupérez
 
[Srijan Wednesday Webinars] Building Full-Fledged Native Apps Using RubyMotion
Srijan Technologies
 
Continous Integration for iOS Projects
Ciprian Redinciuc
 
Ad

Recently uploaded (20)

PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Odoo CRM vs Zoho CRM: Honest Comparison 2025
Odiware Technologies Private Limited
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
Tally software_Introduction_Presentation
AditiBansal54083
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 

Dependent things dependency management for apple sw - slideshare

  • 1. Women Who Code iOS Meetup 2016 AUG 21
  • 4. While on your journey of introducing a new experience for your amazing app you hit a decision point. Do you develop write your own code or do you use something someone has written? If you want to DIY, turn to page 57 If you want to use something someone has written, turn to page 154
  • 10. What this talk IS covering Dependency Management Options Pros and Cons of each My personal bias
  • 11. What this talk IS NOT covering Application Architecture (kind of) Project Structure (sort of) System Configuration (just a little)
  • 12. 154
  • 14. Cocoapods in 5 “easy” steps $ sudo gem install cocoapods && pod setup —-verbose $ pod init $ pod install $ nano Podfile 1 2 3 4 // sudo because it’s a global install // gem because it’s written in Ruby // Run setup… go take a break // if setup breaks… there’s a fix // creates a ‘Podfile’ with defaults // Assumes you already are at the top level of your project // (personal choice) use linux text editor for initial changes to Podfile // select your platform // select the libraries you want to use // exit from the editor // install libraries 5 $ open MyApp.xcworkspace // open workspace in XCode. W T H is a workspace? # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'PrettyRandom' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for PrettyRandom pod 'CocoaLumberjack/Swift' target 'PrettyRandomTests' do inherit! :search_paths # Pods for testing end target 'PrettyRandomUITests' do inherit! :search_paths # Pods for testing end end
  • 15. # Uncomment this line to define a global platform for your project # platform :ios, '9.0' target 'PrettyRandom' do # Comment this line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for PrettyRandom pod 'CocoaLumberjack/Swift' target 'PrettyRandomTests' do inherit! :search_paths # Pods for testing end target 'PrettyRandomUITests' do inherit! :search_paths # Pods for testing end end
  • 21. Carthage in 5 “easy”-ish steps $ brew install carthage $ nano Cartfile $ carthage update —-platform iOS 1 2 3 4 // shouldn’t take long // it’s easier to start a Cartfile from here // install libraries for the type of app you are building for // extremely minimalistic // This is platform dependent // you must manually link your libraries // It has to be done through the XCode UI 4? github "CocoaLumberjack/CocoaLumberjack"
  • 22. Carthage Step 4 (a) … (c) macOS iOS, watchOS, tvOS • On your application targets’ “General” settings tab, in the “Embedded Binaries” section, drag and drop each framework you want to use from the Carthage/Build folder on disk. • On your application target’s “Build Phases” settings tab, click the “+” icon and choose “New Copy Files Phase”. • For each framework you’re using, drag and drop its corresponding dSYM file. • On your application targets’ “General” settings tab, in the “Linked Frameworks and Libraries” section, drag and drop each framework you want to use from the Carthage/Build folder on disk. • On your application targets’ “Build Phases” settings tab, click the “+” icon and choose “New Run Script Phase”. Create a Run Script in which you specify your shell (ex: bin/sh), add the following contents to the script area below the shell: • and add the paths to the frameworks you want to use under “Input Files”, e.g.: /usr/local/bin/carthage copy-frameworks $(SRCROOT)/Carthage/Build/iOS/Box.framework $(SRCROOT)/Carthage/Build/iOS/Result.framework $(SRCROOT)/Carthage/Build/iOS/ReactiveCocoa.framework
  • 27. Swift PM in 5 $ swift package init --type executable $ swift package generate-xcodeproj 1 2 3 5 // creates a ‘Package.swift’ with defaults // Assumes you already are at the top level of your project // depending on your internets, this could take a while // add dependencies // generates PrettyRandom.xcodeproj file Install Xcode 8.0 (beta) $ open PrettyRandom.xcodeproj 4 import PackageDescription let package = Package( name: "PrettyRandom", dependencies: [ .Package(url: "https://github.com/thecb4/SwiftyJSON.git", versions: Version(3,0,2)..<Version(3,0,34)), ] ) $ nano Package.swift // open Xcode (beta) and realize nothing works because the library isn’t Swift 3 compatible
  • 28. Swift PM in 5… Nevermind $ swift package init --type executable $ swift package generate-xcodeproj 1 2 3 5 // creates a ‘Package.swift’ with defaults // Assumes you already are at the top level of your project // depending on your internets, this could take a while // add dependencies // generates PrettyRandom.xcodeproj file Install Xcode 8.0 (beta) $ open PrettyRandom.xcodeproj 4 import PackageDescription let package = Package( name: "PrettyRandom", dependencies: [ .Package(url: "https://github.com/thecb4/SwiftyJSON.git", versions: Version(3,0,2)..<Version(3,0,34)), ] ) $ nano Package.swift // open Xcode (beta) and realize nothing works because the library isn’t Swift 3 compatible
  • 30. side by side comparison
  • 31. Written In Ruby Swift Swift Current Version 1.0.1 0.16.2 swiftpm-18 Control File Podfile Cartfile Package.swift Repository Cocoapods Trunk git git Libraries 3000+ 3000+1 ??? Search Index website, command line If it’s on github you can use it1 IBM Catalog Version support Semantic Semantic Semantic Target Support Yes What target? On Roadmap Integration Type Source Source or Binary Source Platform Support macOS, iOS, watchOS, tvOS macOS, iOS, watchOS, tvOS Linux, macOS2, iOS2, watchOS2, tvOS2 Swift Support 2.2.3 2.2.3 3.0 1. The library has to have a Shared Scheme to work 2. If you are building a library you are fine. Anything with a UI is a lot of work
  • 33. Written In Ruby Swift Swift Current Version 1.0.1 0.16.2 swiftpm-18 Control File Podfile Cartfile Package.swift Repository Cocoapods Trunk git git Libraries 3000+ 3000+1 ??? Search Index website, command line If it’s on github you can use it1 IBM Catalog Version support Semantic Semantic Semantic Target Support Yes What target? On Roadmap Integration Type Source Source or Binary Source Platform Support macOS, iOS, watchOS, tvOS macOS, iOS, watchOS, tvOS Linux, macOS2, iOS2, watchOS2, tvOS2 Swift Support 2.2.3 2.2.3 3.0 1. The library has to have a Shared Scheme to work 2. If you are building a library you are fine. Anything with a UI is a lot of work
  • 36. references These slides… http://goo.gl/oJM5Pf Homebrew… http://brew.sh Carthage… https://github.com/Carthage/Carthage Cocoapods… https://cocoapods.org Swift Package Manager… https://swift.org/package-manager Libraries vs. Frameworks… http://www.knowstack.com/framework-vs-library-cocoa-ios/