SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
ようこそ! 
Swift Playgroundsへ 
2014/10/24 @【#techbuzz】第4 回Swift 勉強会
フロントエンドエンジニア 
(2008 年よりフリーランス) 
いろいろやっています。 
Web: JavaScript, TypeScript 
iOS: Objective-C, Swift 
Flash/AIR: ActionScript3/2 
ブログ 
http://www.kuma-de.com/ 
Twitter: @kinkuma_design 
仕事では営業用とか教育用のツール 
アプリ制作が多いです 
あと、クリエイティブ系のセミナーを開催したりす 
るF-site のスタッフをやってます 
http://f-site.org/ 
※来月11/08 に開催します(ステマ)
日課管理・記録アプリ 
Habit Keeper 
AppStoreで好評発売中!! 
https://itunes.apple.com/jp/app/ 
id567646997?l=ja&mt=8 
無料版もあります! 
https://itunes.apple.com/jp/app/ 
id602525022?l=ja&mt=8 
おかげさまで有料+無料合わせて 
5 万ダウンロードされました!
ここから本題 
swiftちゃん
Swift Playgrounds って何? 
Xcode6 から可能になったswift の実行環境 
例えたのなら? 
・swift 
・Cocoa (OS X) 
・Cocoa Touch (iOS) 
の遊び場、実験ひろば
Swift Playgrounds って何? 
Playground 
を用意 
コードを 
編集 
実行結果を 
すぐに確認 
早いサイクルでコードの実験&結果確認ができる 
いらなくなったら気軽にゴミ箱へ
Swift Playgrounds って何? 
・playground ファイル単体で 
・プロジェクトに追加する形で 
どちらでも実行可能 
コードを書いているときにちょっと試してみたいことを、 
プロジェクトに直接記述せずに 
気軽に確認+実験ができる!!
Swift Playgrounds って何? 
こんなときに便利! 
文法の書き方 
swift で配列の書き方ってどうやるんだっけ? 
あれ?let やvar の違いって? 
? 
プレビュー 
UITableViewCell ってどんなタイプがあるんだっけ? 
UIColor のこの色ってどんな色? 
インスタンスのプロパティの中身って? 
? 
?
大まかな機能は3 種類 
The Timeline 
値をキャプチャしてグラフ化 
Quick Looks 
プレビュー+値出力 
XCPlayground 
Apple 製のPlaygrounds 用のモジュール 
(追加機能みたいなもの。使わなくてもOK)
The Timeline 
swiftちゃん
The Timeline 
値をキャプチャしてグラフ化
The Timeline 
右下のスライダを動かすとグラフ上の値が確認できる
The Timeline 
デモ
Quick Looks 
swiftちゃん
Quick Looks 
プレビュー+値出力 
いろんなものをその場で確認できる 
・色 
・文字列 
・画像 
・ビュー(UIView) 
・配列+辞書 
・Points, rects, sizes 
・ベジェパス 
・URL 
・クラスと構造体 などなど
Quick Looks 
表示できるタイプ一覧 
Operating System Types Supporting debugQuickLookObject 
https://developer.apple.com/library/IOs/documentation/IDEs/Conceptual/CustomClassDisplay_in_QuickLook/CH02-std_ 
objects_support/CH02-std_objects_support.html#//apple_ref/doc/uid/TP40014001-CH3-SW1 
またQuick Looks はどんな風に見せるのか 
カスタマイズも可能 
About Variables Quick Look for Custom Types 
https://developer.apple.com/library/IOs/documentation/IDEs/Conceptual/CustomClassDisplay_in_QuickLook/Introduction/ 
Introduction.html 
Swift: Adding custom quick look to your classes 
http://ericasadun.com/2014/06/26/swift-adding-custom-quick-look-to-your-classes/
Playground への画像の追加方法 
View > Utitilities > Show File Inspector 
Playground Settings の矢印を 
クリックしてFinder の中を開く 
そこに追加すればOK
Quick Looks 
デモ
XCPlayground 
swiftちゃん
XCPlayground 
Apple 製のPlaygrounds 用のモジュール 
・XCPCaptureValue 
手動での値キャプチャ 
・XCPShowView 
ライブビュー 
・XCPSetExecutionShouldContinueIndefinitely 
非同期実行
XCPlayground 
使う前に、上のところに 
import XCPlayground 
と書いておく
XCPCaptureValue 
手動での値キャプチャ 
func XCPCaptureValue<T>(identifier: String, value: T) 
identifierでひとつのグラフにすることができる 
自動だと、値の流れがぶつ切りなってしまうところも 
つなげることができるようになる。
XCPCaptureValue 
import UIKit 
import XCPlayground 
//XCPCaptureValue 
// 手動で値をとった場合 
let selfCapId = "manual_capture" 
var n = 0 
n = 800 
XCPCaptureValue(selfCapId, n) 
n = 30 
XCPCaptureValue(selfCapId, n) 
for i in 0 ... 30{ 
n += i 
if n % 3 == 0 { 
XCPCaptureValue(selfCapId, n) 
} 
}
XCPShowView 
SpriteKit やView のアニメーションを 
Playground で確認できる 
ただし、Xcode6.0.1 の時点ではUIView は未対応。 
OSX のNSView は対応している。 
Xcode6.1 ではUIView の対応ができているらしい(未確認) 
-> Xcode6.1 がリリースされて対応が確認できました。 
File Inspector のRun in Full Simulator 
を有効にする必要あり
XCPShowView 
import UIKit 
import XCPlayground 
// アニメーション 
//Run in Full Simulator を有効にする必要あり 
var animContainerView = UIView(frame: CGRectMake(0, 0, 300, 300)) 
XCPShowView("animationView", animContainerView) 
var animView = UIView(frame: CGRectMake(0, 0, 30, 30)) 
animView.backgroundColor = UIColor.blueColor() 
animContainerView.addSubview(animView) 
UIView.animateWithDuration(1.0 
, animations: { () -> Void in 
var pos = animView.frame.origin 
pos.x = 230 
pos.y = 230 
animView.frame.origin = pos 
}, completion: { (success:Bool) -> Void in 
println("complete!!") 
})
XCPSetExecutionShouldContinueIndefinitely 
非同期実行 
func XCPSetExecutionShouldContinueIndefinitely(conti 
nueIndefinitely: Bool = default) 
(関数名長い!) 
普通は上からプログラムを順番に実行してその場で終わってしま 
うが、時間のかかる処理を待つことができる
XCPSetExecutionShouldContinueIndefinitely 
import UIKit 
import XCPlayground 
class SampleTimer{ 
... 省略 
func startTimer(){ 
stopTimer() 
timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "onTimerTick", 
userInfo: nil, repeats: true) 
} 
... 省略 
} 
XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true) 
let timer = SampleTimer() 
timer.startTimer()
XCPlayground 
デモ
注意事項+まとめ 
swiftちゃん
気をつけること 
パフォーマンステストには用いないようにする 
やりたいときはXCTest を利用する 
(WWDC2014 Swift Playgrounds より)
今はできないこと(制限事項) 
・ユーザーインタラクション(マウスとかタッチとか) 
・Entitlements(Push Notifications とかのあたり) 
・実機での実行 
・自作のFramework 
(WWDC2014 Swift Playgrounds より)
まとめ 
書いたものがすぐに実行できる 
Playground は便利! 
ファイル1 枚で完結するので気軽に作ろう! 
文の書き方やロジックなど、 
気になるところはすぐ試そう! 
P 
P 
P
参考リンク 
WWDC2014 Swift Playgrounds 
https://developer.apple.com/videos/wwdc/2014/ 
XCPlayground Module Reference 
https://developer.apple.com/library/ios/documentation/Swift/Reference/Playground_Ref/Chapters/XCPlayground.html 
[Swift] グラフもレンダリングもイケる! 
Playgroud が超絶便利! 
http://www.dorapro.co.jp/engineerblog/?p=137
ありがとう 
ございました! 
swiftちゃん

Más contenido relacionado

La actualidad más candente

coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworks
Atsushi Tadokoro
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
Atsushi Tadokoro
 
openFrameworkとCityCompilerでバーチャルとリアルを結ぶ
openFrameworkとCityCompilerでバーチャルとリアルを結ぶopenFrameworkとCityCompilerでバーチャルとリアルを結ぶ
openFrameworkとCityCompilerでバーチャルとリアルを結ぶ
Atsushi Tadokoro
 
インプットメソッドメンテナーの日常
インプットメソッドメンテナーの日常インプットメソッドメンテナーの日常
インプットメソッドメンテナーの日常
Fuminobu Takeyama
 

La actualidad más candente (20)

Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
Apple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべてApple審査を一発通過!iOS開発経験0でも出来るじげん流Swift開発のすべて
Apple審査を一発通過! iOS開発経験0でも出来る じげん流Swift開発のすべて
 
Embedded framework and so on
Embedded framework and so onEmbedded framework and so on
Embedded framework and so on
 
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
第7回 カジュアル Swift 勉強会 @ 青葉台 オープニング #cswift
 
Uiテスト@yidev
Uiテスト@yidevUiテスト@yidev
Uiテスト@yidev
 
こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座
 
coma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworkscoma - creator’s talk session: Code - openFrameworks
coma - creator’s talk session: Code - openFrameworks
 
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
デジタルアートセミナー#2 openFrameworksで学ぶ、 クリエイティブ・コーディング Session 3: アドオンを作ろう!
 
openFrameworkとCityCompilerでバーチャルとリアルを結ぶ
openFrameworkとCityCompilerでバーチャルとリアルを結ぶopenFrameworkとCityCompilerでバーチャルとリアルを結ぶ
openFrameworkとCityCompilerでバーチャルとリアルを結ぶ
 
【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!【Swift】 それ、enumとstructでやってみましょう!!
【Swift】 それ、enumとstructでやってみましょう!!
 
Pythonを中心としたチーム開発
Pythonを中心としたチーム開発Pythonを中心としたチーム開発
Pythonを中心としたチーム開発
 
Lt 20150711
Lt 20150711Lt 20150711
Lt 20150711
 
Vagrant でお手軽開発環境
Vagrant でお手軽開発環境Vagrant でお手軽開発環境
Vagrant でお手軽開発環境
 
milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1milkcocoa入門@milkcocoa meetup#1
milkcocoa入門@milkcocoa meetup#1
 
パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理パターンでわかる! .NET Coreの非同期処理
パターンでわかる! .NET Coreの非同期処理
 
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
第1回ROS勉強会発表資料 ROS+Gazeboではじめるロボットシミュレーション
 
インプットメソッドメンテナーの日常
インプットメソッドメンテナーの日常インプットメソッドメンテナーの日常
インプットメソッドメンテナーの日常
 
Dev ops
Dev opsDev ops
Dev ops
 
みんなでおばけになる #mlkcca
みんなでおばけになる #mlkccaみんなでおばけになる #mlkcca
みんなでおばけになる #mlkcca
 
いまさら触るAwt
いまさら触るAwtいまさら触るAwt
いまさら触るAwt
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 

Similar a ようこそ! Swift Playgroundsへ

Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Atsushi Tadokoro
 

Similar a ようこそ! Swift Playgroundsへ (20)

これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門これからはじめる SwiftPlayground入門
これからはじめる SwiftPlayground入門
 
OpenCV on mobile
OpenCV on mobileOpenCV on mobile
OpenCV on mobile
 
Wolcome to swift
Wolcome to swiftWolcome to swift
Wolcome to swift
 
SwiftのOptionalを理解する
SwiftのOptionalを理解するSwiftのOptionalを理解する
SwiftのOptionalを理解する
 
iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜iPhoneアプリ開発の歩き方〜Swift編〜
iPhoneアプリ開発の歩き方〜Swift編〜
 
JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門JavaScript使いのためのTypeScript実践入門
JavaScript使いのためのTypeScript実践入門
 
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-EdoiOSアプリ開発のためのSwiftビギナーズ勉強会 第6回    @Co-Edo
iOSアプリ開発のためのSwiftビギナーズ勉強会 第6回 @Co-Edo
 
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
2020/06/16 tsjp-azure-staticwebapps-vs_codespaces
 
iOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahooiOS 8/Swift 概要 #ios8yahoo
iOS 8/Swift 概要 #ios8yahoo
 
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」通常の3倍の速度でプログラミング!?「 Emacsキーバインドのすすめ」
通常の3倍の速度で プログラミング!? 「 Emacsキーバインドのすすめ」
 
Unityの夕べ in Fukuoka
Unityの夕べ in FukuokaUnityの夕べ in Fukuoka
Unityの夕べ in Fukuoka
 
Swiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったことSwiftのアプリ開発でハマったこと
Swiftのアプリ開発でハマったこと
 
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみようAI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
openFrameworks iOS 入門
openFrameworks iOS 入門openFrameworks iOS 入門
openFrameworks iOS 入門
 
OpenCVで作るスタンプAR
OpenCVで作るスタンプAROpenCVで作るスタンプAR
OpenCVで作るスタンプAR
 
Swift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswiftSwift 2.0 で変わったところ「後編」 #cswift
Swift 2.0 で変わったところ「後編」 #cswift
 
Visual studio 2019 updates pickup!
Visual studio 2019 updates pickup!Visual studio 2019 updates pickup!
Visual studio 2019 updates pickup!
 
Swift
SwiftSwift
Swift
 
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCvMedia Art II 2013  第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
Media Art II 2013 第6回:openFrameworks Addonを使う 2 - ofxOpenCV と ofxCv
 

Último

Último (11)

新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 

ようこそ! Swift Playgroundsへ