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

Introducing Xcode Editor Extension

Introducing Xcode Editor Extension

2016/06/22 FiNC WWDC振り返り勉強会

Toshihiro Morimoto

June 22, 2016
Tweet

More Decks by Toshihiro Morimoto

Other Decks in Technology

Transcript

  1. Introducing Xcode Editor Extension
    2016/06/22 FiNC WWDCৼΓฦΓษڧձ
    @dealforest
    Toshihro Morimoto

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. View Slide

  4. Έͳ͞Μ
    iPhone Simulator Λ
    ͲΕ͘Β͍ೖΕ͍ͯ·͔͢ʁʁ

    View Slide

  5. Xcode Editor Extension,
    Xcode Source Editor Extension ͷ
    ͓࿩Λࠓ೔͸͠·͢

    View Slide

  6. ͦͷલʹ

    View Slide

  7. ࡯͠ͷ͍͍Έͳ͞Μ͸
    ͓෼͔Γ͔ͱࢥ͍·͢

    View Slide

  8. RIP Xcode Plugin

    View Slide

  9. ൵͍͠ͷͰ
    ΍͚ञʹ෇͖߹͍ͬͯͩ͘͞

    View Slide

  10. ৑ஊ͸͓͖ͯ͞
    ͦΕͰ͸ຊ୊ʹೖ͍͖ͬͯ·͢

    View Slide

  11. Xcode Editor Extension
    ͞Θͬͨਓ͍·͔͢ʁ

    View Slide

  12. Extension ͍ͬͯ͏໊લ͔Β
    ͓Θ͔Γ͍͚ͨͩΔΑ͏ʹ
    OS X Application ʹ෇ଐ͠·͢

    View Slide

  13. ࢖͍ํ
    • App Store ͔ΒΠϯετʔϧͯ͠ىಈ
    • ࣗલͰ .app Λ build ΋͘͠͸ download
    ͯ͠ /Applications ͔ ~/Applications ʹ഑
    ஔͯ͠ىಈ

    View Slide

  14. Application Ͱ഑෍͢Δ
    ͱ͍ͬͨײ͡Ͱ͢Ͷ

    View Slide

  15. Extension ʹͨ͠ϝϦοτ
    • Stability
    • Security
    • Speed

    View Slide

  16. ͭ·Δͱ͜Ζ XPC ʹͨ͠ͷͰ
    ҆શʹͳͬͨΑͬͯ͜ͱͰ͢Ͷ

    View Slide

  17. ࡉ͔͍΋ͷ͸ϦϦʔεϊʔτΛ
    Έ͍ͯͩ͘͞
    https://developer.apple.com/go/?id=xcode8-0-beta-release-notes

    View Slide

  18. XPC ͱ͸
    Access a low-level (libSystem) interprocess
    communication mechanism that is based on
    serialized property lists.

    View Slide

  19. ཁ͢Δʹ binary plist Ͱ
    ϓϩηεؒ௨৴͢ΔΑ͏ʹͨ͠

    View Slide

  20. Xcode
    XPC
    Source Editor Extension
    Application
    pid: 1xxxx
    pid: 2xxxx

    View Slide

  21. ࣮ߦ͞ΕΔλΠϛϯά
    • Add commands to the source editor
    • One extension, several commands
    • Edit text
    • Change selections

    View Slide

  22. ࣮ߦ͞ΕΔλΠϛϯά
    • ϝχϡʔ͔Β࣮ߦ
    • ίʔυΛฤू

    View Slide

  23. ϝχϡʔ͔Β࣮ߦ

    View Slide

  24. ίʔυΛฤू
    #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)

    View Slide

  25. ίʔυΛฤू
    #imageLiteral(resourceName: "sun")

    View Slide

  26. ίʔυΛฤूͨ͠ͷΛ؂ࢹͯ͠
    Կ͔มߋ͢Δ Extension ͷ࡞Γํ͸
    ࣮͸·ͩΑ͘Θ͔ͬͯ·ͤΜ

    View Slide

  27. SwiftLint for Xcode ͕ͦ͏ͳͷ͔΋ʁ
    ·ͩΩϟονΞοϓ͖͠Εͯ·ͤΜ
    https://github.com/norio-nomura/SwiftLintForXcode

    View Slide

  28. macOS 10.11 El Capitan Ͱͷ஫ҙ
    sudo /usr/libexec/xpccachectl & reboot

    View Slide

  29. Xcode Simulator

    View Slide

  30. ࠇ͘ͳͬͨʂʂʂʂ

    View Slide

  31. ͦͷଞ
    • widget Έ͍ͨʹ opt-out Ͱ͖ͳ͍
    • shortcut ͸ Xcode ͷઃఆը໘Ͱࣗ෼Ͱ͢Δ
    • cancel bunner ͸ະ࣮૷

    View Slide

  32. RIP Xcode Plugin

    View Slide

  33. ͱݴ͍·͕࣮ͨ͠͸࢖͑·͢

    View Slide

  34. Xcode8͔Βcode sign ͞ΕΔΑ͏ʹͳͬͨͷ͕
    ݪҼͰ Plugin ͕ load ͞Εͳ͘ͳΓ·ͨ͠

    View Slide

  35. ͭ·Γ͸ code sign Λফͤ͹
    ࠓ·Ͱ௨Γ࢖͑Δͱ͍͏Θ͚Ͱ͢Ͷ

    View Slide

  36. ͱ͍͏Θ͚Ͱͭ͘Γ·ͨ͠

    View Slide

  37. ※ Objective-C Ͱॻ͔Εͨ
    Plugin ͔͠ಈ͔ͳ͍͔΋
    (ݕূத)

    View Slide

  38. ࣗݾ੹೚Ͱ࣮ߦ͍ͯͩ͘͠͞

    View Slide

  39. https://gist.github.com/dealforest/c5a5362005bce1a4280c34d18a5bc893

    View Slide

  40. ͜ΕΛ࣮ߦ͢Ε͹
    ඇূ໌ͷόΠφϦʹͳΓ·͢

    View Slide

  41. https://github.com/alcatraz/Alcatraz/issues/475#issuecomment-226090731

    View Slide

  42. ·ͱΊ
    ͠͹Β͘ͷؒ Xcode Editor Extension ͸Ͱ͖
    Δ͜ͱ͕ݶΒΕ·͢
    ͱ͸͍͑ɺ͜ͷ࢓૊Έ͸ૉ੖Β͍͠ͱࢥ͏
    ͷͰ௕͍໨ͰݟकΓ·͠ΐ͏

    View Slide

  43. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠

    View Slide