×
Copy
Open
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
Xamarin.iOS ! Ӊࠤݟ ެี
Slide 2
Slide 2 text
ࣗݾհ • Ӊࠤݟ ެีʢtwitter: @usamik26ʣ • ϑΣϯϦϧגࣜձࣾ ڞಉ։ൃ෦ • CotEditor ։ൃʢOS X ςΩετΤσΟλʣ
Slide 3
Slide 3 text
࠷ۙͷࣄ • ීஈ Objective-C Ͱ iOS ΞϓϦ։ൃ • ࠷ۙ Xamarin + MvvmCross ͡Ί·ͨ͠
Slide 4
Slide 4 text
Agenda ɾXamarin ͱԿ͔ ɾC# Λ͏ ɾXamarin Studio ɾMVVM ͱ ɾMvvmCross ɾXamarin ϥΠηϯε
Slide 5
Slide 5 text
Xamarin ͱԿ͔
Slide 6
Slide 6 text
Xamarin ͱԿ͔ • C# ͰΞϓϦ։ൃ • iOS / Android / Mac • .NET / Mono ϕʔε • MonoTouch / MonoDroid / MonoMac
Slide 7
Slide 7 text
Xamarin.iOS • ωΠςΟϒΞϓϦͱͯ͠ίϯύΠϧ • ैͬͯɺApp Store ਃ͕Մೳ
Slide 8
Slide 8 text
Xamarin.iOS • MonoTouch ܦ༝Ͱશ iOS API ʹΞΫηεՄೳ • ࠷৽ SDK ͷਵૣ͍ʢطʹ iOS 8 ରԠʣ • ໋໊ C# ͷྲّྀʹ͋Θͤͯ͋Δ
Slide 9
Slide 9 text
όΠϯσΟϯάྫ [UIImage imageNamed:@“hoge”] (Objective-C) ! UIImage.FromBundle(“hoge”) (C#) [MonoTouch.Foundation.Export("imageNamed:")] public static UIImage FromBundle (string name)
Slide 10
Slide 10 text
طଘίʔυͷར༻ • Objective-C Ͱॻ͔ΕͨίʔυΛར༻Մೳ • ωΠςΟϒόΠϯσΟϯάΛࣗͰੜ
Slide 11
Slide 11 text
Xamarin ղઆ
Slide 12
Slide 12 text
Xamarin ։ൃ࣮
Slide 13
Slide 13 text
C# Λ͏
Slide 14
Slide 14 text
C# • Objective-C Swift ͷΘΓʹ C# Λ͏ • C# ݻ༗ͷจ๏͕͑Δ
Slide 15
Slide 15 text
ܕਪ var x = 1; // x int ! var obj = new Hoge(); // obj Hoge ΦϒδΣΫτ
Slide 16
Slide 16 text
ϥϜμࣜ // Ұ൪؆ܿͳه๏ʢܕਪʣ x => x > 0 ! // ܕ return Λলུ͠ͳ͍ه๏ (int x) => { return x > 0; } ! // ௨ৗͷؔͰॻ͍ͨ߹ bool Hoge(int x) { return x > 0; }
Slide 17
Slide 17 text
LINQ ! ʢΫΤϦʣ var list1 = list.Where(x => x > 0); ! var list2 = list.Where(x => x > 0) .Select(x => x.Name);
Slide 18
Slide 18 text
async / await ! ʢඇಉظॲཧʣ async void Hoge() { Work1(); // ී௨ʹݺΕΔ var result = await WorkAsync(); // ผεϨου Work2(); // WorkAsync ͷޙͰݺΕΔ }
Slide 19
Slide 19 text
Xamarin Studio
Slide 20
Slide 20 text
։ൃڥ • Xamarin StudioʢҎલ MonoDevelopʣ • Storyboard ͷฤू Xamarin Studio ͰՄೳ • xib ͷฤू Xcode Λىಈͯ͠࿈ಈ
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Storyboard
Slide 23
Slide 23 text
AutoLayout
Slide 24
Slide 24 text
NuGet • NuGet Ͱ֤छϥΠϒϥϦΛಋೖͰ͖Δ • ޙड़ͷ MvvmCross NuGet Ͱ
Slide 25
Slide 25 text
MVVM ͱ
Slide 26
Slide 26 text
MVVM • Model - View - ViewModel
Slide 27
Slide 27 text
ϩδοΫͱϏϡʔͷ • ϩδοΫ෦ϓϥοτϑΥʔϜඇґଘ
Slide 28
Slide 28 text
ϏϡʔϓϥοτϑΥʔϜ͝ͱ • ֤ϓϥοτϑΥʔϜͷੈք؍Λେࣄʹ͢Δ
Slide 29
Slide 29 text
MVVM Λ͏ʹ • C# / .NET จԽݍͰ͔ͭͪΘΕ͖ͯͨ • ͜ͷͨΊɺXamarin ͱ MVVM ૬ੑ͕Α͍ • ༨ஊɿObjective-C or Swift ͰΔͳΒ ReactiveCocoa Λ͏ͷ͕ྑ͍
Slide 30
Slide 30 text
MvvmCross
Slide 31
Slide 31 text
MvvmCross • Xamarin Ͱ MVVM ઃܭΛαϙʔτ͢ΔϥΠϒ ϥϦͷ̍ͭ • https://github.com/MvvmCross/MvvmCross
Slide 32
Slide 32 text
ϓϩδΣΫτߏ • Core • Touch (iOS) • Droid (Android)
Slide 33
Slide 33 text
ϓϩδΣΫτߏ • Core Project • ϓϥοτϑΥʔϜݻ༗ͷػೳ͑ͳ͍ • Touch / Droid Project • ϓϥοτϑΥʔϜݻ༗ͷػೳ͕͑Δ • ͰɺView ʹϩδοΫΛॻ͔ͳ͍
Slide 34
Slide 34 text
ϓϥοτϑΥʔϜґଘͷػೳ • ϓϥοτϑΥʔϜґଘͷػೳΛ͍͍ͨ • ͨͱ͑Χϝϥͱ͔ • ϓϥάΠϯΛ࡞Δ͜ͱͰղܾ
Slide 35
Slide 35 text
View ͷ࡞ • MVVM ͷ View = UIViewController • View ͷίʔυ࠷খݶʹ͓͑͞Δ • ը໘ϩδοΫ ViewModel • xib + AutoLayout Λ׆༻ • ʢݱঢ় MvvmCross Storyboard ඇରԠʣ
Slide 36
Slide 36 text
ը໘ભҠ • ը໘ભҠͷཧ ViewModel ʹهड़ • ΞχϝʔγϣϯॲཧͳͲ View ʹهड़ • Storyboard ͷ Segue ͱ૬ੑѱ͍ɾɾɾ
Slide 37
Slide 37 text
όΠϯσΟϯά • View ͱ ViewModel ͷόΠϯσΟϯάهड़ • ͜ΕίʔυͰॻ͔͘͠ͳ͍ʢiOS ͷ߹ʣ
Slide 38
Slide 38 text
όΠϯσΟϯά var set = this.CreateBindingSet(); set.Bind(HogeLabel).To(vm => vm.HogeText); set Bind(HogeButton).To(vm => vm.HogeCommand); set.Apply();
Slide 39
Slide 39 text
ͦͷଞ • MvvmCross όΠϯσΟϯάΛָʹ͢ΔΫϥ εΛ͍͔ͭ͘༻ҙ͍ͯ͠Δ • MvxImageView • MvxTableViewSource • ͳͲ
Slide 40
Slide 40 text
Xamarin ϥΠηϯε
Slide 41
Slide 41 text
Xamarin ϥΠηϯε • ϥΠηϯεߴ͍ɾɾɾ • 1ϲ݄ͷ Trial ͋Γ
Slide 42
Slide 42 text
͓Βͤ
Slide 43
Slide 43 text
ΤϯδχΞืूத
Slide 44
Slide 44 text
No content
Slide 45
Slide 45 text
Xamarin ʹڵຯ͕͋Δਓ ͥͻͲ͏ͧ