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.3k
SwiftとRealmによるアプリ開発実践ノウハウ
2015/10/22のヒカ☆ラボにてお話したネイルブックの姉妹アプリ『サロンブック』についてどのように開発を行ったかのスライドです。
t_hayashi
October 23, 2015
Tweet
Share
Other Decks in Technology
See All in Technology
EM完全に理解した と思ったけど、 やっぱり何も分からなかった話 / EM Night Fukuoka #1
hirutas
0
310
Handling focus in 2024
tahia910
0
610
Babylon.jsと色々なものを組み合わせる:ブラウザのAPIやガジェットや2D描画ライブラリなど / Babylon.js 勉強会 vol.3
you
PRO
0
190
リテール金融(キャッシュレス・ネット銀行・ネット証券)の競争環境と経済圏
8maki
0
1.8k
2024春 注目のWeb系 OSS & SaaS 3選
makies
0
210
【基本】データベース設計
oracle4engineer
PRO
2
270
NewSQL Landscape
oracle4engineer
PRO
2
2.5k
Building Dashboards as a Hobby
egmc
0
430
令和最新版 Ruby プロファイラ "Pf2" のご紹介
osyoyu
0
170
競技としてのKaggle、役に立つKaggle
yu4u
7
2.5k
Max out Local LLM in Challenging Environments
sashimimochi
2
210
Amplify 🩷 Bedrock 〜生成AI入門〜
minorun365
PRO
10
1.1k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Being A Developer After 40
akosma
67
580k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Faster Mobile Websites
deanohume
300
30k
Building Applications with DynamoDB
mza
88
5.6k
Agile that works and the tools we love
rasmusluckow
325
20k
Atom: Resistance is Futile
akmur
260
25k
Producing Creativity
orderedlist
PRO
338
39k
Making the Leap to Tech Lead
cromwellryan
125
8.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
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