iOSDCで発表した内容です
݄ ຏԧϞμϯͳγεςϜߏΛऔΓೖΕଓ͚Δ͜ͱ͕Ͱ͖Δ৫࡞Γ
View Slide
ࣗݾհ໊લ ຏԧʢʹ͠ ·͓ʣ࠷ۙͷࣄ[email protected]
γεςϜߏͷมߋେมͰ͢ΑͶ
ͭͬͨ͘ޙ࠷ߴʹ͖Ε͍ͳίʔυ͕ॻ͚ͨʂ
ೋिؒޙ
ޙ͔Βࢥ͏͜ͱ࡞ͬͨ࣌ʹ͍͍ײ͡ʹͰ͖ͨͭΓͩͬͨͷʹɾɾ୭ͩ͜ͷίʔυॻ͍ͨͷ
ੈͷதมԽ͕͍• ৽͍͠ػೳՃ• ϢʔβχʔζͷมԽ• ݴޠͷਐԽ
ਐา͢ΔΞʔΩςΫνϟ• .7$• .71• .77.• $MFBO"SDIJUFDIUVSF• 'MVYҰํͰطଘγεςϜͷ֦ுۀ
৽͍͠ΞʔΩςΫνϟΛΔ͜ͱੈͷதͷ՝ΛΔνϟϯε• ҋӢͳಋೖྑ͘ͳ͍• ͚ͩͲ࣮ફ͠ͳ͍ͱཧղ͕ਂ·Βͳ͍
Ϗδωεଆ͔ΒݟΔͱγεςϜߏม͑ͳ͍બ҆ఆՔಇ͍ͯ͠Δ͠ɺʑֶशίετԼ͕Δ
ٕज़ϩοΫΠϯͯ͠͠·͏যΓ
ཧͷ͔ͨͪ• ΞϓϦͷʹ͋ΘͤͨγεςϜߏݟ͠• ͔͠ϏδωεΛࢭΊͣʹ
• ٕज़Ξϓϩʔν• ৫Ξϓϩʔν྆ํ͕ඞཁͲ͏͢Δʁ
ͨͲΓண͍ͨਅཧͷڞ༗• ϦϦʔεͷΞϓϦ• Λ͑Δ4UPSZCPBE• Λ͑ΔιʔεϑΝΠϧ
ٕज़Ξϓϩʔν
ٕज़Ξϓϩʔν• ৽͍͠ΞʔΩςΫνϟΛࢼ͢• プロトタイプで試す• ここはまずやりましょう·ͣখͬͯ͘͞ΈΔ
ίϯύΠϧ͕େࣄ• ͳͥʁ• 未知なことをやるから• あーでもないこーでもないがおきる• 開発のリズムが崩れる
πʔϧͰܭଌ#VJME5JNF"OBMZ[FSGPS9DPEF• Ϋϥεɺؔ୯ҐͰ͕͔Δ
վળύλʔϯͷྫ• ԋࢉࢠͷॲཧΛݮΒ͢ʢTॖʣ• もちろん遅くなっているところだけでいい• ྻͷՃΛݮΒ͢ʢTॖʣ• ArrayOfStuff + [Stuff] →ArrayOfStuff.append(stuff)• ࡾ߲ԋࢉࢠΛݮΒ͢ʢTॖʣ• 遅くなっているところだけ
·ΊࣝίϯύΠϧ͕͍ͱϫʔχϯάΛݟͯݟ͵;Γ͢Δ͜ͱ͋Δ
ΑΓ͘ίϯύΠϧ͢ΔͨΊʹ
γεςϜΛׂ͢Δ• ͳͥʁ• プリビルドができる• 脳のコンパイル速度もあがる• ここから先はシステムが別• 毎回の全体コンパイルを避ける• CDがより高速に
ΞϯϒϨϥπϦʔϝϦοτɿࢹ֮తʹ͍ۙॴʹஔͰ͖Δ
%ZOBNJD'SBNFXPSLϝϦοτɿকདྷతʹผ3FQPʹΓग़͍͢͠
%'SBNFXPSLΛผ3FQPʹϝϦοτɿผϓϩδΣΫτʹڞ༗ɺϓϦϏϧυՄ
ׂ͢ΔͱʁҰ෦ͷػೳͷγεςϜߏΛมߋ͢Δ͜ͱ͕Ͱ͖ΔMVC MVVM
%'SBNFXPSLຖͷઃܭ画面名 設計 解決したかった課題トップ MVVM Viewの更新タイミングを統一したい商品詳細 コードベースの画面設計Storyboardマージしたくない、UIのテストコードを書きやすくしたいその他 MVC よく知られている構成で、新規メンバ参画を容易に
ͪΖΜ՝γεςϜ͕ෳࡶԽ͢ΔͷͰʁ• ͦͷ௨Γ• しかし、システム全刷新の選択は容易ではない• ࣮ܦݧ͕࠷దղΛ୳ͨ͢Ίͷ݂ͱͳΓͱͳΔ
৫Ξϓϩʔν
Α͍৫ɺνʔϜʹԿ͕ඞཁʁ• ৽͍͠ߟ͑ํΛऔΓೖΕΔڥ• 一方的な知識のインプット?• さてどうやる?
࣮ࡍͲ͏͍ͬͯΔʁ91ͰϖΞͷ૬खΛຖϩʔςʔγϣϯ͠ͳ͕Β
͍͍͜ͱʁ• ͠ͳ͕Βઃܭ• ޓ͍ͷࣝަ• ʮͳͥͦ͏ߟ͑ͨͷ͔ʁʯͱ͍͏ίʔνϯά• ଐਓԽղফ
͞Βʹʁ• ҰਓΑΓೋਓͰߟ͑ͨͷͷํ͕ࣗ৴͕ग़Δ• ࣗͨͪͰܾΊΔɺͱ͍͏ҙࢥܾఆܦݧ
ଞͷʁٿͰͷϦϑϨογϡɻϖΞͱͷ࿈ܞྗ্
ଞͷʁۀېࢭʢཧ৬ͪΐͬͱ͚͍ͩʣ
ͦͷ݁Ռ͓͖ͨ͜ͱ• ۀ͕ݮͬͨ• ペアプロは疲れるのもある• 新しいことに時間を使える• ҙݟަ͕׆ൃʹ• ϏδωεΛࢭΊͳ͍γεςϜมߋ
·ͱΊٕज़Ξϓϩʔν• ͘͢Δ͜ͱΛٻ৫Ξϓϩʔν• ձΛ૿͢• ҰਓΑΓೋਓͷߟ͑
͋͘Γଓ͚Δ͜ͱϞμϯͷۙಓ