Slide 1

Slide 1 text

Swift੡CLIπʔϧΛMintΛ࢖Θͣ SwiftPackageManagerͰ؅ཧ͢Δ Potatotips #68 2020/2/12 Yasuharu Yanamura

Slide 2

Slide 2 text

ࣗݾ঺հ • Yasuharu Yanamura/༄ଜ ߁੖ • ɹ@yanamura_ɹɹ@yanamura • ίωώτגࣜձࣾ • ϚϚϦiOSΞϓϦ։ൃ

Slide 3

Slide 3 text

iOSͷ։ൃͰ࢖͏πʔϧྨ • SwiftFormat • SwiftLint • XcodeGen etc...

Slide 4

Slide 4 text

؅ཧํ๏͸͍Ζ͍Ζ • Homebrew • Cocoapods • Mint

Slide 5

Slide 5 text

Swift Package ManagerΛ࢖ͬͨํ๏

Slide 6

Slide 6 text

࢖͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name: "Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift

Slide 7

Slide 7 text

࢖͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name: "Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift OBNF͸ద౰

Slide 8

Slide 8 text

࢖͍ํ // swift-tools-version:5.1 import PackageDescription let package = Package( name: "Tools", dependencies: [ .package(url: "https://github.com/apple/swift-format", .branch("master")), .package(url: "https://github.com/yonaskolb/XcodeGen", from: "2.13.0"), .package(url: "https://github.com/mac-cain13/R.swift", .exact("5.1.0")), ] ) Package.swift EFQFOEFODJFTʹ࢖͏ πʔϧΛྻڍ

Slide 9

Slide 9 text

࢖͍ํ $ swift run -c release xcodegen ࣮ߦ

Slide 10

Slide 10 text

࢖͍ํ $ swift run -c release xcodegen ࣮ߦ ॳճ࣮ߦ͸Ϗϧυ͕૸ΔͷͰ஗͍͕ɺ ̎ճ໨Ҏ߱͸Ωϟογϡ͞ΕΔͷͰ଎͍

Slide 11

Slide 11 text

MintͷΑ͏ͳύοέʔδ؅ཧπʔϧͷΠϯ ετʔϧͳ͠Ͱ࢖͑Δ

Slide 12

Slide 12 text

طʹSwiftPM࢖ͬͯΔ৔߹ - Package.swiftͷdependenciesʹπʔϧྨ͸͍Εͨ͘ͳ͍ dependencies: [ .package(url: "https://github.com/kylef/PathKit.git", from: "1.0.0"), .package(url: "https://github.com/jakeheis/SwiftCLI.git", from: "5.0.0"), .package(url: "https://github.com/apple/swift-format", .branch("master")), ], πʔϧ͸ผʹ͍ͨ͠

Slide 13

Slide 13 text

طʹSwiftPM࢖ͬͯΔ৔߹ - πʔϧ༻ͷσΟϨΫτϦΛ࡞ͬͯͦ͜ʹπʔϧ༻ͷ Package.swiftΛஔ͘

Slide 14

Slide 14 text

طʹSwiftPM࢖ͬͯΔ৔߹ - πʔϧ༻ͷσΟϨΫτϦΛ࡞ͬͯͦ͜ʹπʔϧ༻ͷ Package.swiftΛஔ͘ - swift runͷpackage-pathͰͦͷσΟϨΫτϦΛࢦఆ $ swift run -c release --package-path Tools xcodegen 1BDLBHFTXJGUͷ͋Δ σΟϨΫτϦΛࢦఆ

Slide 15

Slide 15 text

Mintͱͷൺֱ

Slide 16

Slide 16 text

Ωϟογϡͷอଘઌ SwiftPackageManager: ./.buildҎԼʹอଘ Mint: /user/local/mintҎԼʹอଘ

Slide 17

Slide 17 text

ઃఆϑΝΠϧ SwiftPackageManager: Package.swift͕ඞਢ Mint: Mintfileͳ͠Ͱ΋࣮ߦͰ͖Δ $ mint run yonoskolb/[email protected] xcodegen

Slide 18

Slide 18 text

ৄ͘͠͸ͪ͜Β • Swift੡CLIπʔϧΛMintΛ࢖ΘͣSwiftPMͰ؅ཧ͢Δ - ίωώτ ։ൃऀϒϩά-

Slide 19

Slide 19 text

͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ