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
190
0
Share
24時間止まらないFlutterアプリの作り方
岸本 亮太
November 13, 2025
More Decks by 岸本 亮太
See All by 岸本 亮太
GitHub Codespacesで実現するブラウザ上でのFlutter開発
ryotakishimoto
0
380
Other Decks in Technology
See All in Technology
エンジニアは生成AIと どのように向き合うべきか? ことばの意味という観点から
verypluming
3
200
Generative UI × A2UI で AI エージェントを作った話 AI-DLC も使ってみた!
kmiya84377
1
160
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
870
権限管理設計を完全に理解した
rsugi
2
200
eBPF Can Do It! A 5-Minute Tour of 5 Real-World PHP Issues Solved with eBPF
egmc
0
140
生成AIに振り回されない 〜確率論と決定論の使い分け〜
shukob
0
110
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
110
Amazon CloudFrontにおけるAIボットアクセス制御のポイント
kizawa2020
4
270
EdgeプロファイルでAWSアカウントを安全に使い分ける
jhashimoto
0
100
自称宇宙最速で不合格となったAIP-C01にリベンジを果たすべくAIで問題集アプリを作ってみた。
yama3133
0
140
シンデレラなんかになりたくない!ガラスの靴が割れた時代にどう歩く?
nomizone
0
190
開発にAIを組織として取り入れる一歩目とその後
yujishibuya
0
220
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
The Invisible Side of Design
smashingmag
302
52k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
170
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.8k
Leo the Paperboy
mayatellez
7
1.8k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
240
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
190
Mobile First: as difficult as doing things right
swwweet
225
10k
Navigating Team Friction
lara
192
16k
The Limits of Empathy - UXLibs8
cassininazir
1
340
Building an army of robots
kneath
306
46k
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アプリの作り方