Slide 1

Slide 1 text

ϝλϓϩάϥϛϯά޲͚ ͷςϯϓϨʔτΤϯδϯ gysb Λ࡞ͬͨ omochimetaru @

Slide 2

Slide 2 text

Array ͱ ஥ؒͨͪ Array - startIndex, endIndex, subscript, _ArrayBuffer ArraySlice - startIndex, endIndex, subscript, _SliceBuffer ContiguousArray - startIndex, endIndex, subscript, _ContiguousArrayBuffer

Slide 3

Slide 3 text

gyb Generate Your Boilerplate

Slide 4

Slide 4 text

gyb Generate Your Boilerplate ࣮ߦ: %{ }% ࣮ߦ: % (ߦ຤) ࣜల։: ${ }

Slide 5

Slide 5 text

Arrays.swift.gyb apple/swift @ github

Slide 6

Slide 6 text

%{ arrayTypes = [ ('ContiguousArray', 'a `ContiguousArray` instance'), ('ArraySlice', 'an `ArraySlice` instance'), ('Array', 'an array'), ] }% % for (Self, a_Self) in arrayTypes: public struct ${Self} { %if Self == 'Array': internal typealias _Buffer = _ArrayBuffer %elif Self == 'ArraySlice': internal typealias _Buffer = _SliceBuffer %else: internal typealias _Buffer = _${Self.strip('_')}Buffer %end internal var _buffer: _Buffer } %end

Slide 7

Slide 7 text

public struct ContiguousArray { internal typealias _Buffer = _ContiguousBuffer internal var _buffer: _Buffer } public struct ArraySlice { internal typealias _Buffer = _SliceBuffer internal var _buffer: _Buffer } public struct Array { internal typealias _Buffer = _ArrayBuffer internal var _buffer: _Buffer }

Slide 8

Slide 8 text

gyb ͷྑ͘ͳ͍ͱ͜Ζ

Slide 9

Slide 9 text

gyb ͷྑ͘ͳ͍ͱ͜Ζ python Λॻ͘ͱ͜Ζ

Slide 10

Slide 10 text

gysb Generate Your Swifty Boilerplate

Slide 11

Slide 11 text

gysb Generate Your Swifty Boilerplate https://github.com/omochi/gysb ࣮ߦ: %{ }% ࣮ߦ: % (ߦ຤) ࣜల։: ${ }

Slide 12

Slide 12 text

Demo ࣮ࡍͷσϞͷͱ͖͸ɺ ҎԼͷιʔεΛ୊ࡐʹɺ --source-dirs, --parse, --compile Ϟʔυͷಈ࡞Λ঺հ͠ ͨɻ https://github.com/omochi/ReactiveEmitter/blob/master/ Sources/ReactiveEmitter/Operator/Combine.swift.gysb

Slide 13

Slide 13 text

gysb ͷ։ൃ gysb ͷಈ࡞ݪཧͦΕࣗମϝλϓϩάϥϛϯά͔ͩΒ Swift ͷϝλϓϩάϥϛϯά͢ΔͨΊʹ Swift ͷϝλϓϩάϥϛϯάΛߦ͏ Swift ϓϩάϥϜΛ࡞ͬͨ ! (͋ͱ Kotlin ΍ C++ ΋ੜ੒Ͱ͖ΔΑ)

Slide 14

Slide 14 text

(એ఻) Discord Offline Discord αʔό ios-developers-japan ΛϦΞϧͰ 12/4 ϝϧΧϦ ύωϧσΟεΧογϣϯܗࣜ https://connpass.com/event/71774/

Slide 15

Slide 15 text

Sourceryͱͷҧ͍ Sourcery ͸ ܕ৘ใऔಘ + ςϯϓϨʔτ(ෳ਺ݴޠ) gysb ͸ ςϯϓϨʔτ Sourcery ͷ swift ςϯϓϨʔτ͸ϥΠϒϥϦඇରԠ gysb ͸ gysb.json Ͱ SwiftPM ʹରԠ