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
610
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
130
BitriseでmacOSアプリをビルドする / Build macOS apps with Bitrise
iseebi
1
730
iOS/Androidアプリ転送ツール TransporterPadの紹介
iseebi
0
6k
Xamarinアプリとプッシュ通知
iseebi
2
1.6k
Apple Developer Enterprise Program でどこまでいけるのか
iseebi
0
740
ReactiveProperty で Xamarin アプリの作り方が変わった
iseebi
3
1.6k
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
Amazon SageMaker Unified Studio(Preview)、Lakehouse と Amazon S3 Tables
ishikawa_satoru
0
160
Qiita埋め込み用スライド
naoki_0531
0
5.1k
kargoの魅力について伝える
magisystem0408
0
210
alecthomas/kong はいいぞ / kamakura.go#7
fujiwara3
1
300
20241214_WACATE2024冬_テスト設計技法をチョット俯瞰してみよう
kzsuzuki
3
510
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
15
12k
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
100
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
380
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.3k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
170
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
820
C++26 エラー性動作
faithandbrave
2
750
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
33
3k
Building Adaptive Systems
keathley
38
2.3k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Unsuck your backbone
ammeep
669
57k
How to Ace a Technical Interview
jacobian
276
23k
Making the Leap to Tech Lead
cromwellryan
133
9k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
A better future with KSS
kneath
238
17k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
2
170
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
450
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 $ͷศརͰָ͍͠ϥΠϒϥϦ ͍ͬͺ͍͋ΔͷͰ ·ͩͷਓҰ৮ͬͯΈ·͠ΐ͏ʂ