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
公開初日に個人環境で試した Gemini CLI 体験記など / Gemini CLI実験レポート
you
PRO
3
1.2k
AIに全任せしないコーディングとマネジメント思考
kikuchikakeru
0
310
Bet "Bet AI" - Accelerating Our AI Journey #BetAIDay
layerx
PRO
1
210
alecthomas/kong はいいぞ
fujiwara3
6
1.2k
東京海上日動におけるセキュアな開発プロセスの取り組み
miyabit
0
210
With Devin -AIの自律とメンバーの自立
kotanin0
2
950
SAE J1939シミュレーション環境構築
daikiokazaki
1
200
猫でもわかるQ_CLI(CDK開発編)+ちょっとだけKiro
kentapapa
0
140
私とAWSとの関わりの歩み~意志あるところに道は開けるかも?~
nagisa53
1
140
VLMサービスを用いた請求書データ化検証 / SaaSxML_Session_1
sansan_randd
0
150
ユーザー理解の爆速化とPdMの価値
kakehashi
PRO
1
110
経理出身PdMがAIプロダクト開発を_ハンズオンで学んだ話.pdf
shunsukenarita
1
260
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
The Invisible Side of Design
smashingmag
301
51k
How GitHub (no longer) Works
holman
314
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Designing for Performance
lara
610
69k
Facilitating Awesome Meetings
lara
54
6.5k
Code Review Best Practice
trishagee
69
19k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.8k
Why Our Code Smells
bkeepers
PRO
337
57k
It's Worth the Effort
3n
185
28k
Documentation Writing (for coders)
carmenintech
72
4.9k
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