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

忘れないで!mac app!! コマンド編

Akio Itaya
May 23, 2018
1.3k

忘れないで!mac app!! コマンド編

potatotips #51

Akio Itaya

May 23, 2018
Tweet

Transcript

  1. AKKEY / AKIO ITAYA
    Cyberagent, Inc.
    ๨Εͳ͍Ͱʂmac appʂʂ
    ίϚϯυฤ○

    View Slide

  2. ໊લɿ൘୩ ߊྑɹ/ɹ͖͋ͬʔʢAKKEYʣ
    ৬छɿiOS
    ׆ಈɿ@AkkeyLab
    Ұݴɿݸਓ։ൃͬΆ͍ਓؾΞϓϦൃݟͰ΍Δؾഒ૿
    ࣗݾ঺հ

    View Slide

  3. ͲΜͳΞϓϦ࡞ͬͯΔਓʁ
    ※஫ҙɿݸਓ։ൃ

    View Slide

  4. ͔Θ͍͍ΞϓϦ

    View Slide

  5. ͔Θ͍͍ΞϓϦ
    • 1࣌ؒຖʹඒগঁͷ੠Ͱ࣌ؒΛ͓஌Βͤʂ
    • ௨஌όʔʹ͸ඒগঁΠϥετ͕ʂ
    • ৬৔Ͱ΋҆৺ͷϛϡʔτઃఆ౥ࡌʂ
    • ෆఆظͷ࢒ۀʹ͸ؾΛ͚ͭͯͶὑ

    View Slide

  6. ͔Θ͍͍ΞϓϦ
    • 1࣌ؒຖʹඒগঁͷ੠Ͱ࣌ؒΛ͓஌Βͤʂ
    • ௨஌όʔʹ͸ඒগঁΠϥετ͕ʂ
    • ৬৔Ͱ΋҆৺ͷϛϡʔτઃఆ౥ࡌʂ
    • ෆఆظͷ࢒ۀʹ͸ؾΛ͚ͭͯͶὑ

    View Slide

  7. ͔Θ͍͍ΞϓϦ
    • 1࣌ؒຖʹඒগঁͷ੠Ͱ࣌ؒΛ͓஌Βͤʂ
    • ௨஌όʔʹ͸ඒগঁΠϥετ͕ʂ
    • ৬৔Ͱ΋҆৺ͷϛϡʔτઃఆ౥ࡌʂ
    • ෆఆظͷ࢒ۀʹ͸ؾΛ͚ͭͯͶὑ
    ※৬৔Ͱͷ࢖༻͸ࣗݾ੹೚Ͱ͓ئ͍͠·͢ɻৗࣝͷൣғ಺Ͱʂ

    View Slide

  8. ͔Θ͍͍ΞϓϦ
    • 1࣌ؒຖʹඒগঁͷ੠Ͱ࣌ؒΛ͓஌Βͤʂ
    • ௨஌όʔʹ͸ඒগঁΠϥετ͕ʂ
    • ৬৔Ͱ΋҆৺ͷϛϡʔτઃఆ౥ࡌʂ
    • ෆఆظͷ࢒ۀʹ͸ؾΛ͚ͭͯͶὑ
    ※৬৔Ͱͷ࢖༻͸ࣗݾ੹೚Ͱ͓ئ͍͠·͢ɻৗࣝͷൣғ಺Ͱʂ

    View Slide

  9. ͔Θ͍͍ΞϓϦ
    ѪɹশɹɿɹϓϩੜͪΌΜ
    ೥ɹྸɹɿɹ17ࡀ
    ৬ɹۀɹɿɹJK
    ஀ੜ೔ɹɿɹ1݄11೔
    ϘΠεɹɿɹ্ࡔ͢ΈΕ
    Ωϟϥɹɿɹixy
    ϓϩάϥϛϯάੜ์ૹ ༷ͱͷڠྗ

    View Slide

  10. ͱ͍͏͜ͱͰɺ

    View Slide

  11. mkdir command

    View Slide

  12. Import Cocoa
    Class ViewController: NSViewController {
    func create() {
    let dir = “\(NSHomeDirectory())/Desktop/swift”
    let task = NSTask()
    task.launchPath = “/bin/mkdir”
    task.arguments = [dir]
    task.launch()
    }
    }
    ઈରύε

    View Slide

  13. Import Cocoa
    Class ViewController: NSViewController {
    func create() {
    let dir = “\(NSHomeDirectory())/Desktop/swift”
    let task = NSTask()
    task.launchPath = “/bin/mkdir”
    task.arguments = [dir]
    task.launch()
    }
    }

    View Slide

  14. • Sandbox ͷ༗ແͰऔಘͰ͖ΔσΟϨΫτϦ͕ҧ͏
    ແɿ ~/
    ༗ɿ ~/Library/Containers/com.app.name/Data/
    ஫ҙ
    Bundle ID

    View Slide

  15. cp command

    View Slide

  16. ίϐʔݩΛબ୒

    View Slide

  17. Import Cocoa
    Class ViewController: NSViewController {
    func copy() {
    let panel = NSOpenPanel()
    panel.canChooseFiles = true
    panel.canChooseDirectories = false
    panel.allowsMultipleSelection = false
    panel.allowedFileTypes = NSImage.imageTypes
    panel.begin(completionHandler: { num -> Void in
    if num == NSApplication.ModalResponse.OK,
    let path = panel.url?.path {
    Self.read(url: path)
    }
    })
    }
    }

    View Slide

  18. Import Cocoa
    extension ViewController {
    func read(url: String) {
    let home = NSHomeDirectory()
    task.launchPath = "/bin/cp"
    task.arguments = [url, home + "/swift/sample"]
    task.launch()
    }
    }

    View Slide

  19. • Sandbox ར༻ͷ৔߹͸ઃఆมߋ͕ඞཁ
    ϑΝΠϧબ୒ɿ FileAccess > User Selected File
    ஫ҙ
    ྫɿRead Only

    View Slide

  20. ͥͻɺ༡ΜͰΈ͍ͯͩ͘͞ʂ

    View Slide

  21. GitHub / Qiita : @AkkeyLab

    View Slide

  22. Thank you !!

    View Slide