Slide 1

Slide 1 text

Copyright (C) DeNA Co.,Ltd. All Rights Reserved. try! Swift Tokyo 2018 After Talks Day 1 2018/03/08 (Thu) 
 ࡉপ ༞հ@DeNA ࠓ೔͔Β࢝ΊΔ 4XJGU1BDLBHF.BOBHFS Ͱ࡞Δ$-*πʔϧ 1

Slide 2

Slide 2 text

˙:VTVLF)PTPOVNBʢ!UPCJʣ • ॴଐ ⁃ %F/"ɹ48&5άϧʔϓɹςετج൫νʔϜ • 'BWPSJUF ⁃ • ۙگ ⁃ USZ4XJGUָ͔ͬͨ͠ʂ ⁃ ελοϑɾεϐʔΧʔɾϘϥϯςΟΞͷํʹײँʂ ⁃ 'MVUUFSʹظ଴ 8IP Copyright (C) DeNA Co.,Ltd. All Rights Reserved. 2

Slide 3

Slide 3 text

YDPEFPQFO ͱ͍͏πʔϧΛ࡞ͬͨ 3 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. λʔϛφϧ͔Β9DPEFΛ։͘

Slide 4

Slide 4 text

xcode-open 4 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • ػೳ • ϫʔΫεϖʔε༏ઌ • 9DPEFόʔδϣϯͷࢦఆɾϩοΫ • ଞ • )PNFCSFXʢUBQʣͰ഑෍ • 5SBWJT$* • 9$5FTU IUUQTHJUIVCDPN:VTVLF)PTPOVNBYDPEFPQFO ཉ͔ͬͨ͠ͷͰ࡞ͬͨ

Slide 5

Slide 5 text

4XJGU1BDLBHF.BOBHFS ʹ͍ͭͯ ֶΜͩ͜ͱΛγΣΞ͢ΔΑʂ 5 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 6

Slide 6 text

ΞδΣϯμ 6 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • 4XJGU1BDLBHF.BOBHFSͷ͓͞Β͍ • ಋೖɾ։ൃ • ϥΠϒϥϦ • ഑෍ • ϋϚϦϙΠϯτ • ·ͱΊ

Slide 7

Slide 7 text

4XJGU1BDLBHF.BOBHFS 7 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 8

Slide 8 text

Swift Package Manager 8 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • 4XJGUඪ४ͷύοέʔδϚωʔδϟ • 4XJGUͰॻ͔Ε͍ͯΔ • )PNFCSFXͷ։ൃऀ͕ܞΘͬͯΔʢΒ͍͠ʣ • ϥΠϒϥϦ΍࣮ߦόΠφϦΛ࡞ΕΔ • 9DPEFϓϩδΣΫτΛੜ੒Ͱ͖Δ

Slide 9

Slide 9 text

ͳͥ4XJGU1.Ͱ࡞ͬͨʁ 9 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 10

Slide 10 text

ͳͥ SwiftPM Ͱ࡞ͬͨʁ 10 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • ͳΜͱͳ͘ • ݱঢ়ͷ4XJGU1.ͷ࣮ྗΛݟ͔ͨͬͨ • 6*,JUʹࢧ഑͞Εͳ͍ੈքΛݟ͔ͨͬͨ • 4XJGUͷϦϋϏϦ • ଞͷબ୒ࢶ • 3VCZ1ZUIPO,PUMJO(Pଞ • ΠϯλϓϦλܥ͸ىಈ͕एׯ஗͍ʢؾ͕͢Δʣ • (P͸ྑͦ͞͏ͳؾ͕͢Δ͚Ͳະܦݧ

Slide 11

Slide 11 text

࡞Γ࢝ΊΔ 11 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 12

Slide 12 text

ॳظԽ 12 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $ swift package init --type executable . !"" Package.swift !"" README.md !"" Sources # $"" awesome_cli # $"" main.swift $"" Tests λʔήοτɾґଘఆٛ ΤϯτϦϙΠϯτ ࣮ߦܗࣜͰॳظԽ

Slide 13

Slide 13 text

Package.swift 13 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. import PackageDescription let package = Package( name: “awesome_cli", dependencies: [ .package( url: "https://github.com/kareman/SwiftShell.git", from: "3.0.1"), ], targets: [ .target( name: “awesome_cli", dependencies: ["SwiftShell"]), ] ) ґଘϥΠϒϥϦΛ഑ྻͰఆٛ λʔήοτΛ഑ྻͰఆٛ λʔήοτ͕ར༻͢ΔґଘΛ഑ྻͰఆٛ 4XJGUͷίʔυͰॻ͘

Slide 14

Slide 14 text

ґଘؔ܎ͷߋ৽ 14 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $ swift package update Fetching https://github.com/kareman/SwiftShell.git Cloning https://github.com/kareman/SwiftShell.git Resolving https://github.com/kareman/ SwiftShell.git at 3.0.1 $ tree -a . ├── .build │ ├── checkouts │ │ └── SwiftShell.git—7315839884107259463 … │ ├── dependencies-state.json │ └── repositories │ ├── SwiftShell.git--7315839884107259463 ґଘؔ܎͕%-ɾ$IFDLPVU͞ΕΔ

Slide 15

Slide 15 text

Ϗϧυɾ࣮ߦ 15 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $ swift build … Linking ./.build/x86_64-apple-macosx10.10/debug/ awesome_cli $ .build/debug/awesome_cli Hello, world! &YFDVUBCMFͳόΠφϦ͕ग़ྗ͞Ε͍ͯΔ ͷͰɺͦͷ··࣮ߦͰ͖Δ

Slide 16

Slide 16 text

Xcode Project ੜ੒ 16 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $ swift package generate-xcodeproj generated: ./awesome_cli.xcodeproj εΩʔϜΛબΜͰ࣮ߦ ίϯιʔϧʹग़ྗ͞Εͨʂ

Slide 17

Slide 17 text

XcodeͰ࣮ߦɾσόοά 17 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ೚ҙͷҾ਺Λ௥ՃͰ͖Δ ϒϨʔΫϙΠϯτ΋࢖͑Δ

Slide 18

Slide 18 text

ίϚϯυͷ੔ཧ 18 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. આ໌ ίϚϯυ ॳظԽ swift package init —type executable ґଘؔ܎ͷߋ৽ swift package update Ϗϧυ swift build ࣮ߦ .build/debug/awesome_cli ςετ swift test Xcodeੜ੒ swift package generate-xcodeproj

Slide 19

Slide 19 text

ίϚϯυͷ੔ཧ 19 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. આ໌ ίϚϯυ ॳظԽ swift package init —type executable ґଘؔ܎ͷߋ৽ swift package update Ϗϧυ swift build ࣮ߦ .build/debug/awesome_cli ςετ swift test Xcodeੜ੒ swift package generate-xcodeproj ͳΜ͔ͩίϚϯυଟͯ͘໘౗ʜ

Slide 20

Slide 20 text

.BLFpMF 20 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 21

Slide 21 text

Makefile 21 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. EXE=awesome_cli init: swift package init --type executable update: swift package update build: swift build test: swift test debug: .build/debug/$(EXE) run: build debug xcode: swift package generate-xcodeproj

Slide 22

Slide 22 text

Makefile 22 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Make Default make init swift package init —type executable make update swift package update make build swift build make test swift test make debug .build/debug/awesome_cli make xcode swift package generate-xcodeproj make run swift build && .build/debug/awesome_cli γϯϓϧͳίϚϯυʹͳͬͨʂ

Slide 23

Slide 23 text

ར༻ͨ͠ϥΠϒϥϦ 23 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 24

Slide 24 text

ར༻ͨ͠ϥΠϒϥϦ 24 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. Library આ໌ kylef/ Commander ίϚϯυϥΠϯҾ਺ύʔαʢλΠϓηʔϑʣ kareman/ SwiftShell ShellΛݺͼग़ͤΔ JohnSundell/ Files ϑΝΠϧૢ࡞Λߦ͑Δ (JU)VCͰ୳͢ͱ݁ߏ͍Ζ͍Ζ͋Δʂ

Slide 25

Slide 25 text

഑෍ 25 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. ࠓճ͸ׂѪN @@ N

Slide 26

Slide 26 text

ϋϚϦϙΠϯτʁ 26 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 27

Slide 27 text

ᶃ Xcode Project ͕ແ͘ͳͬͨ 27 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • HJUJHOPSFʹॻ͔ΕͯΔͷͰίϛοτ͞Εͳ͍ • ϑΝΠϧπϦʔ͔Β9DPEFΛੜ੒͢Δ࢓༷ 9DPEF1SPKFDUΛ࠶ੜ੒͢Δʂ

Slide 28

Slide 28 text

ᶄ Xcode ͷ༷ࢠ͕͓͔͍͠ 28 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • 9DPEF1SPKFDUΛ࠶ੜ੒ͯ͠ΈΔ • CVJMEΛ࡟আͯ͠ΈΔ • ͦΕͰ΋มͳΤϥʔ͕ग़Δ͜ͱ΋͋Δ • Τϥʔͩͱݴ͍ͭͭϏϧυ੒ޭ͢Δ࣌΋͋Δ ίϚϯυϥΠϯΛ৴༻͢Δʂ

Slide 29

Slide 29 text

·ͱΊ 29 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 30

Slide 30 text

·ͱΊ 30 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. • 4XJGU1.͸ͦΕͳΓʹྑ͘ग़དྷͯΔ w w w w w • 9DPEFͰ։ൃɾσόοάʢগ͠ෆ҆ఆʁʣ • .BLFpMFΛ࡞Δͱศར • ഑෍ํ๏΋͍Ζ͍Ζ • J04Ҏ֎Ͱͷ4XJGU • ษڧʹͳΔʢͱࢥ͏ʣ • 1VSF4XJGUͳָ͠͞

Slide 31

Slide 31 text

0OFNPSFUIJOHʜ 31 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

Slide 32

Slide 32 text

32 Copyright (C) DeNA Co.,Ltd. All Rights Reserved. $ spm-boot your-app-name spm-boot ίϚϯυͰ.BLFpMF·Ͱੜ੒ IUUQTHJUIVCDPN:VTVLF)PTPOVNB41.#PPU

Slide 33

Slide 33 text

.PSFUSZ4XJGU 33 Copyright (C) DeNA Co.,Ltd. All Rights Reserved.