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
awa-caswift-11
Search
Jin Sasaki
January 30, 2020
Programming
1.1k
0
Share
awa-caswift-11
CA.swift #11 での登壇資料です。
許諾の関係で一部登壇内容・画像が抜けています。
Jin Sasaki
January 30, 2020
Other Decks in Programming
See All in Programming
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
360
OSもどきOS
arkw
0
400
net-httpのHTTP/2対応について
naruse
0
430
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
130
RTSPクライアントを自作してみた話
simotin13
0
440
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.5k
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.3k
Claspは野良GASの夢をみるか
takter00
0
160
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
140
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
GitHub Copilot CLIのいいところ
htkym
2
1.3k
ふつうのFeature Flag実践入門
irof
7
3.5k
Featured
See All Featured
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
Chasing Engaging Ingredients in Design
codingconduct
0
210
Designing for humans not robots
tammielis
254
26k
Everyday Curiosity
cassininazir
0
220
Site-Speed That Sticks
csswizardry
13
1.2k
What's in a price? How to price your products and services
michaelherold
247
13k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
WENDY [Excerpt]
tessaabrams
11
38k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
260
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
So, you think you're a good person
axbom
PRO
2
2k
Transcript
5ʹಥೖͨ͠AWAͷ ΞϓϦઃܭ 2020/01/30 Jin Sasaki
iOS Engineer 2015/04 - CyberAgent 2015/06 - AWA Jin Sasaki
jinSasaki @sasakky_j
None
Agenda 1. AWA 2. History 3. v1.0 → v2.0 4.
Apple Watch 5. Future
None
• ఆ੍ֹԻָετϦʔϛϯάαʔϏε • αϙʔτOS iOS 9.0 ~
ମ੍ iOS Android Server Backend × 10 (avex) PC/Web Design
Analysis Direction QA ίϯςϯπ ϓϩσϡʔε 5໊ ίϯςϯπ Ϛωδϝϯτ 6໊ ϓϩϞʔγϣϯ 4໊
History
2014 08 ϓϩδΣΫτൃ 10 ։ൃମ੍มߋ
2015 02-03 ։ൃମ੍มߋ 05 AWA 1.0 ϩʔϯν 06 ։ൃମ੍มߋ &
SwiftԽ։࢝ 10 ։ൃମ੍มߋ 08 STANDARDϓϥϯϦϦʔε
2016 02 CarPlayରԠ 11 FREEϓϥϯϦχϡʔΞϧ 06 ։ൃମ੍มߋ 03 ։ൃମ੍มߋ
2017 02 WidgetରԠ 07 Իָೝࣝػೳ 11 ΠίϥΠβػೳ
2018 02 SwiftԽྃ 04 AWA 2.0 ։ൃணख 12 TikTok࿈ܞ 07
ؒϓϥϯ 09 ৽τϥΠΞϧ
2019 01 AWA v2.0 ϦϦʔε 10 Apple WatchΞϓϦϦϦʔε 09 ೝূج൫Ҡߦ
& SiriରԠ 04 ࣸਅͰԻָػೳ 07 ։ൃମ੍มߋ
v1.0 → v2.0
ϓϩμΫτಛੑ • ΦϑϥΠϯͰར༻Ͱ͖Δɾ࠶ੜͰ͖Δ • ΦϯϥΠϯͱಉʹ͑ΔϨϕϧͰΩϟογϡ͕ඞཁ • ָۂใͷؔੑ • τϥοΫ/ΞϧόϜ/ΞʔςΟετ/ϓϨΠϦετ/Ϣʔβ •
ϓϨΠϠʔͲͷը໘͔ΒͰͷΞΫηεͰ͖Δ
v1 Architecture View Controller Model View ViewController Service Realm API
v1 Architecture View Controller Model View ViewController Service Realm API
State State Logic Logic State Realm Object
TSURAMI • MVC and Massive View Controller • 2,000 -
3,000ߦ͟Β • View - Controllerؒͷนͷബ͞ • View͢Βঢ়ଶΛ͍࣋ͬͯΔ • Controller͕͔ͳΓͷΛ͍࣋ͬͯΔ • Modelͷׂ͕ෆ໌ྎ • ϩδοΫΛ࣋ͭEntity • ສೳManager • ਆUtil • ͯ͢ͷͰRealmʹґଘ • ϦϓϨΠε͕ࠔ
v2.0 - εϦϜԽϓϩδΣΫτ - • ϑϧεΫϥον։ൃ • ٕज़બఆ·ͬ͞Βͳঢ়ଶ͔Βελʔτ • Background
• ͜ͷ3ؒͰ૿͖͑ͯͨΞϓϦͷ༷ɺػೳɺUIͯ͢ΛҰͯ͢ཧ • ෆཁͳͷ/ॏෳ͍ͯ͠ΔͷΛഉআ͠Ϣʔβͷ͍উख͔ΒΧςΰϥΠζ • ͯ͢ͷը໘ɾػೳʹख͕ೖΔ → ࡞Γ͢ྑ͍ػձ
GOAL of v2.0 Design • ֤ʢಛʹModelʣΛ໌֬ʹ͠ɺ୭͕ཧղɾमਖ਼Ͱ͖Δ • ঢ়ଶΛ֤ॴʹࢄΒͤͳ͍͜ͱ • Realm͍ͭͭɺRealmґଘ͔Βͷ٫ʢϦϓϨΠε͍͢͠ڥʣ
• Reactive Programming
ٕज़બఆ - ઃܭ - MVC MVP MVVM Flux Redux Clean
ٕज़બఆ - ઃܭ - MVC MVP MVVM Flux Redux Clean
v2 Architecture UICatalog AWA Core Domain Data UI
v2 Architecture UICatalog AWA Core Domain Data UI realm API
Repository DataStore State Logic Logic Realm Object
None
Timeline
Timeline
ϑϧεΫϥον։ൃ • ͬͯΑ͔ͬͨ • v1ͷෛ࠴ղফʹߩݙͰ͖ͨ͠ɺ৽ن։ൃΓ͘͢ͳͬͨ • ͔͠͠ࣄۀͳͷͰଞʹΔ͜ͱ͋Γɺฒߦͯ͠طଘͷ։ൃ͕ൃੜ͢Δͷେม • ϞνϕʔγϣϯΩʔϓେม •
ং൫ෛ࠴ղফͰεοΩϦ • ్த͔ΒҰาਐΜͰೋาԼ͕Δײ֮ • ʮ͜Ε͍͔ͭ͢Δͷ͔….ʁʯ͕ͣͬͱ಄ʹډ࠲Δ
Apple Watch
AWA for Apple Watch • iPhoneΞϓϦͷϦϞʔτίϯτϩʔϧ • ୯ମͰͷετϦʔϛϯά࠶ੜ ※ watchOS
6Ҏ߱ & Series 3Ҏ߱ • MVVM with SwiftUI × Combine • watchOS 6.0Ҏ߱ͳͷͰ߈Ί·ٕͬͨ͘ज़બఆ
Architecture View ViewModel Model View ViewModel Connectivity API CoreData iPhone
ObservableObject AnyPublisher Request @ObservedObject
TSURAMI • ͑ͳ͍ओཁϥΠϒϥϦ͕·ͩ·ͩଟ͍ • Firebase, Crashlytics, XCTest… • ΞϓϦసૹ͕ۃʹ͍ͷͰόΠφϦΛখ͘͢͞Δඞཁ͕͋Δ •
Realm, RxSwiftஅ೦ → CoreDataͱCombine • ͦΕͰ࣮ػͰσόοά͢Δͷʹ1ճ15 • watchOS × SwiftUIىҼͷෆ۩߹(Xcode betaڥ͚͔ͩͩͬͨͰ͕͢) • SwiftUIͷ @Published Λ͏ͱΫϥογϡ • ભҠޙʹભҠݩͷViewͷbody͕ߋ৽͞ΕΔͱભҠઌͰΫϥογϡ • EnvironmentObject͕Ҿ͚ͳ͍
Future
ࠓޙͷઃܭपΓͷऔΓΈ • ViewController͔ΒΛണ͕͢ • VC͕ঢ়ଶΛ͍࣋ͬͯΔέʔεɺϩδοΫΛ͍࣋ͬͯΔέʔε͕ଘࡏ͢ΔͷͰׂ • PlatformΛ·͍ͨͩઃܭͷڞ௨Խ • ࠶ੜΩϡʔߏͳͲɺiOS/Android/PCʹґଘͤͣڞ௨༷/࣮Ͱ͋Δ͖ •
ςελϏϦςΟͷ্
None