Slide 1

Slide 1 text

4XJGU Ͱ )551௨৴ͷελϒԽ !IFEKJSPH

Slide 2

Slide 2 text

ͳ͕͠·͡Ζ͏ !IFEKJSPH 4BOTBOגࣜձࣾ&JHIU

Slide 3

Slide 3 text

)551௨৴ͷελϒԽ

Slide 4

Slide 4 text

/-5)5514UVC4FSWFS ैདྷख๏ 0))5514UVCT FUD…

Slide 5

Slide 5 text

ΞϓϦ಺෦ͷαʔόʔ ैདྷख๏ /463-1SPUPDPMʹ४ڌͨ͠Ϋϥε .FUIPE4XJ[[MJOH

Slide 6

Slide 6 text

ʷΞϓϦ಺෦ͷαʔόʔ ैདྷख๏ ʷ/463-1SPUPDPMʹ४ڌͨ͠Ϋϥε ʷ.FUIPE4XJ[[MJOH

Slide 7

Slide 7 text

.PZB

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

.PZB w ωοτϫʔΫपΓͷந৅ԽϨΠϠʔ w ςετ༻ͷελϒ΋ѻ͑Δ

Slide 11

Slide 11 text

Πϝʔδ͸͜Μͳײ͡ IUUQEFWFMPQFSIBUFOBTUBGGDPNFOUSZTNBSUBQJDMJFOUXJUITXJGU VTJOHFOVNBOEHFOFSJDT

Slide 12

Slide 12 text

IFEKJSPH2JJUB'FFE

Slide 13

Slide 13 text

"1*ͷهड़

Slide 14

Slide 14 text

enum QiitaAPI { case Items case TagItems(String) } FOVNఆٛ

Slide 15

Slide 15 text

extension QiitaAPI : MoyaPath { var path: String { switch self { case .Items: return "/api/v2/items" case .TagItems(let tagID): return "/api/v2/tags/\(tagID)/items" } } } ύεࢦఆ

Slide 16

Slide 16 text

extension QiitaAPI : MoyaTarget { var baseURL: NSURL { return NSURL(string: "https://qiita.com")! } var sampleData: NSData { switch self { case .Items, .TagItems: return stubbedResponse("Items") } } } B63-ࢦఆ

Slide 17

Slide 17 text

extension QiitaAPI : MoyaTarget { var baseURL: NSURL { return NSURL(string: "https://qiita.com")! } var sampleData: NSData { switch self { case .Items, .TagItems: return stubbedResponse("Items") } } } CελϒԽͨ͠ϨεϙϯεΛࢦఆ

Slide 18

Slide 18 text

ϓϩόΠμͷ੾Γସ͑

Slide 19

Slide 19 text

static func DefaultProvider() -> ReactiveMoyaProvider { return ReactiveMoyaProvider(endpointsClosure: endpointsClosure) } static func StubbingProvider() -> ReactiveMoyaProvider { return ReactiveMoyaProvider(endpointsClosure: endpointsClosure, stubResponses: true) } ϓϩόΠμఆٛ

Slide 20

Slide 20 text

QiitaProvider.sharedProvider = QiitaProvider.StubbingProvider() ੾Γସ͑

Slide 21

Slide 21 text

IUUQTHJUIVCDPNBSUTZFJEPMPO ࢀߟ IUUQTHJUIVCDPN"TI'VSSPX.PZB σϞ IUUQTHJUIVCDPNIFEKJSPH2JJUB'FFE