SlideShare a Scribd company logo
Time for
Xcode Behavior!
potato tips 2018/02/22
Tachibana Kaoru
About Me
• @TachibanaKaoru
• iOS freelance engineer
• This years theme : No Travel, No
Work!
• Bali バリ島
• Greece ギリシャ
Xcode Source Code Extension
• WWDC 2016 で紹介
• Apple's Xcode official extension!
やった∼!
公式プラグインだ!
でもふたをあけて
みると……
Xcode Source Code Extension
• 配布も作成もデバッグも大変だし……。
• 動作にかなり制限があるし……。
• GUIも表示できないし……。
(詳しくは、@takasekさんの Xcode Source Editor Extensionの
世界を参照)
ここで
Xcode Behavior!
Xcode Behaviorとは
• Xcode のmenuから起動できる独自
スクリプト
• 太古の昔から使えます。
Xcodeの設定のBehaviors画面で設定
What can it do?
Xcode Source Code
Extension
Xcode Behavior
Xcodeのエディターで今ひら
いているファイルの中身を変
更することしかできない。
Xcodeから独立して動作する
スクリプトなので、なんでも
できる。
context from Xcode...
Xcode Source Code
Extension
Xcode Behavior
Xcodeで開いているファイル
の中身のみ取得できる。
環境変数で今Xcodeで開いて
いるプロジェクトがわかる。
Editing, Distributing...
Xcode Source Code
Extension
Xcode Behavior
作成も配布も変更も複雑 自分で書いたスクリプトを自
己責任で使うスキームなの
で、作成も配布も変更も楽
show GUI
Xcode Source Code
Extension
Xcode Behavior
GUIを表示できない GUIを表示できる。AppKitも
もちろん可。
Programming Language
Xcode Source Code
Extension
Xcode Behavior
Xcodeでコンパイルできる言
語のみ
スクリプトとして使える言語
ならなんでも可。Swiftでも、
シェルスクリプトでも、apple
scriptでも、rubyでも。
Hello World with Apple Script
#!/usr/bin/osascript
set theDialogText to "Hello World!"
display dialog theDialogText
さて、ここで、実プロジェクトで使え
るXcode Behaviorのサンプルを見て
みましょう。
Markdown in Xcode
Markdown in Apple Sample
• preview mode
Markdown in my project...
• not preview mode!
to change makrdown's preiew mode
プロジェクト内に特定の名前のplistファイルをおくと、Xcode
でマークダウンファイルがプレビューモードで表示されるよう
になります。
Xcode9でのMarkdownレンダリング - http://www.toyship.org/
archives/2541
script to change preview mode of
markdown in Xcode
#!/usr/bin/swift
import Foundation
let env = ProcessInfo.processInfo.environment
let manager = FileManager.default
let fileNakami = "...."
if let pathValue = env["XcodeProjectPath"] as? String{
var fileURL = URL(fileURLWithPath: pathValue)
fileURL.appendPathComponent(".xcodesamplecode.plist")
try! fileNakami.write(to: fileURL, atomically: true, encoding: String.Encoding.utf8)
}
https://gist.github.com/TachibanaKaoru/
4ffa5dda9b86b4f0ef1a02e064ba34e9
まとめ
• Xcode Behavior便利!
• 太古の昔から使える技ですが、今こそみなおされるべき!

More Related Content

PPT
Android Hacks - Hack59
PDF
デザイナーのためのXcode入門 先生:関根 元和
PDF
iPhoneアプリ無料勉強会 vol1
PDF
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
PDF
iPhoneアプリ無料勉強会 vol3
PDF
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
PDF
UIViewController in XIB + IBDesignable
PDF
StoryboardでUIを使いまわす
Android Hacks - Hack59
デザイナーのためのXcode入門 先生:関根 元和
iPhoneアプリ無料勉強会 vol1
TOPPERSの開発も出来ちゃうVSCodeのビルド&デバッグ使いこなし術
iPhoneアプリ無料勉強会 vol3
Cocos2d-x&CocosCodeIDE&Luaで個人開発始めました
UIViewController in XIB + IBDesignable
StoryboardでUIを使いまわす

What's hot (7)

PDF
デザイナーとエンジニアが話す、iOSアプリケーション開発
PPTX
Google Codelabsをやってみた
PDF
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
PDF
Jokerscriptを勝手に紹介
PDF
[Android] モジュール管理で ビルド高速化!
KEY
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
PDF
はじめてのiOSアプリ開発 ①
デザイナーとエンジニアが話す、iOSアプリケーション開発
Google Codelabsをやってみた
Xcodeとstoryboardのすごさを思い知る、ソースコードを書かないプログラミング
Jokerscriptを勝手に紹介
[Android] モジュール管理で ビルド高速化!
姫路IT系勉強会「ADB接続でかんたんフィジカルコンピューティング」
はじめてのiOSアプリ開発 ①
Ad

More from toyship (15)

PDF
Notifications in iOS10
PDF
Universal Link
PDF
Can we live in a pure Swift world?
PDF
Swift Protocol and Selector
PDF
What's new Swift3
PDF
Xcode7時代のアプリ配布
PDF
My first tvOS
PDF
3D touch for iOS
PDF
Contents blocker on iOS9
PDF
Embedded framework and so on
PDF
はじめてのWKInterfaceController
PDF
App extension for iOS
PDF
サーバーからiOSアプリを変更する
PDF
Xcode bot
PDF
AVSpeechSynthesizerとロケール
Notifications in iOS10
Universal Link
Can we live in a pure Swift world?
Swift Protocol and Selector
What's new Swift3
Xcode7時代のアプリ配布
My first tvOS
3D touch for iOS
Contents blocker on iOS9
Embedded framework and so on
はじめてのWKInterfaceController
App extension for iOS
サーバーからiOSアプリを変更する
Xcode bot
AVSpeechSynthesizerとロケール
Ad

Time for Xcode Behavior