Slide 1

Slide 1 text

3Y4XJGUY3FBMN Ӊࠤݟެี 3FBMNNFFUVQ

Slide 2

Slide 2 text

ࣗݾ঺հ w Ӊࠤݟެี !VTBNJL  w େࡕ෎ࡖࢢࡏॅ w ϑΣϯϦϧגࣜձࣾ w ΞϓϦέʔγϣϯڞಉ։ൃ෦ w J04ΞϓϦΤϯδχΞ ΞυϨεόʔ͢ΒऔΓ෷ͬͨ ڀۃͷઌ୺తϒϥ΢β

Slide 3

Slide 3 text

ࠓ೔ͷ಺༰ w 3Y4XJGUͷ঺հ w 3Y4XJGUͱ3FBMNͱͷ࿈ܞ

Slide 4

Slide 4 text

3Y4XJGU

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

3FBDUJWF1SPHSBNNJOH w Πϕϯτ΍஋ͷؔ܎Λهड़ w ҰํͷมԽΛଞํʹ఻೻ w ϝοηʔδૹ৴ͷӅṭ w σʔλόΠϯσΟϯά͸3FBDUJWFͳ࢓૊ΈͷҰछ

Slide 7

Slide 7 text

'VODUJPOBM3FBDUJWF1SPHSBNNJOH w ඇಉظσʔλετϦʔϜ w ࣌ؒ࣠ʹԊͬͯ஋͕ྲྀΕΔϦετ w ετϦʔϜʹର͢ΔϦετૢ࡞ w map΍filterͱ͍ͬͨؔ਺ܕͷΠσΟΦϜ

Slide 8

Slide 8 text

31'31ͷར఺ w Πϕϯτۦಈॲཧ͕ॻ͖΍͍͢ w ඇಉظॲཧ͕ॻ͖΍͍͢ w ͕ͨͬͯ͠ɺ(6*ϓϩάϥϛϯάͱ૬ੑ͕Α͍

Slide 9

Slide 9 text

3FBDUJWF1SPHSBNNJOHGPSJ04 w 3FBDUJWF$PDPB w 3FBDU,JU w 3Y4XJGU w ͦΕͧΕʹྑ͕͋͞Δ

Slide 10

Slide 10 text

3FBDUJWF9ϑΝϛϦʔ w 3Y/&5 $  w 3Y+4 w 3Y+BWB w 3Y4XJGU w ɾɾɾͳͲ

Slide 11

Slide 11 text

3Y4XJGU w 4XJGUରԠ൛ w όʔδϣϯBMQIB w J04Ҏ߱ʢJ04Ҏ͕߱๬·͍͠ʣ w جຊతͳͱ͜Ζ͸े෼࢖͑Δঢ়ଶ w ࣮Ҋ݅Ͱ࠾༻த

Slide 12

Slide 12 text

3Y4XJGUͷ࣮ࡍ

Slide 13

Slide 13 text

3Y4XJGU3Y$PDPB w 3Y4XJGU w 0CTFSWBCMF֤छ0QFSBUPS4DIFEVMFSͳͲ w 3Y$PDPB w 6*,JU/463-4FTTJPO,70ͳͲ

Slide 14

Slide 14 text

0CTFSWBCMF w ඇಉظσʔλετϦʔϜΛ͋ΒΘ͢

Slide 15

Slide 15 text

ྫɿΠϕϯτॲཧ button.rx_tap .subscribeNext { _ in // ボタンがタップされたときの処理 } .addDisposableTo(disposeBag)

Slide 16

Slide 16 text

ྫɿඇಉظॲཧ URLSession.rx_response(request) .subscribeOn(sessionScheduler) .map { (data, response) in // バックグラウンド処理 } .observeOn(mainScheduler) .map { data in // UI処理 }

Slide 17

Slide 17 text

ྫɿετϦʔϜΛͭ͘Δɿ/463-3FTQPOTFͷ৔߹ func rx_response(request: NSURLRequest) -> Observable { return create { observer in // request を送信してレスポンスを受け取る if 失敗 { observer.on(.Error(error)) } else { observer.on(.Next(data, response)) observer.on(.Completed) } return AnonymousDisposable { /* キャンセル処理 */ } } }

Slide 18

Slide 18 text

ྫɿετϦʔϜΛͭ͘Δɿผͷखஈ let items = PublishSubject() // Observable // データを流す items.on(.Next(item)) // 終了 items.on(.Completed) // エラー終了 items.on(.Error(error))

Slide 19

Slide 19 text

ྫɿ࡞ͬͨετϦʔϜΛ࢖͏ items .filter { _ in // 不要なデータを捨てる } .subscribeNext { _ in // データに対する処理 } .addDisposableTo(disposeBag)

Slide 20

Slide 20 text

3Y4XJGUY3FBMN

Slide 21

Slide 21 text

3FBMNͷσʔλऔಘ w 3FBMNͷΫΤϦͰ΋͍͍͚Ͳɾɾɾ w 3YͰσʔλΛऔಘ͍ͨ͠ʢ0CTFSWBCMFͰѻ͍͍ͨʣ w %#ΞΫηεͱ3Yͷॲཧ͕ࠞࡏ͢Δͱ໽հ w εϨουΛ·͙ͨ৔߹ΛͲ͏͢Δʁ

Slide 22

Slide 22 text

3Y+BWBͷέʔεΛࢀߟʹ͢Δ

Slide 23

Slide 23 text

ϞσϧΫϥεΛ෼͚Δ w ͻͱͭͷର৅ʹରͯ͠ɺ;ͨͭͷϞσϧΫϥεΛͭ͘Δ w 3FBMNͷ0CKFDUܕͷϞσϧ w ඇ3FBMNͷϞσϧ w ৑௕Ͱ͋Δ͜ͱ͸൱ఆͰ͖ͳ͍ɾɾɾ w %#༻ͷϞσϧͱ7JFX༻ͷϞσϧɺͱࢥ͑͹ڐ༰ൣғ

Slide 24

Slide 24 text

஥հ໾Λͭ͘Δ w 3FBMN%BUB4FSWJDF w 3FBMNͷΫΤϦ͔Β3FTVMUTΛಘΔ w 3FBMNͷ3FTVMUT͔Β7JFX༻ͷϞσϧʹม׵ w 7JFX༻ͷϞσϧͷ0CTFSWBCMFΛग़ྗ

Slide 25

Slide 25 text

3FBMN΁ͷΞΫηε w 3FBMN0CTFSWBCMF w 3FBMN΁ͷΞΫηεॲཧΛҰՕॴʹ·ͱΊΔ w ʢલड़ͷ3FBMN%BUB4FSWJDFͰ௚઀3FBMNΞΫηε ͢Δ͜ͱ΋Մೳ͕ͩɺ൥ࡶʹͳΔʣ

Slide 26

Slide 26 text

࢖͍ํ RealmDataService.items .map { item in // モデルの処理 } .addDisposableTo(disposeBag)

Slide 27

Slide 27 text

3FBMN΁ͷॻ͖ࠐΈ w ಉ༷ͷ࿮૊ΈͰॻ͖ࠐΈʹ΋ରԠͰ͖Δ w 3FBMN%BUB4FSWJDFʹσʔλ࡞੒*'Λ௥Ճ w 3FBMN0CTFSWBCMFΛτϥϯβΫγϣϯʹରԠ

Slide 28

Slide 28 text

·ͱΊ

Slide 29

Slide 29 text

·ͱΊ w 3Y4XJGUͷ঺հ w 3Y4XJGUͷ࣮ࡍ w 3Y4XJGUͱ3FBMNͱͷ࿈ܞ w Ұ޻෉͍ΕΔͱΑ͍ w 3Yͱ3FBMNΛͪΌΜͱ෼͚ͯߟ͑Δͷ͕Α͍

Slide 30

Slide 30 text

No content