swift on docker

22
Swift on Docker 2016/07/10() .swift

Upload: sinsoku-listy

Post on 16-Apr-2017

680 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Swift on Docker

Swift on Docker2016/07/10(月)   .swift

Page 2: Swift on Docker

自己紹介

● HN: 神速● twitter: @sinsoku_listy● github: sinsoku● 所属: 株式会社grooves● 言語: Ruby, Node.js, Swift

Page 3: Swift on Docker

株式会社grooves でのお仕事

Page 4: Swift on Docker
Page 5: Swift on Docker

_人人人人人人人人人人人人人人人人_

> Webアプリケーションエンジニア <

 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

Page 6: Swift on Docker

● Swift on Docker の始め方● Docker の利点● Docker の欠点● まとめ

そんな私が Swift を勉強してみた

Page 7: Swift on Docker

Swift on Docker の始め方

$ docker pull swiftdocker/swift$ docker run --privileged -it swiftdocker/swift swiftWelcome to Swift version 3.0-dev (LLVM ...1>

Docker 環境を構築済みなら、たった2コマンドで 3.0-dev 環境が手に入る!

Page 8: Swift on Docker

3.0-dev でも大丈夫だよ。たぶん。

Page 9: Swift on Docker

実際に触ってみた

$ mkdir FizzBuzz$ docker run -v $(pwd):/app -w /app swiftdocker/swift \ swift package init -C FizzBuzzCreating library package: FizzBuzzCreating Package.swift...

Page 10: Swift on Docker

ラッパースクリプト

#!/bin/shdocker run -v $(pwd):/app -w /app swiftdocker/swift swift $*

$ bin/swift package

bin/swift

↑のようなラッパースクリプトを用意すると便利

Page 11: Swift on Docker

Sources/FizzBuzz.swift

struct FizzBuzz {

var text = "Hello, World!"}

Page 12: Swift on Docker

Tests/FizzBuzz/FizzBuzzTests.swiftimport XCTest@testable import FizzBuzz

class FizzBuzzTests: XCTestCase { func testExample() { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. XCTAssertEqual(FizzBuzz().text, "Hello, World!") }

static var allTests : [(String, (FizzBuzzTests) -> () throws -> Void)] { return [ ("testExample", testExample), ] }}

Page 13: Swift on Docker

ビルド

$ bin/swift buildCompile Swift Module 'FizzBuzz' (1 sources)

Page 14: Swift on Docker

テスト

$ bin/swift testCompile Swift Module 'FizzBuzz' (1 sources)Compile Swift Module 'FizzBuzzTestSuite' (1 sources)Linking .build/debug/FizzBuzzTests.xctestTest Suite 'All tests' started at 03:46:10.970Test Suite 'debug.xctest' started at 03:46:10.972Test Suite 'FizzBuzzTests' started at 03:46:10.972Test Case 'FizzBuzzTests.testExample' started at 03:46:10.972Test Case 'FizzBuzzTests.testExample' passed (0.0 seconds).Test Suite 'FizzBuzzTests' passed at 03:46:10.973

Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) secondsTest Suite 'debug.xctest' passed at 03:46:10.973

Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) secondsTest Suite 'All tests' passed at 03:46:10.974

Executed 1 test, with 0 failures (0 unexpected) in 0.0 (0.0) seconds

Page 15: Swift on Docker

Docker の利点

● 環境構築が楽● 重い XCode を立ちあげなくて済む

○ vim が使える!● CI 環境の構築が楽

○ TravisCI, CIrcleCI, wercker など

Page 16: Swift on Docker

Docker の欠点

● ライブラリがほぼ使えない○ swift-package の mixedSources Error○ XCode に依存してる OSS は無理

● Web上の記事が役に立たない○ 3.0-dev の情報が少ない○ swift-package の情報がない○ XCode の情報ばかり

Page 18: Swift on Docker

Docker の欠点

● ライブラリがほぼ使えない○ swift-package の mixedSources Error○ XCode に依存してる OSS は無理

● Web上の記事が役に立たない○ 3.0-dev の情報が少ない○ swift-package の情報がない○ XCode の情報ばかり

Page 19: Swift on Docker
Page 20: Swift on Docker

まとめ

● おすすめできる人○ Swift 3.0-dev を手軽に試したい人○ Linux 対応のパッチを作る人

● それ以外の人にはおすすめできない

もう少し Linux 対応が進めば、使いやすくなるかも

Page 21: Swift on Docker

おまけ

勉強していた内容は GitHub で公開しているので、Swift on Dockerを試したい奇特な人は参考にどうぞ。

https://github.com/sinsoku/study

Page 22: Swift on Docker

ご清聴ありがとうございました