SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
SourceKittenについて
2015/11/28 @オープンソースライブラリ研究会 - iOS Android Rails編
@ushisantoasobu
iOS, Android, JavaScript, Railsを浅く広く
フットサル好き
自己紹介
アジェンダ
SourceKittenとは
SourceKittenを利用したライブラリの紹介
=> SwiftLint, jazzy
SourceKit??
一年前くらいの(2014年末)ツイートを検索してみる
あの憎きSourceKitのことか!!!
一旦落ち着こう…
SourceKitとは??
Xcode起動時に常に別プロセスで立ち上がっていて、XPC
経由で動いているツール(Xcode 6以降)
Swiftのコードをパースして、シンタックスハイライトした
り、補完のオートコンプリートの処理をしたりなどなど
ドキュメント化もされてない、非公開のAPI
http://www.jpsim.com/uncovering-sourcekit/
Xcode起動時にSourceKitServiceが動いていることが確認できる
つまりSourceKittenとは??
SourceKitを利用することができるラッパライブラリ
XPCでやりとりをロギングしてつくったハッカブルなもの
ぽい
具体的にどんなことができるの?
コマンド叩いてみよう!!
で、結局これ何が嬉しいの??
SourceKittenを利用したオープンソースライブラリを2つ紹介
SwiftLint
jazzy
SwiftLintとは??
名前の通り、SwiftのLinter(コード品質チェックツール)
Build PhasesのRun Scriptで動くようにする
DEMO
http://qiita.com/ushisantoasobu/items/b494c9cf7d78a968b373
jazzyとは??
SwiftDocジェネレータ
AppleのReferenceみたいなLook & Feel
名前がカワイイ
まとめ
SourceKitはSwiftのコードを解析して色々やってく
れるもの
SourceKittenはプライベートであるSourceKitの
ラッパライブラリ
SourceKittenを利用して、LinterやDocジェネレー
タのライブラリがつくられている
ご静聴ありがとうございました!!

Más contenido relacionado

La actualidad más candente

lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftTomohiro Kumagai
 
SwiftでSioriを開発した体験記
SwiftでSioriを開発した体験記SwiftでSioriを開発した体験記
SwiftでSioriを開発した体験記yohei sugigami
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeTomohiro Kumagai
 
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-Keisuke Tatsumi
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようKanako Kobayashi
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooHiramatsu Ryosuke
 
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__Tomohiro Kumagai
 
Swift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めようSwift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めようMotoki Narita
 

La actualidad más candente (9)

lazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswiftlazy var の特徴を知る #cocoa_kansai #cswift
lazy var の特徴を知る #cocoa_kansai #cswift
 
SwiftでSioriを開発した体験記
SwiftでSioriを開発した体験記SwiftでSioriを開発した体験記
SwiftでSioriを開発した体験記
 
Enumerate
EnumerateEnumerate
Enumerate
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
 
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-ご注文はRxですか? -RxSwiftを実際に導入してみた件-
ご注文はRxですか? -RxSwiftを実際に導入してみた件-
 
Swiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみようSwiftで外部ライブラリを使ってみよう
Swiftで外部ライブラリを使ってみよう
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__プロトコル指向に想う世界観 #__swift__
プロトコル指向に想う世界観 #__swift__
 
Swift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めようSwift3.0に向けて enumerateを使い始めよう
Swift3.0に向けて enumerateを使い始めよう
 

Similar a Source kittenについて

yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」佐藤 俊太郎
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpTakeshi Komiya
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Tomoki Hasegawa
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swiftYuki Asai
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSyo Ikeda
 
デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和schoowebcampus
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理Tomoya Hayakawa
 
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバiOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバSyo Ikeda
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版Ikada Kaori
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamobaishikawa akira
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門Hiramatsu Ryosuke
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1Kaname Noto
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会codeal
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話akatsuki174
 
勉強会資料ースイフト入門ー
勉強会資料ースイフト入門ー勉強会資料ースイフト入門ー
勉強会資料ースイフト入門ーshogo yamada
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略Fumiya Sakai
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift PlaygroundsへKinkumaDesign
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことyohei sugigami
 

Similar a Source kittenについて (20)

yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
yidev 第18回勉強会 「業務でSwiftで3ヶ月開発してきたので一旦振り返り」
 
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjpAPIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
 
Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応Swift事情2014夏 ~ Swift入門 beta6対応
Swift事情2014夏 ~ Swift入門 beta6対応
 
Oss written in swift
Oss written in swiftOss written in swift
Oss written in swift
 
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよSwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
 
Apple Map
Apple MapApple Map
Apple Map
 
デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和デザイナーのためのXcode入門 先生:関根 元和
デザイナーのためのXcode入門 先生:関根 元和
 
iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理iOS開発でのおすすめライブラリと管理
iOS開発でのおすすめライブラリと管理
 
iOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバiOSでのFramework導入のおさらい #関モバ
iOSでのFramework導入のおさらい #関モバ
 
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
 
開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba開発中のiOSアプリ紹介 #okamoba
開発中のiOSアプリ紹介 #okamoba
 
Keep a diary
Keep a diaryKeep a diary
Keep a diary
 
これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
 
iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1iOS13 SDK による 全機能置き換え Part1
iOS13 SDK による 全機能置き換え Part1
 
第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会第1回 コデアルiOSアプリ勉強会
第1回 コデアルiOSアプリ勉強会
 
既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話既存プロジェクトにSwiftLintを導入した話
既存プロジェクトにSwiftLintを導入した話
 
勉強会資料ースイフト入門ー
勉強会資料ースイフト入門ー勉強会資料ースイフト入門ー
勉強会資料ースイフト入門ー
 
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
デザイナー→Webエンジニア→iOSエンジニアと渡り歩いた僕なりのSwiftとの向き合い方と生かす戦略
 
ようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへようこそ! Swift Playgroundsへ
ようこそ! Swift Playgroundsへ
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 

Más de 佐藤 俊太郎

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる佐藤 俊太郎
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想佐藤 俊太郎
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1佐藤 俊太郎
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21佐藤 俊太郎
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20佐藤 俊太郎
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて佐藤 俊太郎
 

Más de 佐藤 俊太郎 (8)

iOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくるiOSオジサンは JSオジサンを これからも覗きにくる
iOSオジサンは JSオジサンを これからも覗きにくる
 
Bond の v4 について
Bond の v4 についてBond の v4 について
Bond の v4 について
 
`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想`redux`と`flux`を比べてみたときの個人的な感想
`redux`と`flux`を比べてみたときの個人的な感想
 
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
小さな会社(チーム)で クールなアプリをつくる方法 Gunosy UI Design Study #1
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
 
Createjsについて@jsCafe20
Createjsについて@jsCafe20Createjsについて@jsCafe20
Createjsについて@jsCafe20
 
flasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみてflasherがはじめてiOS開発をしてみて
flasherがはじめてiOS開発をしてみて
 
Introduction for cocos2d
Introduction for cocos2dIntroduction for cocos2d
Introduction for cocos2d
 

Source kittenについて