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.5k
複雑なステート管理をらくにするステートマシンを使ったアプローチ
モバイルアプリのステート管理に役立つステートマシンの紹介をします。
Tomoki Yamashita
December 22, 2022
Tweet
Share
More Decks by Tomoki Yamashita
See All by Tomoki Yamashita
STORES_決済端末2ってAndroidなんでしょ__ほんとうかな__.pdf
tomorrowkey
0
32
モバイルとRubyとわたし
tomorrowkey
0
44
BiDiってなんだ?
tomorrowkey
2
580
文字列操作の達人になる ~ Kotlinの文字列の便利な世界 ~ - Kotlin fest 2025
tomorrowkey
2
1.1k
Ebisu mobile #11 - Predictive Backに対応する
tomorrowkey
1
130
AI協同時代にモバイルエンジニアが備えるべき開発環境の話
tomorrowkey
2
420
5分で完全理解するNav3との向き合い方
tomorrowkey
0
190
テストを楽に書きたい
tomorrowkey
2
410
Gradle Build Scanを使ってビルドのことを知ろう potatotips #87
tomorrowkey
2
1.3k
Other Decks in Technology
See All in Technology
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4k
Kaggleで鍛えたスキルの実務での活かし方 競技とプロダクト開発のリアル
recruitengineers
PRO
1
160
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
1
1.1k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
7
7.1k
チームメンバー迷わないIaC設計
hayama17
5
3.8k
Eight Engineering Unit 紹介資料
sansan33
PRO
1
6.9k
Digitization部 紹介資料
sansan33
PRO
1
7k
ヘルシーSRE
tk3fftk
2
240
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
どこで打鍵するのが良い? IaCの実行基盤選定について
nrinetcom
PRO
2
170
OCI Security サービス 概要
oracle4engineer
PRO
2
13k
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
3
330
Featured
See All Featured
The Limits of Empathy - UXLibs8
cassininazir
1
240
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
120
The Curse of the Amulet
leimatthew05
1
9.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
950
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Mobile First: as difficult as doing things right
swwweet
225
10k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
100
The agentic SEO stack - context over prompts
schlessera
0
680
Music & Morning Musume
bryan
47
7.1k
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