Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
awa-caswift-11
Search
Jin Sasaki
January 30, 2020
Programming
0
1.1k
awa-caswift-11
CA.swift #11 での登壇資料です。
許諾の関係で一部登壇内容・画像が抜けています。
Jin Sasaki
January 30, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
Cell-Based Architecture
larchanjo
0
100
手軽に積ん読を増やすには?/読みたい本と付き合うには?
o0h
PRO
1
170
從冷知識到漏洞,你不懂的 Web,駭客懂 - Huli @ WebConf Taiwan 2025
aszx87410
1
970
Level up your Gemini CLI - D&D Style!
palladius
1
180
20 years of Symfony, what's next?
fabpot
2
350
dnx で実行できるコマンド、作ってみました
tomohisa
0
140
connect-python: convenient protobuf RPC for Python
anuraaga
0
380
Developing static sites with Ruby
okuramasafumi
0
250
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
120
AIの誤りが許されない業務システムにおいて“信頼されるAI” を目指す / building-trusted-ai-systems
yuya4
6
2.4k
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
590
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
22k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Become a Pro
speakerdeck
PRO
31
5.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
GraphQLとの向き合い方2022年版
quramy
50
14k
Raft: Consensus for Rubyists
vanstee
141
7.2k
A designer walks into a library…
pauljervisheath
210
24k
We Have a Design System, Now What?
morganepeng
54
7.9k
Navigating Team Friction
lara
191
16k
Why Our Code Smells
bkeepers
PRO
340
57k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.7k
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