Upgrade to Pro — share decks privately, control downloads, hide ads and more …

業務アプリの切札 Programable KIOSK mode 大全

r-plus
September 17, 2017

業務アプリの切札 Programable KIOSK mode 大全

iOSDC 2017資料

r-plus

September 17, 2017
Tweet

More Decks by r-plus

Other Decks in Technology

Transcript

  1. ۀ຿ΞϓϦͷ੾ࡳ
    Programable KIOSK mode
    େશ
    9/17 iOSDC 2017
    taiki komaba(@r_plus)

    View full-size slide

  2. UBJLJLPNBCB
    !S@QMVT

    )"/%4-"#*/$

    View full-size slide

  3. ,*04,
    BLB4JOHMF"QQ.PEF

    View full-size slide

  4. Programable
    Require
    Supervision
    Require
    MDM
    Guided
    Access
    No No No
    SingleApp
    Mode
    No Yes No
    ࣗ཯త
    SAM
    Yes Yes Yes
    ࣗಈධՁ
    ઃఆ
    Yes No No

    View full-size slide

  5. Guided Access

    View full-size slide

  6. GUIDED ACCESS
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ ϘϦϡʔϜϘλϯ
    ▸ ΩʔϘʔυ
    ▸ λον
    ▸ ը໘ճస

    View full-size slide

  7. GUIDED ACCESS
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ ϘϦϡʔϜϘλϯ
    ▸ ΩʔϘʔυ
    ▸ λον
    ▸ ը໘ճస
    ⚠ଟ਺ͷσόΠε੍ޚʹ͸޲͔ͳ͍

    View full-size slide

  8. SingleAppMode

    View full-size slide

  9. Apple Configurator

    View full-size slide

  10. SINGLE APP MODE
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ ϘϦϡʔϜϘλϯ
    ▸ ΩʔϘʔυ
    ▸ λον
    ▸ ը໘ճస
    ▸ AssistiveTouch
    ▸ ζʔϜ
    ▸ ৭൓స
    ▸ VoiceOver

    View full-size slide

  11. SINGLE APP MODE
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ ϘϦϡʔϜϘλϯ
    ▸ ΩʔϘʔυ
    ▸ λον
    ▸ ը໘ճస
    ▸ AssistiveTouch
    ▸ ζʔϜ
    ▸ ৭൓స
    ▸ VoiceOver
    ଟ਺ͷσόΠεʹ΋EFQMPZՄೳ

    View full-size slide

  12. SINGLE APP MODE
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ ϘϦϡʔϜϘλϯ
    ▸ ΩʔϘʔυ
    ▸ λον
    ▸ ը໘ճస
    ▸ AssistiveTouch
    ▸ ζʔϜ
    ▸ ৭൓స
    ▸ VoiceOver
    ଟ਺ͷσόΠεʹ΋EFQMPZՄೳ
    ͔͠͠"1*͕࢖͑ͳ͍

    View full-size slide

  13. ࣗ཯త
    SingleAppMode

    View full-size slide

  14. ࣗ཯తSINGLE APP MODE
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ Multitasking
    ΞϓϦͷΈར༻Մʹ͢Δ໨త
    ແޮԽͰ͖Δ߲໨͕গͳ͘ઃఆෆՄ

    View full-size slide

  15. ࣗಈධՁઃఆ
    (Automatic Assessment Configuration)

    View full-size slide

  16. ࣗಈධՁઃఆ
    ▸ ϗʔϜϘλϯ
    ▸ εϦʔϓ/ϩοΫϘλϯ
    ▸ Multitasking
    ▸ ࣗಈิ׬/εϖϧνΣοΫ/༧ଌม׵/ΩʔϘʔυγϣʔτΧοτ/
    ΫϦοϓϘʔυ/Ի੠ೖྗ
    ࢼݧར༻ͷͨΊͷ,JPTL
    ΞϓϦͷΈར༻ՄʹՃ͑ͯ
    ճ౴ิॿʹͳΔΑ͏ͳػೳͷແޮԽ

    View full-size slide

  17. Programable
    Require
    Supervision
    Require
    MDM
    Guided
    Access
    No No No
    SingleApp
    Mode
    No Yes No
    ࣗ཯త
    SAM
    Yes Yes Yes
    ࣗಈධՁ
    ઃఆ
    Yes No No

    View full-size slide

  18. Programable
    Require
    Supervision
    Require
    MDM
    Guided
    Access
    No No No
    SingleApp
    Mode
    No Yes No
    ࣗ཯త
    SAM
    Yes Yes Yes
    ࣗಈධՁ
    ઃఆ
    Yes No No

    View full-size slide

  19. )PXUP
    FOBCMF
    QSPHSBNBCMF

    View full-size slide

  20. func UIAccessibilityRequestGuidedAccessSession
    (_ enable: Bool, completionHandler: @escaping (Bool) -> Void)

    View full-size slide

  21. UIAccessibilityRequestGuidedAccessSession(true) { success in
    print(success)
    }
    ⚠completionHandler͕࣮ߦ͞ΕΔ·Ͱ਺ඦmsఔ͔͔Δ

    View full-size slide

  22. εϦʔϓϩοΫϘλϯ͸
    ແޮԽର৅

    View full-size slide

  23. ͔͠͠
    ͨ·ʹϩοΫͰ͖Δ

    View full-size slide

  24. ϩοΫͰ͖
    ·ͨ͠

    View full-size slide

  25. Ͱ΋ɺ͜Ε͸ηʔϑ

    View full-size slide

  26. ը໘ফ౮͞Ε͍ͯΔ͚ͩ
    ϩοΫղআը໘͸ग़ͳ͍

    View full-size slide

  27. ,JPTLϞʔυͰ
    Ϋϥογϡͨ࣌͠
    Ͳ͏ͳΔ͔ʁ

    View full-size slide

  28. ϗʔϜը໘ʹભҠޙ
    ࣗಈతʹΞϓϦ͕ىಈ

    View full-size slide


  29. (͏·͘ىಈ͠·ͨ͠)

    View full-size slide

  30. ఆظతͳ
    FYJU

    ͰϝϞϦͷΫϦΞ͕Մೳ

    View full-size slide

  31. ͱࢥ͍͖΍ɾɾɾ

    View full-size slide

  32. ΘΓͱىಈ͠ͳ͍

    View full-size slide

  33. ΞϓϦΛλοϓͯ͠΋
    ىಈ͠ͳ͍

    View full-size slide

  34. શΞϓϦɺλοϓͯ͠΋
    ىಈ͠ͳ͍☠

    View full-size slide

  35. XPSLBSPVOE
    ͋Γ·͢

    View full-size slide

  36. ,JPTLΦϑͰͷ$SBTI
    ͳΒൃੜ͠ͳ͍

    View full-size slide

  37. func NSSetUncaughtExceptionHandler(_:
    ((NSException) -> Void)?)

    View full-size slide

  38. func NSSetUncaughtExceptionHandler { exception in
    UIAccessibilityRequestGuidedAccessSession(false){ _ in }
    }

    View full-size slide

  39. 4XJGUͷΫϥογϡͰ͸
    ݺ͹Εͳ͍
    func NSSetUncaughtExceptionHandler { exception in
    UIAccessibilityRequestGuidedAccessSession(false){ _ in }
    }

    View full-size slide

  40. 4XJGUͷΫϥογϡ OJMVOXSBQFUD
    ͸
    ⚡γάφϧ⚡͕ඈͿ͚ͩɻ

    View full-size slide

  41. SIGNALS
    ▸ SIGHUP
    ▸ SIGINT
    ▸ SIGTRAP
    ▸ SIGABRT
    ▸ SIGKILL
    ▸ SIGSEGV
    ▸ …
    NBOTJHOBMͰ৭ʑݟΕ·͢

    View full-size slide

  42. ⚡γάφϧ⚡Λτϥοϓ͠Α͏

    View full-size slide

  43. import Darwin
    func sigaction(_: Int32,
    _: UnsafePointer!,
    _: UnsafeMutablePointer!) -> Int32
    int sigaction(int sig,
    const struct sigaction *restrict act,
    struct sigaction *restrict oact);
    JO$
    NBOTJHBDUJPOͰ৭ʑݟΕ·͢
    *#.4XJGU#MVF4JHOBMT͕Φεεϝ

    View full-size slide

  44. ·ͱΊ
    ▸ KioskϞʔυʹ͸4छྨ͋Δɺ੍ݶͰ͖Δػೳ͸ͦΕͧΕҧ͏
    ▸ API͕࢖͑Δ΋ͷͱ࢖͑ͳ͍KioskϞʔυ͕͋Δ
    ▸ KioskϞʔυͰ͸ϓϩηε͕ऴྃ͢ΔͱࣗಈͰ࠶ىಈ͞ΕΔ
    ▸ ࣗಈతͳ࠶ىಈ͸த్൒୺ͳঢ়ଶʹͳΔࣄ͕͋Δ
    ▸ த్൒୺ͳঢ়ଶʹͳΔͱ٧Ή
    ▸ ٧·ͳ͍ͨΊʹNSExceptionͱSIGNALΛΩϟον͠Α͏ʂ

    View full-size slide