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
Introducing Xcode Editor Extension
Search
Toshihiro Morimoto
June 22, 2016
Technology
2
4.6k
Introducing Xcode Editor Extension
2016/06/22 FiNC WWDC振り返り勉強会
Toshihiro Morimoto
June 22, 2016
Tweet
Share
More Decks by Toshihiro Morimoto
See All by Toshihiro Morimoto
Xcode8 で開発はどうかわったのか
dealforest
10
6.1k
魅せるデバッグ技術
dealforest
4
1.5k
LLDB の世界からみた Swift
dealforest
4
5.1k
Xcode で快適なデバッグライフを追い求める
dealforest
29
23k
Intrducing debug in WWDC2016
dealforest
3
760
swift build と Xcode での Build の違い
dealforest
3
2k
RIP Xcode Plugin 🙏
dealforest
0
4.7k
Introducing Anglerfish
dealforest
2
3.3k
音声ガイダンスを導入した話
dealforest
0
3.9k
Other Decks in Technology
See All in Technology
ソフトウェアは捨てやすく作ろう/Let's make software easy to discard
sanogemaru
10
5.8k
Java で学ぶ 代数的データ型
ysknsid25
1
600
データプレーンプログラミングとは? DPU&スイッチASICの開発経験から語る
ebiken
PRO
1
270
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
1
270
LT:組込み屋さんのオシロが壊れた!
windy_pon
0
480
S3 Tables を図解でやさしくおさらい~基本から QuickSight 連携まで/s3-tables-illustrated-basics-quicksight
emiki
2
340
OSMnx Galleryの紹介
mopinfish
0
150
AIに実況させる / AI Streamer
motemen
3
1.4k
カンファレンスのつくりかた / The Conference Code: What Makes It All Work
tomzoh
8
930
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
2
1.2k
ゴリラ.vim #36 ~ Vim x SNS ~ スポンサーセッション
yasunori0418
1
360
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
38k
Featured
See All Featured
Building an army of robots
kneath
306
45k
Docker and Python
trallard
44
3.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
750
A better future with KSS
kneath
239
17k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
180
53k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.4k
Visualization
eitanlees
146
16k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
12k
Transcript
Introducing Xcode Editor Extension 2016/06/22 FiNC WWDCৼΓฦΓษڧձ @dealforest Toshihro Morimoto
ࣗݾհ
None
Έͳ͞Μ iPhone Simulator Λ ͲΕ͘Β͍ೖΕ͍ͯ·͔͢ʁʁ
Xcode Editor Extension, Xcode Source Editor Extension ͷ ͓Λࠓ͠·͢
ͦͷલʹ
͠ͷ͍͍Έͳ͞Μ ͓͔Γ͔ͱࢥ͍·͢
RIP Xcode Plugin
൵͍͠ͷͰ ͚ञʹ͖߹͍ͬͯͩ͘͞
ஊ͓͖ͯ͞ ͦΕͰຊʹೖ͍͖ͬͯ·͢
Xcode Editor Extension ͞Θͬͨਓ͍·͔͢ʁ
Extension ͍ͬͯ͏໊લ͔Β ͓Θ͔Γ͍͚ͨͩΔΑ͏ʹ OS X Application ʹଐ͠·͢
͍ํ • App Store ͔ΒΠϯετʔϧͯ͠ىಈ • ࣗલͰ .app Λ build
͘͠ download ͯ͠ /Applications ͔ ~/Applications ʹ ஔͯ͠ىಈ
Application Ͱ͢Δ ͱ͍ͬͨײ͡Ͱ͢Ͷ
Extension ʹͨ͠ϝϦοτ • Stability • Security • Speed
ͭ·Δͱ͜Ζ XPC ʹͨ͠ͷͰ ҆શʹͳͬͨΑͬͯ͜ͱͰ͢Ͷ
ࡉ͔͍ͷϦϦʔεϊʔτΛ Έ͍ͯͩ͘͞ https://developer.apple.com/go/?id=xcode8-0-beta-release-notes
XPC ͱ Access a low-level (libSystem) interprocess communication mechanism that
is based on serialized property lists.
ཁ͢Δʹ binary plist Ͱ ϓϩηεؒ௨৴͢ΔΑ͏ʹͨ͠
Xcode XPC Source Editor Extension Application pid: 1xxxx pid: 2xxxx
࣮ߦ͞ΕΔλΠϛϯά • Add commands to the source editor • One
extension, several commands • Edit text • Change selections
࣮ߦ͞ΕΔλΠϛϯά • ϝχϡʔ͔Β࣮ߦ • ίʔυΛฤू
ϝχϡʔ͔Β࣮ߦ
ίʔυΛฤू #colorLiteral(red: 1, green: 1, blue: 1, alpha: 1)
ίʔυΛฤू #imageLiteral(resourceName: "sun")
ίʔυΛฤूͨ͠ͷΛࢹͯ͠ Կ͔มߋ͢Δ Extension ͷ࡞Γํ ࣮·ͩΑ͘Θ͔ͬͯ·ͤΜ
SwiftLint for Xcode ͕ͦ͏ͳͷ͔ʁ ·ͩΩϟονΞοϓ͖͠Εͯ·ͤΜ https://github.com/norio-nomura/SwiftLintForXcode
macOS 10.11 El Capitan Ͱͷҙ sudo /usr/libexec/xpccachectl & reboot
Xcode Simulator
ࠇ͘ͳͬͨʂʂʂʂ
ͦͷଞ • widget Έ͍ͨʹ opt-out Ͱ͖ͳ͍ • shortcut Xcode
ͷઃఆը໘ͰࣗͰ͢Δ • cancel bunner ະ࣮
RIP Xcode Plugin
ͱݴ͍·͕࣮ͨ͑͠·͢
Xcode8͔Βcode sign ͞ΕΔΑ͏ʹͳͬͨͷ͕ ݪҼͰ Plugin ͕ load ͞Εͳ͘ͳΓ·ͨ͠
ͭ·Γ code sign Λফͤ ࠓ·Ͱ௨Γ͑Δͱ͍͏Θ͚Ͱ͢Ͷ
ͱ͍͏Θ͚Ͱͭ͘Γ·ͨ͠
※ Objective-C Ͱॻ͔Εͨ Plugin ͔͠ಈ͔ͳ͍͔ (ݕূத)
ࣗݾͰ࣮ߦ͍ͯͩ͘͠͞
https://gist.github.com/dealforest/c5a5362005bce1a4280c34d18a5bc893
͜ΕΛ࣮ߦ͢Ε ඇূ໌ͷόΠφϦʹͳΓ·͢
https://github.com/alcatraz/Alcatraz/issues/475#issuecomment-226090731
·ͱΊ ͠Β͘ͷؒ Xcode Editor Extension Ͱ͖ Δ͜ͱ͕ݶΒΕ·͢ ͱ͍͑ɺ͜ͷΈૉΒ͍͠ͱࢥ͏ ͷͰ͍ͰݟकΓ·͠ΐ͏
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠