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 Slide

  2. UBJLJLPNBCB
    [email protected]

    )"/%4-"#*/$

    View Slide

  3. ,*04,
    BLB4JOHMF"QQ.PEF

    View 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 Slide

  5. Guided Access

    View Slide

  6. SS͓͘

    View Slide

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

    View Slide

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

    View Slide

  9. SingleAppMode

    View Slide

  10. Apple Configurator

    View Slide

  11. MDM

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  15. ࣗ཯త
    SingleAppMode

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. )PXUP
    FOBCMF
    QSPHSBNBCMF

    View Slide

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

    View Slide

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

    View Slide

  24. -PDLBCMF

    View Slide

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

    View Slide

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

    View Slide

  27. View Slide

  28. ϩοΫͰ͖
    ·ͨ͠

    View Slide

  29. Ͱ΋ɺ͜Ε͸ηʔϑ

    View Slide

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

    View Slide

  31. ,JPTL

    $SBTI

    View Slide

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

    View Slide

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

    View Slide

  34. View Slide


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

    View Slide

  36. ఆظతͳ
    FYJU

    ͰϝϞϦͷΫϦΞ͕Մೳ

    View Slide

  37. ͱࢥ͍͖΍ɾɾɾ

    View Slide

  38. View Slide

  39. ΘΓͱىಈ͠ͳ͍

    View Slide

  40. ͔͠΋

    View Slide

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

    View Slide

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

    View Slide

  43. XPSLBSPVOE
    ͋Γ·͢

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  51. 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 Slide

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

    View Slide

  53. ͓ΘΓɻ

    View Slide