Slide 1

Slide 1 text

Realm Xamarin USAMI Kosuke Fenrir Inc.

Slide 2

Slide 2 text

Xamarin

Slide 3

Slide 3 text

Xamarin » C# Ͱ iOS / Android ωΠςΟϒΞϓϦ։ൃ » iOS / Android ͰίʔυΛڞ༗Մೳ » .NET ϥΠϒϥϦ / ωΠςΟϒϥΠϒϥϦΛ࢖༻Մೳ

Slide 4

Slide 4 text

ݸਓ։ൃϥΠηϯεແঈԽ » Xamarin ϥΠηϯε͕ Visual Studio ϥΠηϯεͱ౷߹ » ݸਓ։ൃϥΠηϯε͕ແঈʹʢCommunity Editionʣ

Slide 5

Slide 5 text

http://www.fenrir-inc.com/jp/business/app/xamarin/

Slide 6

Slide 6 text

Xamarin Consulting Partner

Slide 7

Slide 7 text

Realm

Slide 8

Slide 8 text

Realm » ϞόΠϧΞϓϦ޲͚σʔλϕʔε » Objective-C / Swift / Java / React Native / Xamarin » ࢖͍΍͘͢ɺύϑΥʔϚϯε΋༏ल

Slide 9

Slide 9 text

Realm 1.0 » Objective-C / Swift / Java ͕ beta ͔Β 1.0 ΁ » beta Ͱͳ͘ͳͬͨ͜ͱͰɺಋೖͷෑډ͕௿͘ͳͬͨ » React Native / Xamarin ͸ beta ʢ·ͩొ৔ͨ͠͹͔Γʣ

Slide 10

Slide 10 text

Introducing Realm Xamarin on 2016/05/11

Slide 11

Slide 11 text

Realm Xamarin

Slide 12

Slide 12 text

Install » NuGet Ͱ؆୯ʹಋೖͰ͖Δ

Slide 13

Slide 13 text

Model public class Person : RealmObject { public string Name { get; set; } public int Age { get; set; } }

Slide 14

Slide 14 text

Model ͷσʔλܕ » ֤ϓϦϛςΟϒܕʢbool,char,byte,short,int,long,float,doubleʣ » string » DateTimeOffset » Null ڐ༰ܕʢint? ͳͲʣ΋Մೳɺnull ஋࢖༻Մೳ

Slide 15

Slide 15 text

getter / setter ͷࣗಈੜ੒ » ࣗಈ࣮૷ϓϩύςΟ͸ɺgetter ͱ setter ͕ࣗಈੜ੒͞ΕΔ » ͦͷதͰ Realm ಺෦ετϨʔδͱؔ࿈෇͚͞ΕΔ » Ignore ଐੑΛ͚ͭΔͱࣗಈੜ੒͞Εͳ͍ » ΧελϜ getter / setter ͸্ॻ͖͞Εͳ͍

Slide 16

Slide 16 text

ΦϒδΣΫτͷऔಘʢΫΤϦʣ public IEnumerable Persons { get; private set; } public PersonViewModel() { var realm = Realm.GetInstance(); Persons = realm.All() }

Slide 17

Slide 17 text

ΦϒδΣΫτͷ௥Ճ public AddPerson() { var realm = Realm.GetInstance(); using(var transaction = realm.BeginWrite()) { var person = realm.CreateObject(); person.Name = "Hoge"; person.Age = 20; transaction.Commit(); } // ࣗಈతʹ transaction ͕ Dispose() ͞ΕΔ }

Slide 18

Slide 18 text

ΦϒδΣΫτͷࣗಈߋ৽ ʢઌ΄ͲͷίʔυΛ࠶ܝʣ public PersonViewModel() { var realm = Realm.GetInstance(); Persons = realm.All() // ΦϒδΣΫτΛ௥Ճͨ͠ΒɺPersons ͕ࣗಈతʹߋ৽͞ΕΔ // ࠶౓ All ΫΤϦΛ࣮ߦ͢Δඞཁ͸ͳ͍ }

Slide 19

Slide 19 text

LINQ ʹΑΔΫΤϦ // ϝιουߏจ Persons = realm.All() .Where(p => p.Age < 20); // ΫΤϦࣜ Persons = from p in realm.All() where p.Age < 20 select p;

Slide 20

Slide 20 text

Realm Xamarin ·ͱΊ » ͱͯ΋؆୯ʹ࢖͑Δ » C# ͱͯࣗ͠વʹॻ͚Δ » ࢀߟࢿྉ » Realm Xamarin https://realm.io/jp/docs/xamarin/latest/ » Cross-Platform Development with Xamarin.Forms and Realm | Xamarin Blog