前年當(dāng)我第一次看到Xcode
里面自帶的Playground
的時(shí)候,我并沒有意識(shí)
到它的強(qiáng)大:
“真是有趣(沒什么egg用)的玩意”秩仆,
當(dāng)時(shí)我覺得它的作用只在于讓人們更方便的學(xué)習(xí)swift码泛,寫寫for循環(huán)猾封,打印一下數(shù)字三角形什么的澄耍,當(dāng)時(shí)我的腦洞只停留在這種程度;但當(dāng)我發(fā)現(xiàn)它可以支持UIKit的時(shí)候,
我意識(shí)到事情沒那么簡(jiǎn)單。
真是酷炫不是么齐莲?
import UIKit
import XCPlayground
let containerView = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 375.0, height: 667.0))
XCPShowView("Container View", view: containerView)
let circle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0))
circle.center = containerView.center
circle.layer.cornerRadius = 25.0
let startingColor = UIColor(red: (253.0/255.0), green: (159.0/255.0), blue: (47.0/255.0), alpha: 1.0)
circle.backgroundColor = startingColor
containerView.addSubview(circle);
let rectangle = UIView(frame: CGRect(x: 0.0, y: 0.0, width: 50.0, height: 50.0))
rectangle.center = containerView.center
rectangle.layer.cornerRadius = 5.0
rectangle.backgroundColor = UIColor.whiteColor()
containerView.addSubview(rectangle)
UIView.animateWithDuration(2.0, animations: { () -> Void in
let endingColor = UIColor(red: (255.0/255.0), green: (61.0/255.0), blue: (24.0/255.0), alpha: 1.0)
circle.backgroundColor = endingColor
let scaleTransform = CGAffineTransformMakeScale(5.0, 5.0)
circle.transform = scaleTransform
let rotationTransform = CGAffineTransformMakeRotation(3.14)
rectangle.transform = rotationTransform
})
我逐漸意識(shí)到playground的強(qiáng)大痢站,我覺得playground有以下幾個(gè)優(yōu)點(diǎn):
-
快速學(xué)習(xí)swift語言.
有種用
storyboard
來做iOS
界面感覺,代碼也能馬上看出執(zhí)行效果选酗。
這樣我們無論是學(xué)習(xí)swift的函數(shù)式編程阵难,甚至是學(xué)習(xí)算法(這個(gè)腦洞可以有),
無需手動(dòng)編譯芒填,我們都能很快的看到效果了呜叫。
-
快速測(cè)試代碼效果。
像上面殿衰,我們?cè)诶L制了簡(jiǎn)單的動(dòng)畫朱庆,我們可以很方便的使用playgournd
來學(xué)習(xí)ios的動(dòng)畫效果,網(wǎng)絡(luò)請(qǐng)求闷祥,多線程娱颊,playground也能集成第三方庫,感覺
是不是很酷炫凯砍?舉個(gè)例子:像github上有個(gè)有個(gè)小巧的http請(qǐng)求庫箱硕,JustHTTP/Just
用playground寫了份說明:下載地址,注意要用xcode7打開
- 支持富文檔的注釋剧罩,注釋支持markdown。再用Just個(gè)作為例子座泳,看看它的注釋:
那么,他是怎么寫的呢钳榨?
當(dāng)我在玩的Playground,覺得它真是神器,難怪Xcode給了他那么好的位置薛耻,
當(dāng)然playground還有很多需要改進(jìn)的地方营罢,比如:
- 比較慢(建議不用的代碼先注釋掉,
如果只是使用swift不實(shí)用UIKit
即iOS那一套的話饼齿,建議選擇OSX而不是iOS,快點(diǎn)饲漾,還有文件不要太大) - 文件容易損壞,即使把代碼刪除了還是報(bào)錯(cuò)缕溉,當(dāng)然很多是beta版時(shí)候才出現(xiàn)考传,但正式版奔潰會(huì)少一點(diǎn)
- 不算是缺點(diǎn)(其實(shí)是我太弱雞),我覺得那些涉及人機(jī)交互的效果在Playground不太好做证鸥,
當(dāng)然我知道Playground不是萬能的僚楞,但如果能夠直接zai上面實(shí)現(xiàn)交互的話勤晚,那一定很爽。
說完了泉褐,祝大家玩的開心赐写,祝大家有個(gè)愉快的周末 !