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
0
1.1k
awa-caswift-11
CA.swift #11 での登壇資料です。
許諾の関係で一部登壇内容・画像が抜けています。
Jin Sasaki
January 30, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
880
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
240
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
220
AIエージェントはこう育てる - GitHub Copilot Agentとチームの共進化サイクル
koboriakira
0
480
Blazing Fast UI Development with Compose Hot Reload (droidcon New York 2025)
zsmb
1
270
Discover Metal 4
rei315
2
110
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
550
童醫院敏捷轉型的實踐經驗
cclai999
0
210
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
530
5つのアンチパターンから学ぶLT設計
narihara
1
130
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
590
GraphRAGの仕組みまるわかり
tosuri13
8
500
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
Docker and Python
trallard
44
3.4k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
The Language of Interfaces
destraynor
158
25k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.8k
Gamification - CAS2011
davidbonilla
81
5.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
680
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
RailsConf 2023
tenderlove
30
1.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
490
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