Enviar pesquisa
Carregar
About SnapKit - Open source lab -
•
0 gostou
•
1,231 visualizações
D
Daisuke Yamashita
Seguir
autolayout DSL library
Leia menos
Leia mais
Engenharia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 22
Baixar agora
Baixar para ler offline
Recomendados
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
タスクランナー導入 〜とあるWordPress制作環境〜
タスクランナー導入 〜とあるWordPress制作環境〜
Masaya Kogawa
a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」
Seiko Kuchida
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
WebビューアやURLから挿入ステップの使いどころの考察
WebビューアやURLから挿入ステップの使いどころの考察
frudens Inc.
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Yusuke HIDESHIMA
Recomendados
Sails.jsのメリット・デメリット
Sails.jsのメリット・デメリット
Ito Kohta
MVCフレームワーク Sails.jsについて機能紹介
MVCフレームワーク Sails.jsについて機能紹介
kamiyam .
タスクランナー導入 〜とあるWordPress制作環境〜
タスクランナー導入 〜とあるWordPress制作環境〜
Masaya Kogawa
a-sap10「モジュールIDを理解する」
a-sap10「モジュールIDを理解する」
Seiko Kuchida
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
WebビューアやURLから挿入ステップの使いどころの考察
WebビューアやURLから挿入ステップの使いどころの考察
frudens Inc.
PHPでWebSocketを実装してみてわかったこと
PHPでWebSocketを実装してみてわかったこと
ksimoji
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
(Unityよくわかってない人のための)なんとなくわかるかもしれないAssetBundle
Yusuke HIDESHIMA
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
Hello, Node.js
Hello, Node.js
Shin Sekaryo
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
Seiko Kuchida
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
Node js 入門
Node js 入門
Satoshi Takami
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
Horiguchi Seito
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
Jaws ug shimane-1
Jaws ug shimane-1
Mutsumi IWAISHI
Type scriptmemo
Type scriptmemo
ytanno
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
GarumとMeteoriteと私 3nd Edition ver0.04
GarumとMeteoriteと私 3nd Edition ver0.04
Shinobu Okano
仕事場改善
仕事場改善
osamu miyake
Mais conteúdo relacionado
Mais procurados
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
Hello, Node.js
Hello, Node.js
Shin Sekaryo
Ember コミュニティとわたし
Ember コミュニティとわたし
Ryunosuke SATO
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
AimingStudy
TypeScriptへの入口
TypeScriptへの入口
Sunao Tomita
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
Seiko Kuchida
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
hideaki honda
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Hiroyuki Kusu
Node js 入門
Node js 入門
Satoshi Takami
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
Yuusuke Takeuchi
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
Yusuke Wada
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
Horiguchi Seito
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO
Jaws ug shimane-1
Jaws ug shimane-1
Mutsumi IWAISHI
Type scriptmemo
Type scriptmemo
ytanno
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Yoichi Toyota
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Takuro Sasaki
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
Mais procurados
(20)
Node.js で Web アプリ開発
Node.js で Web アプリ開発
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Hello, Node.js
Hello, Node.js
Ember コミュニティとわたし
Ember コミュニティとわたし
Node.jsではじめるサーバ構築
Node.jsではじめるサーバ構築
TypeScriptへの入口
TypeScriptへの入口
a-blog cmsのインポート機能を使いこなす
a-blog cmsのインポート機能を使いこなす
jQueryを中心としたJavaScript
jQueryを中心としたJavaScript
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
Node js 入門
Node js 入門
Node.jsでサーバプログラマ デビューしよう
Node.jsでサーバプログラマ デビューしよう
「新しい」を生み出すためのWebアプリ開発とその周辺
「新しい」を生み出すためのWebアプリ開発とその周辺
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
最近、実務に導入してみたフロントエンドの技術8つの良かった点と反省点
Node.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Jaws ug shimane-1
Jaws ug shimane-1
Type scriptmemo
Type scriptmemo
なぜ人は必死でjQueryを捨てようとしているのか
なぜ人は必死でjQueryを捨てようとしているのか
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
Scraping withawsAWSを利用してスクレイピングの悩みを解決するチップス
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Destaque
GarumとMeteoriteと私 3nd Edition ver0.04
GarumとMeteoriteと私 3nd Edition ver0.04
Shinobu Okano
仕事場改善
仕事場改善
osamu miyake
SORACOM Update 20151211_SORACOM UG#0
SORACOM Update 20151211_SORACOM UG#0
SORACOM,INC
Android6.0で変わったアプリのアクセス権について
Android6.0で変わったアプリのアクセス権について
まえすとろ
Githubでアカウントを晒した事故に対する対処
Githubでアカウントを晒した事故に対する対処
まえすとろ
10 (about make 10 with 4 numbers challenge)
10 (about make 10 with 4 numbers challenge)
Takahiro Yoshimura
JRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみた
kimukou_26 Kimukou
これからの「パーミッション」の話をしよう
これからの「パーミッション」の話をしよう
ak_shio_555
20150319 testotipsio
20150319 testotipsio
Kazuaki Matsuo
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
Android,Brillo,ChromeOS
Android,Brillo,ChromeOS
l_b__
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
Yukiya Nakagawa
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
Kazuki Yoshida
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
Masataka Kono
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Masataka Kono
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Kenichi Yoshida
Destaque
(16)
GarumとMeteoriteと私 3nd Edition ver0.04
GarumとMeteoriteと私 3nd Edition ver0.04
仕事場改善
仕事場改善
SORACOM Update 20151211_SORACOM UG#0
SORACOM Update 20151211_SORACOM UG#0
Android6.0で変わったアプリのアクセス権について
Android6.0で変わったアプリのアクセス権について
Githubでアカウントを晒した事故に対する対処
Githubでアカウントを晒した事故に対する対処
10 (about make 10 with 4 numbers challenge)
10 (about make 10 with 4 numbers challenge)
JRebel for Android 1.0 を試食してみた
JRebel for Android 1.0 を試食してみた
これからの「パーミッション」の話をしよう
これからの「パーミッション」の話をしよう
20150319 testotipsio
20150319 testotipsio
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Android,Brillo,ChromeOS
Android,Brillo,ChromeOS
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
10年続いているwebサービスの画像サーバをノーメンテでftpサーバからs3互換のストレージサーバに移行している話
ライブコーディング・Androidのライブラリを作ってみよう
ライブコーディング・Androidのライブラリを作ってみよう
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Soracom & myThingsを使ったハンズオンセミナーをやってみた
Semelhante a About SnapKit - Open source lab -
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Yuichiro Saito
1画面から始めるStoryboard
1画面から始めるStoryboard
Yuichi Fujishige
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研
dmcc2015
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Shuichi Tsutsumi
Nullabilityについて
Nullabilityについて
ishikawa akira
WatchKitを実際にさわってみてわかったこと
WatchKitを実際にさわってみてわかったこと
Shuichi Tsutsumi
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
Koji Shiraishi
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ikada Kaori
Ms build 触ってみよう
Ms build 触ってみよう
Oda Shinsuke
SwiftでObjective-Cコードに立ち向かう
SwiftでObjective-Cコードに立ち向かう
Toshihiro Suzuki
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話
Hitoshi Saito
WKWebViewとUIWebView
WKWebViewとUIWebView
Yuki Hirai
BIOSからUEFI
BIOSからUEFI
Yasuaki Sera
javascript を Xcode でテスト
javascript を Xcode でテスト
Yoichiro Sakurai
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
ppengotsu Name
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Chiharu Nameki
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
Tomoki Hasegawa
iOS 9 Bootcamp #6 UIKit
iOS 9 Bootcamp #6 UIKit
Shingo Hiraya
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
Naoki Shimizu
Semelhante a About SnapKit - Open source lab -
(20)
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
1画面から始めるStoryboard
1画面から始めるStoryboard
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
2016年第一回プレ卒研in山口研
2016年第一回プレ卒研in山口研
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Nullabilityについて
Nullabilityについて
WatchKitを実際にさわってみてわかったこと
WatchKitを実際にさわってみてわかったこと
SwiftとCocoaPodsで始めるサクサクiOS開発!
SwiftとCocoaPodsで始めるサクサクiOS開発!
チーム開発にSwiftLintを導入してみた・詳細版
チーム開発にSwiftLintを導入してみた・詳細版
Ms build 触ってみよう
Ms build 触ってみよう
SwiftでObjective-Cコードに立ち向かう
SwiftでObjective-Cコードに立ち向かう
Obj-CをSwiftにリプレースするお話
Obj-CをSwiftにリプレースするお話
WKWebViewとUIWebView
WKWebViewとUIWebView
BIOSからUEFI
BIOSからUEFI
javascript を Xcode でテスト
javascript を Xcode でテスト
iOS豆知識ver0.0.5
iOS豆知識ver0.0.5
How to improve Type-safety in your Objective-C code
How to improve Type-safety in your Objective-C code
Objective-Cプログラマのためのswift導入法
Objective-Cプログラマのためのswift導入法
iOS 9 Bootcamp #6 UIKit
iOS 9 Bootcamp #6 UIKit
20150421 Geeks Night @ Money Foward
20150421 Geeks Night @ Money Foward
Mais de Daisuke Yamashita
potatotips_77.pdf
potatotips_77.pdf
Daisuke Yamashita
State management for ios development
State management for ios development
Daisuke Yamashita
Static analysis for go lang
Static analysis for go lang
Daisuke Yamashita
Convert the notification feature to the notification microservice
Convert the notification feature to the notification microservice
Daisuke Yamashita
歯磨き.go #2
歯磨き.go #2
Daisuke Yamashita
歯磨き.go Go言語の静的解析とコード生成勉強会
歯磨き.go Go言語の静的解析とコード生成勉強会
Daisuke Yamashita
ライブラリを作って5年たったので振り返る
ライブラリを作って5年たったので振り返る
Daisuke Yamashita
Tensorflow
Tensorflow
Daisuke Yamashita
Introduction of ios-chart in oss-labs#3
Introduction of ios-chart in oss-labs#3
Daisuke Yamashita
View Monitoring Tips
View Monitoring Tips
Daisuke Yamashita
Swift open source library - ViewMonitor -
Swift open source library - ViewMonitor -
Daisuke Yamashita
Let's Start Swift Open Source Activity.
Let's Start Swift Open Source Activity.
Daisuke Yamashita
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Daisuke Yamashita
Unity Introduction from 2D shooting game.
Unity Introduction from 2D shooting game.
Daisuke Yamashita
OpenCV on mobile
OpenCV on mobile
Daisuke Yamashita
Introduction of Swift from Machine Learning
Introduction of Swift from Machine Learning
Daisuke Yamashita
Introduction of Swift from Game Development
Introduction of Swift from Game Development
Daisuke Yamashita
How to measure UIView position on Native App
How to measure UIView position on Native App
Daisuke Yamashita
Mais de Daisuke Yamashita
(18)
potatotips_77.pdf
potatotips_77.pdf
State management for ios development
State management for ios development
Static analysis for go lang
Static analysis for go lang
Convert the notification feature to the notification microservice
Convert the notification feature to the notification microservice
歯磨き.go #2
歯磨き.go #2
歯磨き.go Go言語の静的解析とコード生成勉強会
歯磨き.go Go言語の静的解析とコード生成勉強会
ライブラリを作って5年たったので振り返る
ライブラリを作って5年たったので振り返る
Tensorflow
Tensorflow
Introduction of ios-chart in oss-labs#3
Introduction of ios-chart in oss-labs#3
View Monitoring Tips
View Monitoring Tips
Swift open source library - ViewMonitor -
Swift open source library - ViewMonitor -
Let's Start Swift Open Source Activity.
Let's Start Swift Open Source Activity.
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
バグのことは嫌いになってもXcodeのことは嫌いにならないでください。
Unity Introduction from 2D shooting game.
Unity Introduction from 2D shooting game.
OpenCV on mobile
OpenCV on mobile
Introduction of Swift from Machine Learning
Introduction of Swift from Machine Learning
Introduction of Swift from Game Development
Introduction of Swift from Game Development
How to measure UIView position on Native App
How to measure UIView position on Native App
About SnapKit - Open source lab -
1.
SnapKitについて オープンソース勉強会 山下大輔
2.
• 自己紹介 https://github.com/daisuke0131 • ビズリーチのiOSエンジニア •
https://github.com/daisuke0131/ ViewMonitor を作っています。星ください。PR 下さい。
3.
use_frameworks! pod 'Bond' pod 'SwiftTask' pod
'Alamofire' pod 'SwiftyJSON' pod 'SwiftCop' pod 'Async' pod 'SDWebImage' ライブラリ的には
4.
What s ViewMonitor
5.
• Masonry(objective-C)のswift版ライブラリ • 独自記述で簡単に書けそう->autoLayoutはコード から書こうと思うとかなり辛い •
シンプルに書けそうなのでちょっとしたときに制 約を追加したりに便利そう SnapKitについて https://github.com/SnapKit/SnapKit
6.
• iOS6から導入されたviewの配置を決める仕組み • view同士の位置を制約を使って設定 •
IB上からポチポチするのがデフォ。 • 画面サイズが変わったときに動的に配置が調整され る • viewの書き換え時に動的にviewの配置換えするのは つらい。-> iOS9から導入されたUIStackViewがこの 辺の課題解決をしてくれそう。 Autolayoutについて
7.
上右左のself.viewに対して 距離0を設定 高さ50を設定
8.
autolayoutで書くと let redView =
UIView() redView.backgroundColor = UIColor.redColor() self.view.addSubview(redView) view.translatesAutoresizingMaskIntoConstraints = false redView.translatesAutoresizingMaskIntoConstraints = false redView.addConstraint( NSLayoutConstraint(item: redView, attribute: .Height, relatedBy: .Equal,toItem: nil, attribute: .Height, multiplier: 1.0, constant: 50.0) ) self.view.addConstraints([ NSLayoutConstraint(item: redView, attribute: .Top, relatedBy: .Equal, toItem: self.view, attribute: .Top, multiplier: 1.0, constant: 0.0), NSLayoutConstraint(item: redView, attribute: .Left, relatedBy: .Equal, toItem: self.view, attribute: .Left, multiplier: 1.0, constant: 0.0), NSLayoutConstraint(item: redView, attribute: .Right, relatedBy: .Equal, toItem: self.view, attribute: .Right, multiplier: 1.0, constant: 0.0), ])
9.
SnapKitで書くと let redView =
UIView() redView.backgroundColor = UIColor.redColor() self.view.addSubview(redView) redView.snp_makeConstraints { (make) -> Void in make.height.equalTo(50) make.top.equalTo(view).offset(0) make.left.equalTo(view).offset(0) make.right.equalTo(view).offset(0) }
10.
IBに配置したviewの制約をいじる IBに配置して コードから autolayout設定 制約通りに配置 例えば以下の様なことがしたい
11.
試すと エラーめっちゃでる。。。
12.
• IBにおいたviewにはいい感じに勝手に autolayoutが設定されるっぽい。 • IB上からuse
autolayoutをoffにしてやるとうま くいく。 • 配置からコードでやる場合は問題ないです。 http://stackoverflow.com/questions/30534850/ prevent-interface-builder-from-auto-creating- constraints 参考) なんで?
13.
UIStackViewを使うと便利になるよ 実行時に要素1 を消す 要素1 を詰めて表示
14.
まとめ • SnapKitはすごく書きやすい • コードで完結させるときには使いやすい •
IBとかと中途半端に連携させるとつらいかも。(制 約をOutletとかで接続するとかの方がよさそう) • ちょっとしたところで使うのはおすすめできない。 • ちょっとしたところはUIStackViewが解決してくれ るとおもうので期待。
15.
Autolayout制約でのエラー
16.
Autolayoutの制約エラー ->発生してもなんとなくいい感じに表示はされます。
17.
ここでシンボリックブレイクポイントを仕込む
18.
expr -l objc++
-O -- [[UIWindow keyWindow] _autolayoutTrace]
19.
Autolayoutの制約矛盾が発生した段階でブレイク
20.
Viewの階層表示
21.
別プロジェクトへの反映方法
22.
http://www.slideshare.net/daisukeyamashita180/21- potatotips-yamashita バグのことは嫌いになってもXcodeのことは嫌いにならないでく ださい。 http://qiita.com/daisuke0131/items/ 82e85e75e766cf08745f Xcodeに関すること
Baixar agora