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
スクラムに出会って「できた」を実感できるようになってきた話 / Scrum makes me feel like I can do it
yayoi_dd
2
110
AI JIMY - 登壇(インストール編)
hanacchi
0
150
TiDBにおけるテーブル設計と最適化の事例
cygames
0
790
汎用ポリシー言語Rego + OPAと認可・検証事例の紹介 / Introduction Rego & OPA for authorization and validation
mizutani
1
130
RubyKaigi 2024 - Make Your Own Regex Engine!
makenowjust
0
130
Prisma ORMを2年運用して培ったノウハウを共有する
tockn
19
5k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
38k
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
2
1.7k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
36k
エンジニアゼロの組織から内製開発の DX をどう実現したのか / How did we achieve DX in in-house development in an organization with zero engineers?
genkiogasawara
6
2.9k
20240509 CloudWatch でいろいろなものを監視してみよう
masaruogura
1
120
グイグイ系QAエンジニアでやっていくよ!
____rina____
0
750
Featured
See All Featured
Building Your Own Lightsaber
phodgson
100
5.7k
What the flash - Photography Introduction
edds
64
11k
A better future with KSS
kneath
231
16k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
21
1.6k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
VelocityConf: Rendering Performance Case Studies
addyosmani
321
23k
Teambox: Starting and Learning
jrom
128
8.4k
Automating Front-end Workflow
addyosmani
1357
200k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
What's in a price? How to price your products and services
michaelherold
238
11k
Typedesign – Prime Four
hannesfritz
36
2.1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
14
1.5k
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