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
24時間止まらないFlutterアプリの作り方
Search
岸本 亮太
November 13, 2025
Technology
0
160
24時間止まらないFlutterアプリの作り方
岸本 亮太
November 13, 2025
Tweet
Share
More Decks by 岸本 亮太
See All by 岸本 亮太
GitHub Codespacesで実現するブラウザ上でのFlutter開発
ryotakishimoto
0
340
Other Decks in Technology
See All in Technology
Embeddings : Symfony AI en pratique
lyrixx
0
350
Kubernetesの「隠れメモリ消費」によるNode共倒れと、Request適正化という処方箋
g0xu
0
140
Phase11_戦略的AI経営
overflowinc
0
1.7k
脳が溶けた話 / Melted Brain
keisuke69
1
1.1k
CREがSLOを握ると 何が変わるのか
nekomaho
0
130
AIエージェント勉強会第3回 エージェンティックAIの時代がやってきた
ymiya55
0
130
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
250
LLMに何を任せ、何を任せないか
cap120
10
5.8k
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
110
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
380
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
qa
0
340
PostgreSQL 18のNOT ENFORCEDな制約とDEFERRABLEの関係
yahonda
0
130
Featured
See All Featured
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.2k
The Invisible Side of Design
smashingmag
302
51k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
250
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
220
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
330
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The Curious Case for Waylosing
cassininazir
0
280
Six Lessons from altMBA
skipperchong
29
4.2k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
190
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
93
Transcript
24時間止まらないFlutterアプリの 作り方 Flutterアプリでキオスクモード実装
自己紹介 名前: きしもと 所属: サイバーエージェント 好きなもの: 猫、ゲーム、ボードゲーム
24時間止まらないとは?
24時間止まらないとは? 今回は 端末上で24時間同じアプリを表示し続ける = キオスクモード の話をします
どんな場面で使われるか? ・ 店舗の注文端末 ・ 受付システム ・ 工場の管理端末 ・ デジタルサイネージ
どんな機能が必要? 基本的な制御 ・ 一つのアプリだけを使わせる ・ 他の画面に移動させない ・ 通知を表示しない より高度な制御 ・
ハードウェアボタンの無効化 ・ 画面の常時点灯
どんな機能が必要? iOS・Android それぞれで 簡易的な実装方法 と本格的な実装方法 を紹介します
iOS - 簡易的な実装方法 アクセスガイド( Guided Access) ・ 特定のアプリに画面を固定 ・ 通知センター・コントロールセンターを無効化
・ 画面の自動ロック無効化も可能
アクセスガイド - 設定 事前に端末設定が必要 1. 設定アプリ → アクセシビリティ → アクセスガイド
2. アクセスガイドをONにする ・ 解除時のFace ID設定 ・ 画面の自動ロックを無効化(アクセスガイド起動中)
使い方 電源ボタン 3回押しで起動 1. 固定したいアプリを開く 2. 電源ボタンを3回押す 3. 「開始」をタップ 4.
画面が固定される 解除も電源ボタン3回押し → パスコード/Face ID
iOS - 本格的な実装方法 監視モード (Supervised Mode) + シングルアプリモード (Single App
Mode) 端末を企業管理下に置き、特定アプリに固定する仕組み ・ 監視モード:端末を企業が完全管理 ・ シングルアプリモード:特定アプリのみ起動
監視モードの設定方法 方法1: 設定済み企業管理アカウントで初期設定時にログイン 方法2: Apple Configuratorで設定 その後、(自律的)シングルアプリモードを設定したプロファイルをインストール
kiosk_modeパッケージの活用 監視モード + シングルアプリモードなら自動制御が可能 アクセスガイドと違い、シングルアプリモードの切り替えをコードから制御できる
Android - 簡易的な実装方法 アプリ固定( Screen Pinning) ・ 特定のアプリに画面を固定 ・ システムUIへのアクセスを遮断
・ 「戻る+タスクボタン」長押しで解除(パスコード設定可)
アプリ固定の設定 事前設定 1. 設定 → セキュリティ → アプリ固定をON 2. 解除時に画面ロックを確認をON(推奨)
使い方 1. 固定したいアプリを開く 2. タスクボタンでタスク一覧を表示 3. アプリの「固定」をタップ 解除は「戻る+タスクボタン」長押し後、パスコード認証
kiosk_modeパッケージでの実装 iOSと同じコードで実装可能 アプリ固定の切り替えをコードから制御できる
Android - 本格的な実装方法 デバイス所有者モード (Device Owner) + ロックタスクモード (Lock task
mode) 端末を専用機として完全管理するモード ・ デバイス所有者モード:端末のシステムレベルでの完全な制御 ・ ロックタスクモード:特定アプリのみ起動
デバイス所有者モードを使うための準備 2つの設定が必要 1. アプリ側:Native実装の追加 2. 端末側:デバイス所有者モードの有効化
kiosk_modeパッケージでの実装 ロックタスクモードの切り替えをコードから制御できる
24時間止まらないアプリの運用で重要なこと ・ アプリの自動更新 ・ 監視・ログ収集 ・ 万が一のための仕組み
アプリの自動更新 デバイス所有者モードを用いたアプリは一般公開に向かないため独自の更新手段が必要 android_package_installerパッケージを使用 通常のアプリ: ・ インストール時にユーザーの手動承認が必要 デバイス所有者モードがあれば: ・ 承認なしで自動インストール ・
アプリストアのような自動更新を実現
監視・ログ収集 ・ アプリのクラッシュ検知 ・ 定期的なヘルスチェック ・ 詳細なログ収集・分析 Firebase Crashlyticsなどの活用を推奨
万が一のための仕組み 遠隔でアプリを再起動できるようにしておく Firebase Messaging + restart_appパッケージで実装 プッシュ通知で遠隔から復旧可能
まとめ 簡易的な実装 ・ iOS: アクセスガイド ・ Android: アプリ固定 本格的な実装 ・
iOS: 監視モード + シングルアプリモード ・ Android: デバイス所有者モード + ロックタスクモード kiosk_modeパッケージが便利
ご清聴ありがとうございました 24時間止まらない Flutterアプリの作り方