Slide 1

Slide 1 text

ॳΊͯͷ
 λʔϛφϧϓϩάϥϜ forUSZ4XJGU5PLZP"GUFSUBMLT

Slide 2

Slide 2 text

var employedBy = "YUMEMI Inc." var job = "iOS Developer" var favoriteLanguage = "Swift" var twitter = "@lovee" var qiita = "lovee" var github = "el-hoshino" var additionalInfo = """ ΏΔΏΔΩϟϯϓ΋͘΋͘ձɺࢀՃऀืूத """ class Me: Developable, Talkable { }

Slide 3

Slide 3 text

༷ʑͳλʔϛφϧϓϩάϥϜ ▸ QJOH ▸ CSFX ▸ HJU ▸ LVSJ ▸ IBOBLP ▸ FSVUBTP 1kuri: https://github.com/bannzai/Kuri 2hanako: https://github.com/el-hoshino/hanako 3erutaso: https://github.com/sgymtic/sl

Slide 4

Slide 4 text

ࣗ෼΋࡞Ζ͏

Slide 5

Slide 5 text

·ͣ͸ੈքʹ
 ѫࡰ͠Α͏

Slide 6

Slide 6 text

9DPEF
 ʷ
 4XJGU

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

import Foundation print("Hello, World!")

Slide 9

Slide 9 text

import Foundation print("Hello, World!")

Slide 10

Slide 10 text

import Foundation print("Hello, World!")

Slide 11

Slide 11 text

$ cd {path/to/project/dir} $ xcodebuild $ cp build/Release/{app_name} /usr/local/bin $ {app_name} hello, world! 今回は簡単なプログラムなので
 Xcode 使わずに `swiftc` で
 ビルドしてもいいけど
 まあいいや

Slide 12

Slide 12 text

Ͷɺ؆୯Ͱ ͠ΐʁ

Slide 13

Slide 13 text

$ cd {path/to/project/dir} $ xcodebuild $ cp build/Release/{app_name} /usr/local/bin $ {app_name} hello, world! コマンド引数って
 どうやって取るんだろ

Slide 14

Slide 14 text

import Foundation CommandLine.arguments: [String]

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

import Foundation let candidates = Array(CommandLine.arguments.dropFirst()) var outputs: [String] = [] output: while let random = candidates.random { print(random) outputs.append(random) outputs.keepLast(candidates.count) if outputs == candidates { print(outputs.joined(separator: " ") .appending("!")) break output } }

Slide 17

Slide 17 text

import Foundation extension Array { var random: Element? { guard self.isEmpty == false else { return nil } let randomIndex = arc4random_uniform(UInt32(self.count)) return self[Int(randomIndex)] } mutating func keepLast(_ n: Int = 1) { guard self.count > n else { return } let removingElementsCount = self.count - n self.removeFirst(removingElementsCount) } }

Slide 18

Slide 18 text

%&.0