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
業務アプリの切札 Programable KIOSK mode 大全
Search
r-plus
September 17, 2017
Technology
0
4.2k
業務アプリの切札 Programable KIOSK mode 大全
iOSDC 2017資料
r-plus
September 17, 2017
Tweet
Share
More Decks by r-plus
See All by r-plus
Swizzling Swizzling Swizzling
r_plus
0
370
Image optimization for mobile on CDN
r_plus
0
630
Advanced guard of DeallocationChecker
r_plus
2
3k
東急ハンズの P2Pレジ間通信2018
r_plus
4
2k
enum as Option.
r_plus
0
2.2k
Enterprise cert management.
r_plus
0
380
CircleCI 2.0 for macOS
r_plus
1
1.3k
carthage verify
r_plus
2
5.9k
PropertyObserverとinoutでやらかした話
r_plus
1
1.2k
Other Decks in Technology
See All in Technology
P2P ではじめる WebRTC のつまづきどころ
tnoho
1
220
本当にわかりやすいAIエージェント入門
segavvy
10
6k
「手を動かした者だけが世界を変える」ソフトウェア開発だけではない開発者人生
onishi
14
5.9k
Wasmで社内ツールを作って配布しよう
askua
0
130
ML Pipelineの開発と運用を OpenTelemetryで繋ぐ @ OpenTelemetry Meetup 2025-07
getty708
0
280
With Devin -AIの自律とメンバーの自立
kotanin0
2
110
Building GoReleaser - from shell script to paid product
caarlos0
0
270
地図と生成AI
nakasho
0
720
OTel 公式ドキュメント翻訳 PJ から始めるコミュニティ活動/Community activities starting with the OTel official document translation project
msksgm
0
260
2025/07/22_家族アルバム みてねのCRE における生成AI活用事例
masartz
2
110
AWS Well-Architected から考えるオブザーバビリティの勘所 / Considering the Essentials of Observability from AWS Well-Architected
sms_tech
1
860
QAを早期に巻き込む”って どうやるの? モヤモヤから抜け出す実践知
moritamasami
2
180
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
710
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
BBQ
matthewcrist
89
9.7k
Building Adaptive Systems
keathley
43
2.7k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
130
19k
Building Applications with DynamoDB
mza
95
6.5k
Six Lessons from altMBA
skipperchong
28
3.9k
Music & Morning Musume
bryan
46
6.7k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.7k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Transcript
ۀΞϓϦͷࡳ Programable KIOSK mode େશ 9/17 iOSDC 2017 taiki komaba(@r_plus)
UBJLJLPNBCB !S@QMVT )"/%4-"#*/$
,*04, BLB4JOHMF"QQ.PEF
Programable Require Supervision Require MDM Guided Access No No No
SingleApp Mode No Yes No ࣗత SAM Yes Yes Yes ࣗಈධՁ ઃఆ Yes No No
Guided Access
SS͓͘
GUIDED ACCESS ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ ϘϦϡʔϜϘλϯ ▸ ΩʔϘʔυ
▸ λον ▸ ը໘ճస
GUIDED ACCESS ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ ϘϦϡʔϜϘλϯ ▸ ΩʔϘʔυ
▸ λον ▸ ը໘ճస ⚠ଟͷσόΠε੍ޚʹ͔ͳ͍
SingleAppMode
Apple Configurator
MDM
SINGLE APP MODE ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ ϘϦϡʔϜϘλϯ ▸
ΩʔϘʔυ ▸ λον ▸ ը໘ճస ▸ AssistiveTouch ▸ ζʔϜ ▸ ৭స ▸ VoiceOver
SINGLE APP MODE ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ ϘϦϡʔϜϘλϯ ▸
ΩʔϘʔυ ▸ λον ▸ ը໘ճస ▸ AssistiveTouch ▸ ζʔϜ ▸ ৭స ▸ VoiceOver ଟͷσόΠεʹEFQMPZՄೳ
SINGLE APP MODE ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ ϘϦϡʔϜϘλϯ ▸
ΩʔϘʔυ ▸ λον ▸ ը໘ճస ▸ AssistiveTouch ▸ ζʔϜ ▸ ৭స ▸ VoiceOver ଟͷσόΠεʹEFQMPZՄೳ ͔͠͠"1*͕͑ͳ͍
ࣗత SingleAppMode
ࣗతSINGLE APP MODE ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ Multitasking ΞϓϦͷΈར༻Մʹ͢Δత
ແޮԽͰ͖Δ߲͕গͳ͘ઃఆෆՄ
ࣗಈධՁઃఆ (Automatic Assessment Configuration)
ࣗಈධՁઃఆ ▸ ϗʔϜϘλϯ ▸ εϦʔϓ/ϩοΫϘλϯ ▸ Multitasking ▸ ࣗಈิ/εϖϧνΣοΫ/༧ଌม/ΩʔϘʔυγϣʔτΧοτ/ ΫϦοϓϘʔυ/Իೖྗ
ࢼݧར༻ͷͨΊͷ,JPTL ΞϓϦͷΈར༻ՄʹՃ͑ͯ ճิॿʹͳΔΑ͏ͳػೳͷແޮԽ
Programable Require Supervision Require MDM Guided Access No No No
SingleApp Mode No Yes No ࣗత SAM Yes Yes Yes ࣗಈධՁ ઃఆ Yes No No
Programable Require Supervision Require MDM Guided Access No No No
SingleApp Mode No Yes No ࣗత SAM Yes Yes Yes ࣗಈධՁ ઃఆ Yes No No
)PXUP FOBCMF QSPHSBNBCMF
func UIAccessibilityRequestGuidedAccessSession (_ enable: Bool, completionHandler: @escaping (Bool) -> Void)
UIAccessibilityRequestGuidedAccessSession(true) { success in print(success) } ⚠completionHandler͕࣮ߦ͞ΕΔ·Ͱඦmsఔ͔͔Δ
-PDLBCMF
εϦʔϓϩοΫϘλϯ ແޮԽର
͔͠͠ ͨ·ʹϩοΫͰ͖Δ
None
ϩοΫͰ͖ ·ͨ͠
Ͱɺ͜Εηʔϑ
ը໘ফ౮͞Ε͍ͯΔ͚ͩ ϩοΫղআը໘ग़ͳ͍
,JPTL $SBTI
,JPTLϞʔυͰ Ϋϥογϡͨ࣌͠ Ͳ͏ͳΔ͔ʁ
ϗʔϜը໘ʹભҠޙ ࣗಈతʹΞϓϦ͕ىಈ
None
(͏·͘ىಈ͠·ͨ͠)
ఆظతͳ FYJU ͰϝϞϦͷΫϦΞ͕Մೳ
ͱࢥ͍͖ɾɾɾ
None
ΘΓͱىಈ͠ͳ͍
͔͠
ΞϓϦΛλοϓͯ͠ ىಈ͠ͳ͍
શΞϓϦɺλοϓͯ͠ ىಈ͠ͳ͍☠
XPSLBSPVOE ͋Γ·͢
,JPTLΦϑͰͷ$SBTI ͳΒൃੜ͠ͳ͍
func NSSetUncaughtExceptionHandler(_: ((NSException) -> Void)?)
func NSSetUncaughtExceptionHandler { exception in UIAccessibilityRequestGuidedAccessSession(false){ _ in } }
4XJGUͷΫϥογϡͰ ݺΕͳ͍ func NSSetUncaughtExceptionHandler { exception in UIAccessibilityRequestGuidedAccessSession(false){ _ in
} }
4XJGUͷΫϥογϡ OJMVOXSBQFUD ⚡γάφϧ⚡͕ඈͿ͚ͩɻ
SIGNALS ▸ SIGHUP ▸ SIGINT ▸ SIGTRAP ▸ SIGABRT ▸
SIGKILL ▸ SIGSEGV ▸ … NBOTJHOBMͰ৭ʑݟΕ·͢
⚡γάφϧ⚡Λτϥοϓ͠Α͏
import Darwin func sigaction(_: Int32, _: UnsafePointer<sigaction>!, _: UnsafeMutablePointer<sigaction>!) ->
Int32 int sigaction(int sig, const struct sigaction *restrict act, struct sigaction *restrict oact); JO$ NBOTJHBDUJPOͰ৭ʑݟΕ·͢ *#.4XJGU#MVF4JHOBMT͕Φεεϝ
·ͱΊ ▸ KioskϞʔυʹ4छྨ͋Δɺ੍ݶͰ͖ΔػೳͦΕͧΕҧ͏ ▸ API͕͑Δͷͱ͑ͳ͍KioskϞʔυ͕͋Δ ▸ KioskϞʔυͰϓϩηε͕ऴྃ͢ΔͱࣗಈͰ࠶ىಈ͞ΕΔ ▸ ࣗಈతͳ࠶ىಈத్ͳঢ়ଶʹͳΔࣄ͕͋Δ ▸
த్ͳঢ়ଶʹͳΔͱ٧Ή ▸ ٧·ͳ͍ͨΊʹNSExceptionͱSIGNALΛΩϟον͠Α͏ʂ
͓ΘΓɻ