自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我在開(kāi)發(fā)第一個(gè)Swift App過(guò)程中學(xué)到的四件事

移動(dòng)開(kāi)發(fā)
這個(gè)夏天我的app開(kāi)發(fā)項(xiàng)目是Instant Poetry 2,它原本是Ray還是獨(dú)立iOS開(kāi)發(fā)者時(shí)編寫(xiě)的一個(gè)應(yīng)用,現(xiàn)在我需要用Swift和iOS 8 API將它整個(gè)重寫(xiě)一遍。對(duì)我來(lái)說(shuō)這是一次豐富的學(xué)習(xí)體驗(yàn) – 不但深入學(xué)習(xí)Swift和iOS 8的復(fù)雜細(xì)節(jié),還思考了在未來(lái)如何更好的將這些經(jīng)驗(yàn)傳授給別人。

這個(gè)夏天我的app開(kāi)發(fā)項(xiàng)目是Instant Poetry 2,它原本是Ray還是獨(dú)立iOS開(kāi)發(fā)者時(shí)編寫(xiě)的一個(gè)應(yīng)用,現(xiàn)在我需要用Swift和iOS 8 API將它整個(gè)重寫(xiě)一遍。

對(duì)我來(lái)說(shuō)這是一次豐富的學(xué)習(xí)體驗(yàn) – 不但深入學(xué)習(xí)Swift和iOS 8的復(fù)雜細(xì)節(jié),還思考了在未來(lái)如何更好的將這些經(jīng)驗(yàn)傳授給別人。

這里我就將在開(kāi)發(fā)***個(gè)Swift app過(guò)程中學(xué)到的四件事,分享給大家。

4) Swift仍然在演變當(dāng)中

在整個(gè)夏天,Swift語(yǔ)言本身有了不少變化。我開(kāi)始編寫(xiě)app時(shí)使用的Swift版本是beta 3,而每一次Xcode版本升級(jí)都帶來(lái)語(yǔ)法變化和Cocoa方法簽名的微調(diào)。

如果你計(jì)劃使用Swift開(kāi)發(fā)應(yīng)用,你需要花精力關(guān)注這些變化并跟上Swift演進(jìn)的步伐。

不過(guò)我認(rèn)為這種精力花費(fèi)的值得。使用***和***的工具是很重要的,另外關(guān)注語(yǔ)言的演變本身也將成為很好的學(xué)習(xí)經(jīng)驗(yàn)。蘋(píng)果一直關(guān)注和傾聽(tīng)來(lái)自開(kāi)發(fā)者對(duì)于Swift的反饋和問(wèn)題報(bào)告,所以你甚至有機(jī)會(huì)參與到這個(gè)語(yǔ)言成型的進(jìn)程當(dāng)中。

3) Swift暴露出Cocoa不太好的一面

你是否期望獲取一個(gè)包含多個(gè)SKProduct對(duì)象的Swift數(shù)組?抱歉,Cocoa將返回給你包含AnyObject的隱式解析可選類型的數(shù)組(implicitly unwrapped optional array)。

你是否想傳遞一個(gè)[NSObject: AnyObject]類型的Swift數(shù)組給對(duì)應(yīng)的方法?抱歉,Cocoa真正想要的是一個(gè)NSDictionary,或者一個(gè)會(huì)導(dǎo)致靜默失效(silently fail)的東西。

你能夠感覺(jué)到Swift和Cocoa之間的緊張氣氛:Swift想要做某件事,但它不得不為了適應(yīng)Cocoa而做折衷。我們必須面對(duì)這樣一個(gè)事實(shí),從Swift透鏡來(lái)看Cocoa并不總是漂亮的!

 

[[121547]]

這里有一個(gè)壞消息和一個(gè)好消息。

壞消息是我們正處在一個(gè)過(guò)渡當(dāng)中,蘋(píng)果在每次Swift/Xcode升級(jí)中所做的一部分事情,就是清理Swift-Cocoa的接口,來(lái)讓它們更好的兼容。

好消息是蘋(píng)果很善于過(guò)渡,你可以回想一下從PowerPC到Intel處理器的過(guò)渡、經(jīng)典Mac OS到OS X的過(guò)渡等等。未來(lái)的某一天,Cocoa也將會(huì)原生的***支持Swift語(yǔ)言。

2) Swift和Objective-C是幸福的一對(duì)

真的,這是我之前觀點(diǎn)的一個(gè)必然推論 – 你可能覺(jué)察到Swift某些地方挺怪異,是因?yàn)樗枰贠bjective-C runtime和Objective-C API下工作,所以只能做出妥協(xié)。

[[121548]]

從實(shí)際開(kāi)發(fā)來(lái)看,在我的Swift app里使用Objective-C第三方類庫(kù)和擴(kuò)展非常簡(jiǎn)單,我只需要將它們的頭文件導(dǎo)入到我的bridging header,它們就能正常工作了。

如果你有一個(gè)喜歡的庫(kù)是用Objective-C編寫(xiě)的,或者已有的app,你想要在它們當(dāng)中添加一兩個(gè)Swift類,這不是個(gè)什么大問(wèn)題。

1) Swift非常好玩

我很享受和Swift一起玩耍工作的日子。

它極富表現(xiàn)力。像自判斷鏈接(optional chaining)和nil coalescing特性能讓你寫(xiě)出更短的代碼。讓我最驚訝的是枚舉類型給我?guī)?lái)的享受 – 它的確是一個(gè)雙贏,讓你代碼更具可讀性,還包括附加的好處比如類型檢查和實(shí)例窮舉檢查。

[[121549]]

作為Objective-C和Ruby的粉絲,我覺(jué)得Swift就像集合了這兩種語(yǔ)言優(yōu)點(diǎn)的混血兒。如果你學(xué)過(guò)Objective-C和Cocoa,閱讀起Swift代碼將沒(méi)有任何困難,如果你還沒(méi)有開(kāi)始學(xué)習(xí),那么就從現(xiàn)在開(kāi)始用Swift開(kāi)發(fā)一個(gè)簡(jiǎn)單的應(yīng)用吧!

附加感受:Extension將改變世界!

至少對(duì)于蘋(píng)果的世界是這樣。在iOS 8里,蘋(píng)果引入了app extension,允許開(kāi)發(fā)者通過(guò)app擴(kuò)展實(shí)現(xiàn)自定義分享選項(xiàng)、通知、鍵盤(pán)以及照片。

在Instant Poetry 2里,我使用了一個(gè)Photo Extension,讓用戶能夠直接在Photo應(yīng)用里添加詞句到圖片上。在這iOS 8以前是不可能做到的。

應(yīng)用們從此不再被局限在自己的sandbox里了,貌似新的開(kāi)放的蘋(píng)果將讓app能夠從更多的地方做更多的事情,這是多么美好的事啊。

即便是即將到來(lái)的Apple Watch,它也是iPhone屏幕的一個(gè)擴(kuò)展,我等不及想知道我們到底能用Watch Kit來(lái)做些什么。

也許我下個(gè)Swift app將是和Apple Watch有關(guān)呢!~

那么未來(lái)將是什么樣的?

我的預(yù)測(cè)是,Swift的一些粗糙的地方將在短時(shí)間內(nèi)被反復(fù)打磨。很快,Swift開(kāi)發(fā)的應(yīng)用將會(huì)無(wú)處不在,并且在Github上,Swift項(xiàng)目將遠(yuǎn)遠(yuǎn)超過(guò)Objective-C。

不過(guò)如果你現(xiàn)在開(kāi)始開(kāi)發(fā)Swift應(yīng)用的話,你將會(huì)面臨一些挑戰(zhàn)。由于Swift的快速演變,我認(rèn)為Swift 1.0項(xiàng)目遷移到Swift 2.0需要做不少工作,雖然比起從Objective-C遷移到Swift肯定要輕松一些。

不過(guò)這也正是我們熱愛(ài)科技的原因,不是嗎?學(xué)習(xí)新知識(shí)、跟上潮流、使用******的語(yǔ)言和API,這些能讓我保持興奮。

***,如果你想看看Instant Poetry 2能做什么,你可以從App Store免費(fèi)下載。

你是否已經(jīng)開(kāi)始你的Swift開(kāi)發(fā)旅程呢?如果是的話,我想聽(tīng)聽(tīng)你的體驗(yàn)看法。

英文原文:http://www.raywenderlich.com/86278/four-things-learned-making-first-swift-app

責(zé)任編輯:chenqingxiang 來(lái)源: cocoachina
相關(guān)推薦

2015-08-07 10:51:00

Android App第一個(gè)

2014-03-10 10:03:32

SaaS網(wǎng)站網(wǎng)站經(jīng)營(yíng)

2021-03-09 15:03:03

iOS 15Android蘋(píng)果

2015-08-05 09:31:42

開(kāi)發(fā)六件事

2020-11-05 10:33:01

開(kāi)發(fā)代碼技術(shù)

2016-04-07 10:49:28

游戲開(kāi)發(fā)者

2014-07-30 14:08:38

產(chǎn)品經(jīng)理

2019-12-12 15:40:08

物聯(lián)網(wǎng)數(shù)字健康自動(dòng)化

2014-09-05 13:37:29

程序員

2012-07-12 00:22:03

創(chuàng)業(yè)產(chǎn)品

2022-05-09 15:30:55

人工智能麻省理工

2014-08-15 15:01:29

時(shí)間軸

2015-04-09 09:53:08

CA TechnoloDevOps

2020-05-08 15:30:42

PostgreSQL數(shù)據(jù)庫(kù)數(shù)據(jù)

2018-08-22 17:32:45

2018-10-30 10:15:34

無(wú)服務(wù)器架構(gòu)Serverlessc

2014-03-26 10:06:59

程序員軟件銷售

2022-10-17 10:28:05

Web 組件代碼

2019-04-16 12:53:57

2015-06-15 12:39:20

程序開(kāi)發(fā)者注意件事
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)