Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ReactiveCococaͷMVVMͰ៉ ྷͳίʔυ͕Ͱ͖Δͷ͔ @tomohisa Tomohisa Takaoka 2014/6/27
Slide 2
Slide 2 text
No content
Slide 3
Slide 3 text
डୗ։ൃ ʴ ΤϯλʔϓϥΠζ J-Tech Creations, Inc www.jtechs.com follow me @tomohisa
Slide 4
Slide 4 text
ຊͷεϖγϟϧίϯςϯπ Twitter @tomohisa ͔ΒͲ͏ͧ follow me @tomohisa
Slide 5
Slide 5 text
iOSΞϓϦͷ։ൃख๏ MVCύλʔϯ
Slide 6
Slide 6 text
•View - xib, Storyboard •Controller - UIViewController •Model (ಠࣗʹ࡞͢Δ) https://developer.apple.com/jp/devcenter/ios/library/japanese.html ͜ͷυΩϡϝϯτ͕ྑ͍ײ͡ͰMVCΛઆ໌͍ͯ͠·͢
Slide 7
Slide 7 text
ViewController͕େ͖͘ͳΓ͗͢Δʂ ※OSXʹɺCocoaόΠϯσΟϯάͱ͍͏ ViewͱσʔλΛ݁߹ͤ͞Δػೳ͕͋Δ͕ɺ iOSʹଘࡏ͠ͳ͍
Slide 8
Slide 8 text
ࣾ༻ͷλΠϜγʔτཧΞϓϦ
Slide 9
Slide 9 text
Background : parse.com ϢʔβʔཧͳͲͬͯ͘ΕΔ
Slide 10
Slide 10 text
ViewControllerʹσʔλऔಘͷίʔυ͕ͪ͝Ό·ͥ vVC (ංେԽͨ͠Ϗϡʔίϯτϩʔϥʔ)ʹͳͬͯ͠·ͬͨ
Slide 11
Slide 11 text
ReactiveCocoa Λͬͯ MVVM ʹॻ͖͑Δ
Slide 12
Slide 12 text
ReactiveCocoaͱʁ Function Reactive Programming (FRP) ΛObjective-CͰ࣮ݱ͢ΔͨΊͷϑϨʔϜϫʔΫ https://github.com/ReactiveCocoa/ReactiveCocoa
Slide 13
Slide 13 text
http://maoe.hatenadiary.jp/entry/20100109/1263059731
Slide 14
Slide 14 text
MVVMͱ http://www.teehanlax.com/blog/model-view-viewmodel-for-ios/
Slide 15
Slide 15 text
MVC MVVM ViewControllerɺେ͖ͳҙຯͰͷ VʹؚΉ
Slide 16
Slide 16 text
M V VM Model ViewController + IB ViewModel
Slide 17
Slide 17 text
M V VM Model 1.
Slide 18
Slide 18 text
Ϟσϧͷํ๏ View, ViewModel͔Β͢Δ
Slide 19
Slide 19 text
Ϟσϧͷํ๏̍ σʔλ(JSONͳͲͰදݱ͞ΕΔΦϒδΣΫτ) ֤σʔλΛද͢ΫϥεΛ࡞Δ JSON, XML, ParseObject ͳͲͷ DictionaryΞΫηεΛແ͘͢ ͪΌΜͱܕΛ࡞Δ σʔλʹ༝དྷ͢ΔϩδοΫ͜͜ʹॻ͘ ʢྫ͑̎ͷڑΛٻΊͨΓɺΦϒδΣΫτͰܭࢉ͠ ͨΓ͢Δ͍͋ʣ
Slide 20
Slide 20 text
worktime[“startedTime”] = [NSDate date]; worktime.startedTime = [NSDate date]; × ○
Slide 21
Slide 21 text
Ϟσϧͷํ๏̎ σʔλͷಡΈॻ͖ͳͲڞ௨Ͱ͑Δػೳ (Downloader, Uploader, Calculator, Aggregator) ! σʔλͷશମ͔ΒΞϓϦͰूܭ͍ͨ͠ͳͲ μϯϩʔυ͢ΔػೳͳͲ ※parse sdkʹඞཁͳػೳ͕͋ͬͨͷͰࠓճ࡞ͤͣ
Slide 22
Slide 22 text
Ϟσϧͷํ๏̏ ΞϓϦʹ݁߹͢Δͷ (ઃఆϑΝΠϧɺConstͳͲ) AppDelegateʹmodelϑΝΠϧΛ࣋ͨͤΔ AppDelegateʹͪ͝Όͪ͝Ό͔͔ͳ͍ʂ ΞϓϦͱͯ͠อ͍࣋ͯ͠Δσʔλ
Slide 23
Slide 23 text
͏ͱ͖ એݴ ΞϓϦʹ݁߹͢ΔmodelΛ࡞͢Δ
Slide 24
Slide 24 text
M V VM View Model 2.
Slide 25
Slide 25 text
https://github.com/ReactiveCocoa/ReactiveViewModel
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
RACCommand: ଞͷΦϒδΣΫτ͔Β࣮ߦग़དྷΔɻ ඇಉظॲཧͷ௨Λड͚Δ͜ͱՄೳ RACSignal: ௨ͷγάφϧΛड͚Δ͜ͱ͕Ͱ͖Δ KVOͰड͚औͬͨΒΓɺ௨ͷޙʹ͞Β ʹ࣍ͷ࡞ۀΛఆٛ͢Δ͜ͱՄೳ
Slide 28
Slide 28 text
M V VM View and ViewController 3.
Slide 29
Slide 29 text
ViewModelΛ࡞ͯ͠ɺViewModelͱViewΛόΠϯυ͢Δ
Slide 30
Slide 30 text
ϘλϯԡԼͷΠϕϯτΛViewModel ͷRACCommandͱؔ࿈͚Δ
Slide 31
Slide 31 text
ςΩετೖྗ࣌ʹViewModelͷσʔλΛߋ৽ ViewModelͰNoteͷߋ৽Λࢹ͠ɺߋ৽Λֻ͚Δ
Slide 32
Slide 32 text
ྑ͔ͬͨ •ViewModelʹUIίʔυ͕ͳ͍ͨΊɺUnitTest͕Մೳ •ViewModelʹStatusͳͲΛ࣋ͨͤɺදࣔΛௐ͢Δͷ͕ ༰қͦ͏ •ͦΕͧΕͷίʔυ͕͍ͯ͠ΔͷͰ͔Γ͍͢ •σʔλͷνΣοΫͳͲΛΈࠐΊΔ •εϨουͷཧͳͲ͕ߦΘΕ͍ͯΔͨΊɺόοΫάϥ ϯυͰUI͕มߋ͞ΕΔͳͲͷ͕͋·Γग़ͳͦ͞ ͏
Slide 33
Slide 33 text
Cons - ѱ͍ •ΊΜͲ͍͘͞ •Θ͔Γʹ͍͘ •ObjCͷػೳΛશ໘తʹ͍ͬͯΔͷͰɺSwift͚ͩͰͲ Ε͚ͩग़དྷΔͷ͔ʁ •ReactiveCocoaΛೖΕΔͱϓϩδΣΫτ͕ॏ͘ͳΔϏϧ υʹͨΒ͕͔͔࣌ؒΔ •ॳΊ͚ͯͩͲ·͔ͩΒͳ͍ڍಈ͕͋Δ ɹʢ͔Δਓ͍ͨΒڭ͍͑ͯͩ͘͞ʣ
Slide 34
Slide 34 text
૯ׅɿ େنʹͳΕɺྑ͍ͷ͕ͭ͘Εͦ͏ɻ डୗ͕͍࣌͠ʹϓϩδΣΫτΛखͬ ͯͩ͘͞ΔϑϦʔϥϯε͞Μืूதʂ