Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactiveProperty を使ったアプリの設計に Realm Xamarin を組み合わせる
Search
Nobuhiro Ito
March 19, 2017
Technology
0
640
ReactiveProperty を使ったアプリの設計に Realm Xamarin を組み合わせる
2017/03/19 Realm World Tour
Demo Project:
https://github.com/iseebi/RP-CleanArchitecture-Demo
Nobuhiro Ito
March 19, 2017
Tweet
Share
More Decks by Nobuhiro Ito
See All by Nobuhiro Ito
Bitriseで本をビルドする / Build a book with Bitrise
iseebi
0
140
BitriseでmacOSアプリをビルドする / Build macOS apps with Bitrise
iseebi
1
760
iOS/Androidアプリ転送ツール TransporterPadの紹介
iseebi
0
6k
Xamarinアプリとプッシュ通知
iseebi
2
1.7k
Apple Developer Enterprise Program でどこまでいけるのか
iseebi
0
770
ReactiveProperty で Xamarin アプリの作り方が変わった
iseebi
3
1.7k
600件のPull RequestからみたXamarinのはまりどころ
iseebi
3
4.2k
Yet Another Cross Platform Development
iseebi
0
4.2k
XamarinでPDFを作る
iseebi
1
1.7k
Other Decks in Technology
See All in Technology
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
7
63k
非root化Androidスマホでも動く仮想マシンアプリを試してみた
arkw
0
110
DynamoDB のデータを QuickSight で可視化する際につまづいたこと/stumbling-blocks-when-visualising-dynamodb-with-quicksight
emiki
0
130
ビジネスとデザインとエンジニアリングを繋ぐために 一人のエンジニアは何ができるか / What can a single engineer do to connect business, design, and engineering?
kaminashi
2
890
30代からでも遅くない! 内製開発の世界に飛び込み、最前線で戦うLLMアプリ開発エンジニアになろう
minorun365
PRO
16
5.1k
Azure & DevSecOps
kkamegawa
2
170
コスト最適重視でAurora PostgreSQLのログ分析基盤を作ってみた #jawsug_tokyo
non97
2
890
Part1 GitHubってなんだろう?その1
tomokusaba
2
570
AOAI で AI アプリを開発する時にまず考えたいこと
mappie_kochi
1
470
AI-in-the-Enterprise|OpenAIが公開した「AI導入7つの教訓」——ChatGPTで変わる企業の未来とは?
customercloud
PRO
0
150
PagerDuty×ポストモーテムで築く障害対応文化/Building a culture of incident response with PagerDuty and postmortems
aeonpeople
3
570
AIとSREで「今」できること
honmarkhunt
3
710
Featured
See All Featured
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Making Projects Easy
brettharned
116
6.2k
Side Projects
sachag
453
42k
Build The Right Thing And Hit Your Dates
maggiecrowley
35
2.7k
Building Flexible Design Systems
yeseniaperezcruz
329
39k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.7k
Into the Great Unknown - MozCon
thekraken
38
1.7k
A Tale of Four Properties
chriscoyier
159
23k
How GitHub (no longer) Works
holman
314
140k
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Git: the NoSQL Database
bkeepers
PRO
430
65k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Transcript
3FBDUJWF1SPQFSUZΛͬͨΞϓϦͷઃܭʹ 3FBMN9BNBSJOΛΈ߹ΘͤͯΈͨ /PCVIJSP*UP
ࣗݾհ w ҏ౻৳༟ w ϑΣϯϦϧגࣜձࣾΞϓϦέʔγϣϯڞಉ։ൃ෦νʔϑΤϯδχΞ w ݉ɹ৽نࣄۀ෦#PMU[&OHJOFϓϩμΫτΦʔφʔ w ओʹεϚʔτϑΥϯΞϓϦͷઃܭɾ։ൃΛ୲ɻ࠷ۙϚωʔδϝϯτɻ w
J04 4XJGU 0CKFDUJWF$ "OESPJE +BWB 9BNBSJO $
None
9BNBSJO w $ͰJ04"OESPJE.BDͷ։ൃ͕Ͱ͖ΔπʔϧΩοτ w ࡢ.JDSPTPGU͕ങऩͯ͠ɺݸਓ͚ʹແঈԽ w ๏ਓ͚ؒສਓˠສԁͪΐ͍ʹ 9BNBSJO.BD7JTVBM4UVEJPɺ8JOEPXT͍ͭͯ͘Δ w
ຊͷϢʔβʔάϧʔϓͱͯ͠ +BQBO9BNBSJO6TFS(SPVQ +96( ͕͋Δ
9BNBSJOΛͬͨ։ൃख๏ 9BNBSJO'PSNT 9BNBSJO/BUJWF
%FNP
σϞͷཁࢫ w ҰཡදࣔɾՃɾৄࡉද͔ࣔΒͳΔ؆୯ͳΞϓϦ w σʔλϕʔεͪΖΜ3FBMNΛ༻ɻ w 3FBMN0CKFDU4FSWFSͰಉظɻ w ݩωλ$POOFDU ͱ͍͏ΦϯϥΠϯΠϕϯτͰͷɺ
.JHVFMEF*DB[BͷσϞ ͜ͷͱ͖"[VSF"QQ4FSWJDF͕όοΫΤϯυͩͬͨ
͋ΔΞϓϦͷڞ௨ԽʴߏԽͷྺ࢙ ୈ̍ੈ ωΠςΟϒʴ4JOHMFUPOͳ.BOBHFS͕͍͔ͭ͘ɻ ظؒूதܕͷνʔϜ։ൃʹ͔ͳ͔ͬͨɻ ୈ̎ੈ 9BNBSJO .WWN$SPTTʹΑΔڞ௨Խ 7JFXͷͰ͖͕ͨڞ௨෦ʹΰουΫϥεग़ݱ ୈ̏ੈ $MFBO"SDIJUFDUVSFΛج࣠ʹڞ௨෦ڧԽ
ͷׂΛ໌֬ʹͯ͠ݟ௨͠ޮ͖ͨ͘͢͠
$MFBO"SDIJUFDUVSF w υϝΠϯۦಈ։ൃ %%% ͳͲΛҙࣝͯ͠ɺ ϏδωεϩδοΫΛʹׂ͚ͯͱΛׂ͢Δख๏ w ʮ.77.ͰϞσϧͱϏϡʔͷΛʙʯͱ͍͏ଟ͔͕ͬͨɺ ʮ͡Ό͋ͦͷϞσϧͲͳ͍͢ΜͶΜʯͱ͍͏෦ʹର͢ΔղͷҰͭ ͱೝ͍ࣝͯ͠Δ
w .77.͚ͩͰ$PSF͕ਏ͘ͳΔΛղফͰ͖ͳ͍
7JFX 1SFTFOUFS 6TF$BTF 5SBOTMBUPS .PEFM %BUB4UPSF &OUJUZ 3FQPTJUPSZ IUUQRJJUBDPNLPVUBMPVJUFNTBGDGBEFDED
7JFX 1SFTFOUFS 6TF$BTF 5SBOTMBUPS .PEFM %BUB4UPSF &OUJUZ 3FQPTJUPSZ IUUQRJJUBDPNLPVUBMPVJUFNTBGDGBEFDED ը໘දࣔɾΠϕϯτͷ1SFTFOUFSͷ௨
7JFXͱ6TF$BTFͷؒͰͷσʔλΓͱΓ ඞཁͳϩδοΫΛॻ͘ͱ͜ΖɻσʔλͷऔಘͳͲɻ 3FQPTJUPSZ͔Βग़͖ͯͨ&OUJUZΛ.PEFMʹม͢Δ 7JFXͰ༻͢ΔͨΊʹ࠷దԽͨ͠σʔλϞσϧ υϝΠϯͱσʔλͷ*' 6TF$BTFͰ༻͢Δσʔλͷ$36%ॲཧΛ୲ σʔλΛ࣮ࡍʹऔಘߋ৽͢Δ σʔλͰ༻͢ΔσʔλϞσϧ
͏Ε͘͠ͳ͍ w Ϋϥεଟ͗͢ .PEFMͱ&OUJUZΘ͟Θ͟ม͢Δඞཁ͋Δʁ w ࣅͨΑ͏ͳͷ͏গͬͯ͠Δ໊લʹͰ͖ͳ͍͔ʁ 1SFTFOUFSͬͯ.77.Ͱ͍͏ͱ͜Ζͷ7JFX.PEFMΑͶʁ w
ը໘ʹ͔͔ΘΒͣมԽ͢ΔͷัଊΛͲ͏͢Δʁ 8FC4PDLFUϙʔϦϯάͰڥ֎͔ΒมԽ͢Δଟ
ॏཁͳͷ੍ޚͷํΛҰఆʹ͢Δ͜ͱ ΫϥεΛׂ͠·͘Δͷຊ࣭͡Όͳ͍ͣ
7JFX 1SFTFOUFS 6TF$BTF 5SBOTMBUPS .PEFM %BUB4UPSF &OUJUZ 3FQPTJUPSZ ࠓճΘ͟Θ͟ม͢Δ ඞཁͳͦ͞͏
7JFX 1SFTFOUFS 6TF$BTF %BUB4UPSF &OUJUZ 3FQPTJUPSZ 4FSWJDF όοΫάϥϯυ͔ΒΛม͑Δॲཧ )551ϙʔϦϯάɺ8FC4PDLFUͰͷมԽ
%BUB4UPSFΛૢ࡞͢Δ͜ͱʹͨ͠ ˞"OESPJEଆͰ*OUFOU4FSWJDFͱ͔ͱ͔ͿΔ͔Β8PSLFSʹ͖ͩͬͨ͢
7JFX 7JFX.PEFM 4DFOF %BUB4UPSF .PEFM 3FQPTJUPSZ 4FSWJDF ͜Ε·Ͱݟ֮͑ͷ͋Δ໊લʹม͑ͨ ɾ1SFTFOUFS͜Ε·Ͱͷ7JFX.PEFM૬ͷಈ͖ ɾ&OUJUZ͜Ε·Ͱͷ.PEFM૬ͷಈ͖
ɹ 7JFXҎ্͜ΕΛͦͷ··ར༻͢Δ ɾ6TF$BTF͍͍ͬͯϫʔυ͔ͪΐͬͱࣗ৴ͳ͔ͬͨ ɹͷͰɺ৽͘͠4DFOF໊ͬͯલΛ͚ͭͨ
7JFX 7JFX.PEFM 4DFOF %BUB4UPSF .PEFM 3FQPTJUPSZ 4FSWJDF ͜ͷ෦͕1$- ڞ௨ίʔυ
ͷؒͷଓ w ͯ͢3FBDUJWF1SPQFSUZͰܨ͍Ͱ͍Δɻ w IUUQTHJUIVCDPNSVODFFM3FBDUJWF1SPQFSUZ w !PLB[VLJ͞Μ࡞ɻ ϓϩύςΟΛ3FBDUJWF&YUFOTJPOͱଊ͑ͯૢ࡞Ͱ͖ΔΑ͏ʹͳΔɻ w ຊདྷ7JFX.PEFM7JFXؒͰ͏͖ͱҰ෦ͰݴΘΕ͍ͯΔ͕ɺ
ϓϩύςΟͱ͍͏ϝλϑΝ͕Θ͔Γ͍͢ͷͰͯ͢ͷͰར༻ɻ
3FBDUJWF1SPQFSUZͷΑ͍ͱ͜Ζ w 31ʹΛηοτ͢Δͱ3YετϦʔϜʹ͕ྲྀΕΔ Θ͔Γ͍͢ w *0CTFSWBCMF5ΛͳΜͰ3FBDUJWF1SPQFSUZʹͰ͖Δ 5P3FBDUJWF1SPQFSUZ ศར
w 3FBDUJWF1SPQFSUZ4FMFDU YBOZ 5P3FBDUJWF1SPQFSUZ ͱ͍͏ͷՄೳ w ͦͷ··7JFXΦϒδΣΫτʹόΠϯσΟϯάͰ͖Δ 4FU#JOEJOH w J04ͷࠓͷόʔδϣϯյΕ͍ͯΔ मਖ਼13ϚʔδࡁΈ
7JFX 7JFX.PEFM 4DFOF %BUB4UPSF .PEFM 3FQPTJUPSZ 4FSWJDF %BUB4UPSFΛ࠷Լͱͯ͠ Լͷ3FBDUJWF1SPQFSUZΛ ্͔Β4VCTDSJCF͢Δ
ԼͷΛ্ʹఏڙ͢Δͷ5P3FBDUJWF1SPQFSUZ͢Δ ͜ͷਤͰ 4FSWJDF͚ͩٯͳͷͰҙ
֤ͷߟ͑ํ%BUB4UPSF w σʔλϕʔεΛ৮ͬͯྑ͍ϨΠϠʔ w ࣮ࡍͷΞϓϦͰҎԼͷΑ͏ͳͷΛ༻ҙͨ͠ ࠓճͷσϞʹؚ·ͣ w &QIFNFSBM%BUB4UPSFىಈ࣌ʹ"1*͔Βऔಘ͢ΔҰ࣌తσʔλΛอ࣋ w
"QJ%BUB4UPSF"1*ͱ௨৴ͯ͠σʔλΛऔΔ w 4UPSFE%BUB4UPSFϑΝΠϧͰμϯϩʔυͨ͠ϦετσʔλΛอ࣋
֤ͷߟ͑ํ4FSWJDF w %BUB4UPSFͷΛѻͬͯߋ৽͢Δɻ ࠓճͷσϞʹؚ·ͣ w λΠϚʔͰҰఆ͓͖࣌ؒʹ"QJ%BUB4UPSF͔ΒΛऔ͖ͬͯͯɺ &QIFNFSBM%BUB4UPSFʹॻ͖ࠐΉͳͲɻ
֤ͷߟ͑ํ3FQPTJUPSZ w %BUB4UPSFͷ֤छૢ࡞Λߦ͍ɺ্ͷʹΛఏڙ͢Δɻ w 3FBDUJWF1SPQFSUZϝιουΛ্ͷʹެ։ w ݁Ռతʹػೳ͝ͱʹ༻ҙ͞ΕΔ͜ͱͱͳͬͨɻ
"OESPJEͷϦδϡʔϜରԠ w &QIFNFSBM%BUB4UPSFΛ0O4BWF*OTUBODF4UBUFͰ·Δͬͱอଘ ϦετΞ࣌ʹ·Δͬͱ෮ݩ w 3FBDUJWF1SPQFSUZͰͭͳ͕͍ͬͯΔ͔Β্ʹྲྀΕͯͯ͢ݩʹΔ w 4UPSFE%BUB4UPSFεςʔτ͕ফ͑ͯ࠶ಡࠐͰ෮ݩ͞ΕΔ w ͜ͷϦδϡʔϜॲཧͷͨΊʹ"QQ4UBUF4FSWJDFͱ͍͏ͷΛ༻ҙͨ͠ɻ
֤ͷߟ͑ํ4DFOF w ಉ͡ػೳͷෳͷը໘Ͱڞ༗͞ΕΔػೳΛఏڙ͢Δɻ ݱஈ֊ͰΛҰ࣌తʹอ࣋ͨ͠Γ͍ͯ͠Δ͕ɺ&QIFNFSBM%BUB4UPSFୡ͞ΕΔ͖ 4DFOF
͜͜·Ͱͷ·ͱΊ w 3FBDUJWF1SPQFSUZΛ͍ɺ$MFBO"SDIJUFDUVSFΛҙࣝͯ͠ઃܭͨ͠Βɺ ͦͦ͜͜͏·͍ͬͨ͘ײ͕͢͡Δ w ·ͩ͜Ε͕࠷దղͱࢥ͍ͬͯ·ͤΜͷͰɺ ࠓޙϒϥογϡΞοϓ͍ͯ͜͠͏ͱࢥ͍·͢ɻ
9BNBSJOϢʔβʔ͔ΒΈͨ 3FBMN
ϥΠϒϥϦͷܗଶ w ωΠςΟϒόΠϯσΟϯάϥΠϒϥϦΛϥοϓ͍ͯ͠Δ༷ࢠ w #BJUBOE4XJUDIͰϥοϓ͞Ε͍ͯΔͷͰɺ ωΠςΟϒίʔυΛ͑ͳ͍1$-͔Βͦͷ··͑Δɻ w 'PEZͱ͍͏/&5ͷதؒݴޠ .4*- Λมߋ͢Δπʔϧ͕ΘΕ͍ͯΔɻ
w Ϗϧυ࣌ɺ5PPMT3FBMN8FBWFS'PEZEMMͱϑΝΠϧ͕ ιϦϡʔγϣϯσΟϨΫτϦʹੜ͞ΕΔ͕HJUJHOPSFͯ͠Α͍ɻ
None
͍ํ w 3FBMN(FU*OTUBODF ͰΠϯελϯεΛऔΔɻ w SFBMN"MM*UFN8IFSF ʜ ͱ͍ͬͨɺ $Ϣʔβʔʹ͓ͳ͡Έͷ-*/2ͰߜΓࠐΈՄೳ w
ඌʹ4FMFDUॻ͖ͨ͘ͳΔͷ͕͓ଋͰ͕͢ɺ ͦͷ··ͩͱ/PU*NQMFNFOUFE&YDFQUJPO͕ฦͬͯ͘ΔͷͰ Ұ5P-JTUͰྻڍ͢Δඞཁ͋Γɻ ύϑΥʔϚϯεɾ݅ҙ
มߋࢹ Ϧετ w "T3FBMN$PMMFDUJPO͢Δͱ*3FBMN$PMMFDUJPO5͕औಘͰ͖ɺ */PUJGZ$PMMFDUJPO$IBOHFE5ͷΠϕϯτͰࢹͰ͖Δɻ w 3FBDUJWF1SPQFSUZͱͷ૬ޓӡ༻తʹ*3FBMN$PMMFDUJPO5ʹ 5P3FBDUJWF$PMMFDUJPO͕΄͍͠ͱ͜Ζ Ζ͏ͱͯ͠அ೦ ˞͜Ε͍ͩͿࡶͳͷͰ͏ͪΐͬͱߟ͑ͨํ͕͍͍
มߋࢹ ༰ w 3FBMN0CKFDU*/PUJGZ1SPQFSUZ$IBOHFEΛఏڙ͍ͯ͠ΔͷͰɺ ͜ΕͰࢹ͢Δɻ w ͕ɺ3FBDUJWF1SPQFSUZΛͬͨࠓ͔ͳΓͭΒ͍ʜϥούʔ͕ඞཁ͔ɻ
ॻ͖ࠐΈ w σʔλͷॻ͖ࠐΈछྨ͋Δ w ϕʔγοΫͳͷ#FHJO8SJUFͰVTJOHϒϩοΫΛ͏ w USBOTBDUJPO$PNNJU͞ΕΕอଘɻ $PNNJU͞Εͣʹൈ͚Δͱ3PMMCBDL USBOTBDUJPO%JTQPTF
w VTJOH͏·͔ͭͬͯͯ͘DPPM
ॻ͖ࠐΈ w ίϛοτલఏͰ͋Ε8SJUF "DUJPO3FBMN ͕ศརɻ όοΫάϥϯυͰ࣮ߦ͢Δ8SJUF"TZODΛBXBJU͢Δ͜ͱՄɻ w தͰྫ֎͕ى͖ͳ͚Εอଘ͞ΕΔ
3FBMN.PCJMF1MBUGPSN w 3FBMN(FU*OTUBODF ͷҾʹ$POpHVSBUJPO͚ͩ͢ͰରԠྃ w ͳʹ͜Εઈ؆୯͗͢Δʂʂʂײಈͨ͠ʂʂʂ w -PHJO"TZOD͕ฦͬͯ͘Δͷʹ͔͔࣌ؒΔΑ͏Ͱɺ ͑Δ·Ͱʹ͔͔࣌ؒΔͷ͕ʁγϦΞϥΠζͯ͠ΩϟογϡͰ͖Δʁ ௐࠪෆ
3FBMN.PCJMF1MBUGPSN w 0CKFDU4FSWFS্ʹ֤ϢʔβʔͷSFBMNϑΝΠϧ͕͓͔Εͯɺ ඞཁʹԠͯ͡ڞ༗ઃఆ͕Մೳɺͱ͍͏ܗͰߟ͑Εྑ͍ͱཧղ͠·ͨ͠ɻ ͱͯΘ͔Γ͍͢ʂ
3FBMN.PCJMF1MBUGPSN w ࣗࣾอ༗ͷαʔόʔʹઃஔ͢ΔϞσϧͳͷͰɺ σʔλΛ֎ʹग़ͤͳ͍େاۀͳͲͰΑͦ͞͏ʜ w ͋Εɺ͜Ε͏ͪͷͰಉ͡ࣄ͍ͬͯͨͳʜ
3FBMN9BNBSJOશମతͳײ w -*/2 BTZODBXBJU */PUJGZ$PMMFDUJPO$IBOHFE5 */PUJGZ1SPQFSUZ$IBOHFE5ͱ͍ͬͨɺ $Ϣʔβʔ͕ීஈ͔Β͍ͬͯΔͷΛͪΌΜͱ͑Δ w ֤छϥΠϒϥϦͱͷΈ߹Θ͖ͤͬ͢͞ͱྑͦ͞͏ɻ
3FBDUJWF1SPQFSUZͱ࿈ಈ͢ΔͨΊͷϥούʔͳͲ࡞ΒΕΔͱྑ͍ͳɻ w $PDPB+BWBʹൺͯߋ৽Ίͳͷ͕͔ɻ .BD 8JOEPXT·ͩ
9BNBSJO $ͷศརͰָ͍͠ϥΠϒϥϦ ͍ͬͺ͍͋ΔͷͰ ·ͩͷਓҰ৮ͬͯΈ·͠ΐ͏ʂ