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
SwiftとRealmによるアプリ開発実践ノウハウ
Search
t_hayashi
October 23, 2015
Technology
8
1.4k
SwiftとRealmによるアプリ開発実践ノウハウ
2015/10/22のヒカ☆ラボにてお話したネイルブックの姉妹アプリ『サロンブック』についてどのように開発を行ったかのスライドです。
t_hayashi
October 23, 2015
Tweet
Share
Other Decks in Technology
See All in Technology
隣接領域をBeyondするFinatextのエンジニア組織設計 / beyond-engineering-areas
stajima
1
270
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
Terraform未経験の御様に対してどの ように導⼊を進めていったか
tkikuchi
2
430
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
OCI Vault 概要
oracle4engineer
PRO
0
9.7k
SSMRunbook作成の勘所_20241120
koichiotomo
2
130
rootlessコンテナのすゝめ - 研究室サーバーでもできる安全なコンテナ管理
kitsuya0828
3
380
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
10XにおけるData Contractの導入について: Data Contract事例共有会
10xinc
6
620
Shopifyアプリ開発における Shopifyの機能活用
sonatard
4
250
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Designing for Performance
lara
604
68k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Language of Interfaces
destraynor
154
24k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
Making Projects Easy
brettharned
115
5.9k
How STYLIGHT went responsive
nonsquared
95
5.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
Agile that works and the tools we love
rasmusluckow
327
21k
Transcript
4XJGUͱ3FBMNʹΑΔ ΞϓϦ։ൃ࣮ફϊϋ גࣜձࣾεϐΧྛୡ
ࣗݾհ גࣜձࣾεϐΧ J04ɺαʔόΤϯδχΞ w ྛୡ 2JJUBTPSB!HJUIVC (JU)VCTPSB 0CKFDUJWF$ 1ZUIPO 4XJGU
αϩϯϒοΫ ຬͰ͖Δࢪज़Λͯ͘͠ΕΔ ͱ͓͖ͬͯωΠϧαϩϯ͕ݟ͔ͭΔʂ
ΞδΣϯμ w ։ൃڥ w ϓϩδΣΫτߏ w 3FBMNͷಋೖ w Ϗϡʔߏ w
4XJGUͷྑ͔ͬͨʗۤ࿑ͨ͠
։ൃڥ w 9DPEF w 77%PDVNFOUFS w 'V[[Z"VUPDPNQMFUF w 4XJGU w
SFBMNDPDPB w ͦͷଞπʔϧ#VOEMFSͰཧ w .BD#PPL1SP.JE w ()[*OUFM$PSFJ w (#.)[%%3
ڥมͷѻ͍ ։ൃڥ
ղܾ͍ͨ͜͠ͱ w QCYQSPK͕ઃఆͷมߋͷͨͼߋ৽͞Εͳ͍͜ͱ w Ճɾߋ৽͕֬ೝ͍͢͜͠ͱ w ڥมΛ؆୯ʹΓସ͑ΒΕΔ͜ͱ ڥมͷѻ͍ ؒҧ͑ͯϩʔΧϧใΛίϛοτɻɻ ઃఆใ͕ίϯϑϦΫτͰखಈϚʔδɻɻ
ߦͬͨ͜ͱ w ڥมΛFOWϑΝΠϧͰཧ w த୯७ͳLFZWBMVFͷཏྻͨ͠ςΩετ w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC
(MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ JGEFGJOGPQMJTUͰࢀর ίʔυ্Ͱࢀর
ߦͬͨ͜ͱ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC (MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ
JGEFGJOGPQMJTUͰࢀর ίʔυ্Ͱࢀর (JUͰόʔδϣϯཧ όʔδϣϯཧ֎ w ڥมΛFOWϑΝΠϧͰཧ w த୯७ͳLFZWBMVFͷཏྻͨ͠ςΩετ w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ
ߦͬͨ͜ͱ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC (MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ
JGEFGJOGPQMJTUͰࢀর ίʔυ্Ͱࢀর (JUͰόʔδϣϯཧ όʔδϣϯཧ֎ ݸผͰཧ w ڥมΛFOWϑΝΠϧͰཧ w த୯७ͳLFZWBMVFͷཏྻͨ͠ςΩετ w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ
YDDPOGHZBNMFSC ڥมͷѻ͍
YDDPOGHZBNMFSC ͜͜Ͱఆٛͨ͠εΩʔϚຖʹग़ྗ͞ΕΔ ڥมͷѻ͍ JGEFGJOGPQMJTUͰࢀর
ߦͬͨ͜ͱ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC (MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ
JGEFGJOGPQMJTU ίʔυ্Ͱࢀর w ڥมΛFOW w த୯७ͳLFZWBMVF w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ ϓϩδΣΫτઃఆຊମͷมߋ࠷খݶʹ
ߦͬͨ͜ͱ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC (MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ
JGEFGJOGPQMJTU w ڥมΛFOW w த୯७ͳLFZWBMVF w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ ίʔυ্Ͱࢀর ϓϩδΣΫτઃఆຊମͷมߋ࠷খݶʹ ઃఆͷมߋ͕ςϯϓϨʔτϑΝΠϧͷࠩʹ
ߦͬͨ͜ͱ ڥมͷѻ͍ FOW YDDPOpHZBNMFSC (MPCBMTXJGUFSC %FCVHYDDPOpH 3FMFBTFYDDPOpH (MPCBMTXJGU ςϯϓϨʔτ ఆٛϑΝΠϧ
JGEFGJOGPQMJTU w ڥมΛFOW w த୯७ͳLFZWBMVF w ͔ͦ͜ΒదٓɺదͳϑΥʔϚοτΛग़ྗ ίʔυ্Ͱࢀর ϓϩδΣΫτઃఆຊମͷมߋ࠷খݶʹ ઃఆͷมߋ͕ςϯϓϨʔτϑΝΠϧͷࠩʹ ڥมͷΓସ͑ఆٛϑΝΠϧͰ
3BLFpMF Α͘ར༻͢ΔॲཧλεΫԽ ˠڥมͷϑΝΠϧੜ ˠॳճڥߏங ʨ#VOEMFSɺHJUTVCNPEVMFɺ$PDPB1PETɺFOWʩ ˠ(PPHMF"OBMZUJDTΠϕϯτ༻ϑΝΠϧੜ (PPHMFεϓϨουγʔτͰཧ͞ΕͨఆٛҰཡΛίϯόʔτ ˠ$SBTIMZUJDT#FUB ˠݱࡏ+FOLJOT͕࣮ߦ ڥมͷѻ͍
ϓϩδΣΫτߏ
ղܾ͍ͨ͜͠ͱ w νʔϜ։ൃͰͷίϯϑϦΫτ w ಛʹॳظ։ൃՃɾมߋ͕ଟ͍ͷͰා͍ w ϩδοΫपΓ୯ମςετ͍ͨ͠ w ͳΔ͘ૄ݁߹ʹ͍ͨ͠ ϓϩδΣΫτߏ
ςετڥ͕͋·Γඋग़དྷ͍ͯͳ͔ͬͨɻɻ
ߦͬͨ͜ͱ w ։ൃॳϓϩδΣΫτҰͭͷΈ w ϏϡʔΛؚΉ୯ମςετڥ·Ͱ͍ͬͯͳ͔ͬͨ w ৽͍͠ϝϯόʔ͕ೖΔλΠϛϯάͰ࠷ݶϞσϧपΓ ୯ମςετ͕ߦ͑ΔΑ͏ϓϩδΣΫτΛׂ w Ϗϡʔܥ
w Ϟσϧܥ ϓϩδΣΫτߏ
EZOBNJDGSBNFXPSLΛར༻ w 7JFX w 7JFX$POUSPMMFS w 4UPSZCPBSE w "QQ%FMFHBUF w
.PEFM w "1* w &OUJUZ w $POTUBOUT ϓϩδΣΫτߏ ࢀরՄೳ ࢀরෆՄ
EZOBNJDGSBNFXPSLΛར༻ w 7JFX w 7JFX$POUSPMMFS w 4UPSZCPBSE w "QQ%FMFHBUF w
.PEFM w "1* w &OUJUZ w $POTUBOUT ϓϩδΣΫτߏ ࢀরՄೳ ࢀরෆՄ
EZOBNJDGSBNFXPSLΛར༻ w 7JFX w 7JFX$POUSPMMFS w 4UPSZCPBSE w "QQ%FMFHBUF w
.PEFM w "1* w &OUJUZ w $POTUBOUT ϓϩδΣΫτߏ ϓϩδΣΫτຖʹ୲͠։ൃɺίϯϑϦΫτ ͕ى͖ʹ͍͘Α͏ʹ
EZOBNJDGSBNFXPSLΛར༻ w 7JFX w 7JFX$POUSPMMFS w 4UPSZCPBSE w "QQ%FMFHBUF w
.PEFM w "1* w &OUJUZ w $POTUBOUT ϓϩδΣΫτߏ ϓϩδΣΫτຖʹ୲͠։ൃɺίϯϑϦΫτ ͕ى͖ʹ͍͘Α͏ʹ Ϟσϧʹؔͯ͠୯ମςετΛ༻͍ͯ։ൃ
EZOBNJDGSBNFXPSLΛར༻ w 7JFX w 7JFX$POUSPMMFS w 4UPSZCPBSE w "QQ%FMFHBUF w
.PEFM w "1* w &OUJUZ w $POTUBOUT ϓϩδΣΫτߏ ϓϩδΣΫτຖʹ୲͠։ൃɺίϯϑϦΫτ ͕ى͖ʹ͍͘Α͏ʹ Ϟσϧʹؔͯ͠୯ମςετΛ༻͍ͯ։ൃ ϏϡʔɺϞσϧͷࢀর͕ҰํʹͳΓɺ ࠷ݶͷૄ݁߹Λ୲อ
ίϯύΠϧ w ը໘ w ػೳάϧʔϓ w 4UPSZCPBSET w 7JFX$POUSPMMFST ϓϩδΣΫτߏ
ίϯύΠϧ w ϑΝΠϧ w ߦ Ϗϡʔ Ϟσϧ
ίϯύΠϧ࣌ؒฏۉඵ ˞48*'5@8)0-&@.0%6-&@015*.*;"5*0/l:&4zར༻࣌ ϓϩδΣΫτߏ
ίϯύΠϧ w ϑΝΠϧ w ߦ ίϯύΠϧ࣌ؒฏۉඵ ˞48*'5@8)0-&@.0%6-&@015*.*;"5*0/l:&4zར༻࣌ ϓϩδΣΫτߏ
͜ͷΦϓγϣϯ͕ͳ͍ͱίϯύΠϧ͕ԆʑऴΘΒͳ͍ʜ Ϗϡʔ Ϟσϧ
3FBMN
͖͔͚ͬ w Ϣʔβମݧతʹͪ࣌ؒΛ͍ͨ͘͠ w ΤϯδχΞʹͱͬͯ௨৴ճݮΒ͍ͨ͠ Realm
͖͔͚ͬ w Ϣʔβମݧతʹͪ࣌ؒΛ͍ͨ͘͠ w ΤϯδχΞʹͱͬͯ௨৴ճݮΒ͍ͨ͠ Realm Ωϟογϡػߏ͕ඞਢ
͖͔͚ͬ w Ϣʔβମݧతʹͪ࣌ؒΛ͍ͨ͘͠ w ΤϯδχΞʹͱͬͯ௨৴ճݮΒ͍ͨ͠ Realm Ωϟογϡػߏ͕ඞਢ ͕࣌ग़࢝Ί͍ͯͨ3FBMNΛ࠾༻ w ͍͍͢ΠϯλʔϑΣʔε
w ύϑΥʔϚϯε
3FBMN w Ωϟογϡ༻్Ͱ༻ w αʔό্ͷσʔλߏΛͦͷ··ɺ3FBMNΦϒδΣΫτʹϚο ϐϯά w +40/Ϩεϙϯε͔Βͷอଘʹख͕ؒͳ͍ w λΠϜϥΠϯͳͲͷϦετΩϟογϡ͕͍ͨ͠ΊɺΦϒδΣ
Ϋτ୯ମຖʹอଘ
3FBMN w Ωϟογϡ༻్Ͱ༻ w αʔό্ͷσʔλߏΛͦͷ··ɺ3FBMNΦϒδΣΫτʹϚο ϐϯά w +40/Ϩεϙϯε͔Βͷอଘʹख͕ؒͳ͍ w λΠϜϥΠϯͳͲͷϦετΩϟογϡ͕͍ͨ͠ΊɺΦϒδΣ
Ϋτ୯ମຖʹอଘ Ωϟογϡऔಘ࣌ؒΛ߹Θͤͯه
3FBMN w ($%γϦΞϧΩϡʔͰಡΈॻ͖ w ˞·ΕʹεϨου͕มΘΔ͕͋Γɺݱࡏ ϝΠϯεϨου͔ΒͷಡΈࠐΈซ༻
1SPNJTF w 3FBMNͱ"1*Λܨ͗͜Ή෦ʹ1SPNJTFΛར༻ w લड़ͷϝϯόʔ͕ಋೖ w ίʔϧόοΫࠈʹͳΒͣʹࡁΉ w ޙ͔ΒৼΔ·͍Λࠩ͠ࠐΉ͜ͱ͕༰қ
3FBMN w Ωϟογϡ֬ೝʙ"1*ϦΫΤετྫ w ˞Ϗϡʔͷୡ௨Λར༻
3FBMN w Ωϟογϡ֬ೝʙ"1*ϦΫΤετྫ w ˞Ϗϡʔͷୡ௨Λར༻ Ωϟογϡ͕ʨແ͍ɾ༗Δɾݹ͍ʩͱ͖ͷৼΔ͍ ͕͖ͬ͢Γॻ͚Δ
3FBMN w ར༻γʔϯ
3FBMN w ར༻γʔϯ λΠϜελϯϓ͕ݹ͚Ε͍߹ΘͤΛߦ͏ ͍߹ΘͤதͰҎલͷใΛϏϡʔʹө ͍߹Θ͕ͤྃ͠ɺΩϟογϡʹอଘ͞Ε Εɺ௨ܦ༝Ͱ࠶ө
3FBMN w ར༻γʔϯ λΠϜελϯϓ͕ݹ͚Ε͍߹ΘͤΛߦ͏ ͍߹ΘͤதͰҎલͷใΛϏϡʔʹө ͍߹Θ͕ͤྃ͠ɺΩϟογϡʹอଘ͞Ε Εɺ௨ܦ༝Ͱ࠶ө
w ৗʹ3FBMN͔ΒͷөʹͳΔͷͰɺ࣮͕γϯϓϧʹ w ଟͷ௨ͳͷͰɺଞͷը໘Ͱͷߋ৽ൃੜಛผͳରԠͳ࣮͘ݱ
Ϗϡʔߏ
શମతʹςʔϒϧϏϡʔΛར༻ w ՝ w ֤7JFX$POUSPMMFSͰͷEFMFHBUF EBUB4PVSDF ͷ࣮ͷෛ୲ w ηϧͷՃɾআͳͲͷૢ࡞ॲཧ w
3FBMNΦϒδΣΫτͷεϨουΞΫηε Ϗϡʔߏ
ߦͬͨ͜ͱ w දࣔ͢Δ༰ͷσʔλΦϒδΣΫτΛ༧Ίੜ͠ɺϦ ετͰอ࣋͢Δ w ͦͷϦετΛࢹ͠ɺςʔϒϧϏϡʔʹঢ়ଶΛө 3FBMN ΦϒδΣΫτ 3FBMN ΦϒδΣΫτ
3FBMN ΦϒδΣΫτ ηϧσʔλ ΦϒδΣΫτ දࣔ͞ΕΔλΠϛϯάͰ ηϧʹσʔλΛө Ϗϡʔߏ
ߦͬͨ͜ͱ w දࣔ͢Δ༰ͷσʔλΦϒδΣΫτΛ༧Ίੜ͠ɺϦ ετͰอ࣋͢Δ w ͦͷϦετΛࢹ͠ɺςʔϒϧϏϡʔʹঢ়ଶΛө 3FBMN ΦϒδΣΫτ 3FBMN ΦϒδΣΫτ
3FBMN ΦϒδΣΫτ ηϧσʔλ ΦϒδΣΫτ දࣔ͞ΕΔλΠϛϯάͰ ηϧʹσʔλΛө Ϗϡʔߏ 3FBMNʹΞΫηεͨ͠εϨου ͰσʔλΦϒδΣΫτΛੜ
ߦͬͨ͜ͱ w දࣔ͢Δ༰ͷσʔλΦϒδΣΫτΛ༧Ίੜ͠ɺϦ ετͰอ࣋͢Δ w ͦͷϦετΛࢹ͠ɺςʔϒϧϏϡʔʹঢ়ଶΛө 3FBMN ΦϒδΣΫτ 3FBMN ΦϒδΣΫτ
3FBMN ΦϒδΣΫτ ηϧσʔλ ΦϒδΣΫτ දࣔ͞ΕΔλΠϛϯάͰ ηϧʹσʔλΛө Ϗϡʔߏ ७ਮͳΦϒδΣΫτͳͷͰ ϝΠϯεϨου͔ΒΞΫηεՄೳ
None
ςʔϒϧϏϡʔΠϕϯτΛॲཧ͢ΔΫϥεΛܧঝ͠ɺ ͦΕͧΕͷදࣔ༰Λཧ͢Δ
4XJGUͷྑ͔ͬͨʗۤ࿑ͨ͠ ࣮ߦ࣌ʹؾ͘όά͕ίϯύΠϧ࣌ʹर͑Δ ࣗવʹ݅ΛཏͰ͖ΔͷͰ࿙Ε͕ͳ͘ͳΔ ؆ܿʹָ͘͠ॻ͚Δʂ ิ͕ޮ͔ͳ͍ ͱʹ͔͘ίϯύΠϧ͕͍ ʢ9DPEF͕සൟʹΫϥογϡʣ ։ൃΛ௨ͯ͠
4XJGUͷྑ͔ͬͨʗۤ࿑ͨ͠ ࣮ߦ࣌ʹؾ͘όά͕ίϯύΠϧ࣌ʹर͑Δ ࣗવʹ݅ΛཏͰ͖ΔͷͰ࿙Ε͕ͳ͘ͳΔ ؆ܿʹָ͘͠ॻ͚Δʂ ิ͕ޮ͔ͳ͍ ͱʹ͔͘ίϯύΠϧ͕͍ ʢ9DPEF͕සൟʹΫϥογϡʣ ։ൃΛ௨ͯ͠ όʔδϣϯΞοϓຖʹྑ͘ͳ͍ͬͯΔ
IUUQTXXXXBOUFEMZDPNQSPKFDUT