Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Swift package manager

7,807 views

Published on

http://LetSwift.kr 2016 발표자료

Published in: Technology
  • Dating for everyone is here: ♥♥♥ http://bit.ly/2Qu6Caa ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ❶❶❶ http://bit.ly/2Qu6Caa ❶❶❶
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Swift package manager

  1. 1. let swift(16) 스위프트 패키지 매니저 Swift Package Manager 윤성관 lingostar
  2. 2. let swift(16) 윤성관 lingostar Coder’sHigh
  3. 3. Agenda 들어가기 용어정리 패키지 매니저 준비 간단한 프로그램 빌드 의존성을 포함한 프로그램 빌드 Xcode 프로젝트 ?
  4. 4. let swift(16) 들어가기
  5. 5. –Hair Froce one “Swift is now open source.”
  6. 6. 리눅스에서도 스위프트 사용할 수 있어 코어 라이브러리는 멋있어졌어 스위프트 패키지 매니저도 만들었어
  7. 7. WWDC16에서 패키지 매니저
  8. 8. 60초~! 1분~! 7,000여분 중에 1분 ~!
  9. 9. 목표 : WWDC2017의 패키지 매니저 세션 관전 포인트
  10. 10. let swift(16) 용어정리
  11. 11. 패키지 소프트웨어, 응용프로그램, 데이터의 ‘배포판’ 메타데이터를 포함
  12. 12. 패키지 매니저 설치, 업데이트, 설정, 삭제를 자동화 해주는 툴 소프트웨어의 의존성이나 버전 정보 관리 ex) 앱 스토어 ex) MacPorts, Homebrew, CocoaPods ex) Alcatraz - Xcode용 플러그인 패키지 매니저
  13. 13. 패키지 컨벤션 원활한 배포를 위해 패키지 구조에 대한 규칙 정의 앱스토어에 앱 올릴 때 패키지 검사 엔드유저는 패키지 매니저의 사용법만 알면 됨 앱스토어 사용법만 아시면 됩니다 (카드 비번이랑) 원활한 배포 - 의존성 문제
  14. 14. let swift(16) 패키지 매니저 준비
  15. 15. Swift Dev. Snapshot 설치 https://swift.org/download/#snapshots
  16. 16. Dev Snapshot 설치 /Library/Developer/Toolchains /usr/bin/ swift-build swift-package Xcode 버전에 따라 export TOOLCHAINS=swift export PATH=/Library/Developer/Toolchains/swift- latest.xctoolchain/usr/bin:"${PATH}"
  17. 17. let swift(16) 간단한 프로그램 빌드
  18. 18. 매니페스트 메타데이터를 가지고 있는 파일. 화물선의 화물 리 스트 Package.swift 스위프트 언어로 패키지 매니저의 매니페스트를 정 의 여러분, 스위프트를 배우면 프로젝트 설정도 가능합니 다.
  19. 19. 프로젝트 폴더 구조 프로젝트 폴더 Package.swift Sources 소스코드들 .build/debug/
  20. 20. let swift(16) Demo - 간단한 빌드
  21. 21. 방금 한 예제는 swift.org Getting Started
  22. 22. let swift(16) 의존성을 포함한 프로그램 빌드
  23. 23. 프로젝트 폴더 구조 프로젝트 폴더 Package.swift Sources 소스코드들 Packages 의존성을 가지는 패키지들 .build/debug/
  24. 24. Dealer DeckOfPlayingCard FisherYatesPlayingCard swift build
  25. 25. let swift(16) Demo - 의존성 빌드
  26. 26. Package 클래스 내부에 Dependency 클래스를 정의 Target에서 다시 Dependency를 enum으로 정의하기 때문 let name:String? let pkgConfig:String? let providers: [SystemPackageProvider]? var targets: [Target] var dependencies: [Dependency] var exclude: [String]
  27. 27. Package 클래스 SystemPackageProvider 는 enum case Brew , Apt let name:String? let pkgConfig:String? let providers: [SystemPackageProvider]? var targets: [Target] var dependencies: [Dependency] var exclude: [String]
  28. 28. Dependency 클래스 let versionRange: Range<Version> let url: String Package(…,…) -> Dependency
  29. 29. Target 클래스 내부에 Dependency enum을 정의 let name: String var dependencies: [Dependency]
  30. 30. 샘플 매니페스트
  31. 31. 샘플 매니페스트
  32. 32. let swift(16) Xcode 프로젝트 빌드
  33. 33. Xcode 프로젝트 만들기 빈 폴더 만들기 swift package init swift package generate-xcodeproj 많은 오픈소스 프로젝트들이 SPM을 도입 Katrina 도 SwiftyJSON등의 의존성 관리
  34. 34. UIKit 프레임워크 import UIKit error 아직 사례 없음
  35. 35. SPM @ GitHub GitHub Apple 페이지 https://github.com/apple https://github.com/apple/swift-package- manager 번역본 https://github.com/lingostar/swift-package- manager
  36. 36. 참고자료 Kostiantyn Koval (Swift High Performance) http://kostiakoval.github.io/posts/swift-package- manager Swift Package Lists https://github.com/donald-pinckney/swift- packages
  37. 37. let swift(16)

×