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
複雑なステート管理をらくにするステートマシンを使ったアプローチ
Search
Tomoki Yamashita
December 22, 2022
Technology
0
960
複雑なステート管理をらくにするステートマシンを使ったアプローチ
モバイルアプリのステート管理に役立つステートマシンの紹介をします。
Tomoki Yamashita
December 22, 2022
Tweet
Share
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
180
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
270
Strong Skipping Modeをはじめよう
tomorrowkey
0
2.2k
あなたの知らないJetpackの世界 - DroidKaigi.collect { #7@Tokyo }
tomorrowkey
0
380
Auto Backupに対応する
tomorrowkey
0
200
これから始める秘匿情報との使い方
tomorrowkey
0
560
Other Decks in Technology
See All in Technology
AWS CLIの起動が重くてつらいので aws-sdk-client-go を書いた / kamakura.go#6
fujiwara3
4
2k
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
Taking Flight with Tailwind CSS
opdavies
0
4.3k
AWS Observability 関連最新アップデート
o11yfes2023
0
100
TiDBにおけるテーブル設計と最適化の事例
cygames
0
790
Google Cloudを組織(企業)で運用する時のベストプラクティス × 健康の環境分離戦略 #まるクラ勉強会
yasumuusan
0
170
Blazor WASM × Code-first gRPC で始める C# ⼤統⼀理論
sansantech
PRO
0
120
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.8k
汎用ポリシー言語Rego + OPAと認可・検証事例の紹介 / Introduction Rego & OPA for authorization and validation
mizutani
1
130
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
800
QAエンジニアが伝えたい品質保証の羅針盤 / Compass for Quality Assurance
mii3king
1
320
エムスリーマルチデバイスチーム紹介資料 / Introduction of M3 Multi Device Team
m3_engineering
0
150
Featured
See All Featured
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Large-scale JavaScript Application Architecture
addyosmani
504
110k
Build your cross-platform service in a week with App Engine
jlugia
226
17k
Building an army of robots
kneath
300
41k
Imperfection Machines: The Place of Print at Facebook
scottboms
261
12k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Code Reviewing Like a Champion
maltzj
515
39k
Producing Creativity
orderedlist
PRO
338
39k
A better future with KSS
kneath
231
16k
Visualization
eitanlees
137
14k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Transcript
potatotips #80 - 2022.12.22 @tomorrowkey
/ STORES STORES <- <- Android @tomorrowkey
STORES
https://www.st.inc/news/2022-12-19-brandedapp-shopify
WebView
WebView (Native/HTML/Javascript ) WebView
WebView (Native/HTML/Javascript ) WebView
WebView viewDidLoad(), onCreate() API …
WebView viewDidLoad(), onCreate() API … Web Web API JavaScript
None
Web
None
None
Event.LoginPageShown Event.LoginPageShown Event.LoginScriptExecuted Event.TopPageShown Event.LoadingObserverLaunched Event.LoginPageShown Event.CheckInButtonClicked Event.CheckOutButtonClicked CheckInScriptExecuted Event.ClockShown
Event.ErrorShown Event.ClockShown State.Init State.WaitForLogin State.WaitForAuth State.WaitForLoadingObserverLaunch State.WaitForCheckIn State.WaitForCheckInScriptExecuted State.CheckInLoading State.ErrorShown
StateMachine.create { initialState(Init) state<Init> { on<LoginPageShown> { transitionTo(WaitForLogin) } }
state<WaitForLogin> { on<LoginPageShown> { transitionTo(WaitForLogin) } on<LoginScriptExecuted> { transitionTo(WaitForAuth) } } state<WaitForAuth> { on<TopPageShown> { transitionTo(WaitForLoadingObserver on<LoginPageShown> { transitionTo(WaitForLogin) } } state<WaitForLoadingObserverLaunch> { on<LoadingObserverLaunched> { transitionTo(WaitForChec Tinder/StateMachine
None
None