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
1.4k
複雑なステート管理をらくにするステートマシンを使ったアプローチ
モバイルアプリのステート管理に役立つステートマシンの紹介をします。
Tomoki Yamashita
December 22, 2022
Tweet
Share
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
1
300
5分で完全理解するNav3との向き合い方
tomorrowkey
0
100
テストを楽に書きたい
tomorrowkey
2
360
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.1k
Compose Compiler Metricsを使った実践的なコードレビュー
tomorrowkey
1
860
Strong Skipping Modeをはじめよう
tomorrowkey
0
5.5k
あなたの知らないJetpackの世界 - DroidKaigi.collect { #7@Tokyo }
tomorrowkey
0
590
Auto Backupに対応する
tomorrowkey
0
350
これから始める秘匿情報との使い方
tomorrowkey
0
710
Other Decks in Technology
See All in Technology
Microsoft Learn MCP/Fabric データエージェント/Fabric MCP/Copilot Studio-簡単・便利なAIエージェント作ってみた -"Building Simple and Powerful AI Agents with Microsoft Learn MCP, Fabric Data Agent, Fabric MCP, and Copilot Studio"-
reireireijinjin6
1
160
KCD Lima: eBee in Peru!
lizrice
0
110
DatabricksのOLTPデータベース『Lakebase』に詳しくなろう!
inoutk
0
160
データエンジニアがクラシルでやりたいことの現在地
gappy50
3
680
増え続ける脆弱性に立ち向かう: 事前対策と優先度づけによる 持続可能な脆弱性管理 / Confronting the Rise of Vulnerabilities: Sustainable Management Through Proactive Measures and Prioritization
nttcom
1
210
Kiroから考える AIコーディングツールの潮流
s4yuba
1
370
MCPと認可まわりの話 / mcp_and_authorization
convto
2
290
人と生成AIの協調意思決定/Co‑decision making by people and generative AI
moriyuya
0
170
自分がLinc’wellで提供しているプロダクトを理解するためにやったこと
murabayashi
1
170
興味の胞子を育て 業務と技術に広がる”きのこ力”
fumiyasac0921
0
290
ユーザー理解の爆速化とPdMの価値
kakehashi
PRO
1
110
Wasmで社内ツールを作って配布しよう
askua
0
150
Featured
See All Featured
Git: the NoSQL Database
bkeepers
PRO
431
65k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Facilitating Awesome Meetings
lara
54
6.5k
Art, The Web, and Tiny UX
lynnandtonic
301
21k
Being A Developer After 40
akosma
90
590k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
760
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.8k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
How GitHub (no longer) Works
holman
314
140k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
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