當你努力想學習 Swift 時,全世界都會來幫你

如果大學時不小心錯過了沈佳宜,也錯過了資工電機等傳授程式機密的科系,是否就一輩子和21世紀最棒的工作 – iOS App 開發無緣,無法在咖啡廳寫寫程式扮扮文青,享受發光蘋果帶來的別人羨慕眼光呢 ?

Screen Shot 2015-07-25 at 4.08.52 PM

從前答案是很殘酷的 YES ,開發 iOS App 的 Objective-C 程式語言只比火星文好懂一點。然而在2014年的秋天,一切都變了!  Apple 發明了最適合人類學習的程式語言 Swift ,接下來就讓我們好好瞧瞧它的九大迷人之處吧。

一 、簡潔易懂,8歲小孩也能上手的語法

Swift 是新發明的年輕語言,就像世界上大部分的定律一樣,新的總比舊的好,年輕的總比老的好。從新打造的 Swift 份外地貼心,十分淺顯易懂,而且懂得沈默是金的道理,絕不多話,讓我們輕輕鬆鬆,少少的程式碼實現大大的功能。

1*KpxzCjKoWVsWDu454RbD6w

二、重金打造,適合程式練功的遊樂園 Playground 

大家都知道 Apple 什麼沒有,就是錢多。但最令人感到窩心敬佩的,卻是 Apple 總把錢花在有意義的地方,比方那重金打造,適合初學者程式練功的 Playground 遊樂園。在遊樂園裡我們可以隨心所欲地輸入程式碼,立即見到程式執行的結果,馬上體會每行程式碼產生的蝴碟效應。

不過如此好玩的遊樂園十分挑剔,只接受 Swift 語法,只有 Swift 門派的學徒可以免費入場,其它語言門派的只能被檔在門口,終生不得入園玩耍,就好像神鵰俠侶裡男子不得踏入神聖的古墓半步一樣。

Screen Shot 2015-07-25 at 6.17.21 PM

 

三、站在金字塔頂端,快如小李飛刀 

Swift 克服了其它語言長久以來無法兩全的難題。 C 語言執行效能一流,但開發速度遠遠不及 JavaScript , Python 等 script 語言。 Python 開發很快,但執行效能卻又比不上 C , Java 。 Swift 同時兼顧開發速度和執行效能,幫助我們更快速地開發出順暢的 App ,也讓我們有更多的時間玩耍。(玩耍是一定要的,許多火紅 App Idea 都是在玩樂中現身的。)

1*mm0rs9CxIdIT12HqiCYPpg

 

四、安全擺第一,不再帶給 App 無心的閃退傷害

Swift 在設計時即將安全擺在第一順位,以幫助我們寫出更強壯,更不易閃退,問題更少的 App 為生平大志。它的許多設計都緣自於安全的考量,而且更多時候它將在程式開發時即好心給予我們警告和錯誤提示,將傷害減到最低,以防 App 執行時才閃退,帶給使用者一輩子抹不去的陰影。

Screen Shot 2015-07-25 at 6.34.02 PM

 

五、點子都是偷來的, Swift 集百家之大成,成為地球上最先進的語言

全新打造的 Swift 站在巨人的肩膀上,結合各家所長,偷師其它語言的優點,改善其它語言的缺點,成為地球上最先進,功能最強大的程式語言。

1*grhYB8tRx-K6aV8ThS7FsA

 

六、物以稀為貴, Swift 高手前景(錢景)不可限量

同樣開發程式,薪水的差距其實頗大,從無經驗的三四萬,到高手等級的破十萬月薪。台灣雖然工程師不比矽谷多,但精通 C 、 Java 、 Objective-C 的專家也已多到總能在街角的咖啡廳偶遇的地步。所以與其等待奇蹟發生,幻想自己某天一覺醒來功力大增,程式開發技術追上五年開發經驗的前輩,不如把握良機,儘早開始學習 Swift ,未來公司徵求三年經驗的 Swift 專家時,你我都會成為市場上少數符合資格,走路有風的 Swift 專家。

 

七、豐富的學習資源

牧羊少年奇幻之旅裡有句名言,”當你努力想完成某件事時,全世界都會來幫你”。擁有 Apple 這個富爸爸在背後支持,如今 Swift 的學習資源已經十分豐富,”當你努力想學習 Swift 時,全世界都會來幫你”,無數的好書,好老師,好網站,好影片,傳授著關於 Swift 的點點滴滴。

Screen Shot 2015-07-26 at 1.54.44 PM

Apple 全力推廣 Swift ,甚至為 Swift 打造專屬網站,成為第一個擁有個人網站的程式語言。

Screen Shot 2015-07-26 at 2.42.49 PM

Swift 也有自己專屬的 Blog

Screen Shot 2015-07-26 at 2.50.53 PM

 

走在時代尖端的大學也開始傳授 Swift 課程,例如美國 Standford 的 Developing iOS 10 Apps with Swift ,英國普利茅斯大學的 iOS Development in Swift

Screen Shot 2017-02-25 at 1.51.52 PM

 

網路上的程式教學網站和實體的補習班也一個個熱血地投入 Swift 教學。例如 App Coda Ray Wenderlich Udacity 等。

Screen Shot 2017-02-25 at 1.53.20 PM

Screen Shot 2015-07-26 at 3.36.50 PM

 

 

所謂書中自有黃金屋,想要增進 Swift 技藝,一定要培養看書自學的能力。 Apple 官方出版的免費電子書 The Swift Programming Language 絕對是不能錯過的必讀聖經,其地位就好像當年武林中人人爭搶的九陰真經。

Screen Shot 2015-07-26 at 8.57.10 PM

 

雖然 The Swift Programming Language 寫的很棒,不過彼得潘也承認它的確有點難度,一般人往往無法消化,看到睡著也是件稀鬆平常的事,就好像當年西毒練九陰真經練到發瘋一樣。所以如果真的看不下去也不用勉強,坊間還有許多不會讀到兩鬢雙白,頭冒白煙的 Swift 好書可以參考。英文了話首推 Apple 為初學者精心撰寫的電子書,App Development with Swift

Screen Shot 2017-02-01 at 4.00.17 PM

 

中文了話則可考慮壞人虎克船長死對頭寫的那本” Swift 程式設計入門“。(既然是壞人的死對頭,想必是個好人,好人寫的書想必是本好書。)

0311封面

 

值得注意的,Objective-C的相關學習資源已慢慢地淹沒在時間的洪流。倘若搜尋最近出版的App開發書籍,將發現大部分皆以Swift撰寫,英文和中文皆是如此。而網路上知名的教學組織,為了不讓自己顯得落伍,也都毫不留情地甩掉Objetive-C,改以Swift為主角。時間不只是治癒失戀最好的解藥,同時也是輔佐Swift壯大的最大功臣。隨著時間腳步的推移,我們將發現未來想尋覓Objective-C的相關書籍,只能進入如同鬼屋的舊書店探險尋寶。關於Objective-C的一切,令人感傷地聯想到華仔的來生緣 ~ “尋尋覓覓,在無聲無息中消逝。總是找不到回憶,找不到曾被遺忘的真實。”

八、向全世界開放的Open Source

Apple 為了讓全世界都體驗 Swift 的美好,下了一個改變世界的決定! Swift Open Source ,不再受限於 Mac 和 iOS 平台,目前已經能夠在Linux 平台執行。可以預期未來將有愈來愈多的平台支援 Swift ,將來不只 App ,大大小小的軟體都可以透過 Swift 打造! 也許22世紀的鋼鐵人就是由 Swift 製造的呢。

Screen Shot 2015-07-26 at 3.46.33 PM

Screen Shot 2015-07-26 at 4.21.22 PM

 

九、大家最愛的程式語言

Swift 初生之犢不畏虎,在知名的程式討論區 Stack Overflow 被票選為最受歡迎的程式語言。

Screen Shot 2015-07-26 at 4.33.16 PM

 

也許有人還是因為以下兩點江湖傳言對於學習 Swift 有所疑慮,彼得潘倒是覺得不用害怕,它們不過是飄來散去的流言罷了。

Screen Shot 2015-07-26 at 12.11.50 PM

 

 

流言一、 Swift 還在成長階段,不斷改版,語法一直改變,不如等它穩定後再學習

Apple 每年持續地改版 Swift,讓它變得更強大,更容易學習,更方便開發 App。這些小改變並不會成為我們學習的阻礙,因為 Swift 主要的核心精神和概念並沒有變,只要學會了 Swift 3.0版,未來想要學習4.0版,5.0版都能秒殺上手。就算偶爾真的發生新舊版不相容的問題,開發工具 Xcode 也早已貼心地提供自動轉換的功能,可說是踏破鐵鞋無覓處,得來全不費功夫!

Screen Shot 2015-07-26 at 12.19.57 PM

 

 

流言二、台灣大多數的 App 公司有情有義,仍然念舊地採用 Objective-C

台灣人是最念舊的,公司也不例外,所以也難怪很多App公司還是繼續採用 Objective-C 開發。如果公司要求一定要以 Objecitve-C 開發,認為 Swift 是旁門左道了話,那也不用沮喪,學會了 Swift 後,再來學習 Objective-C 更是易如反掌,因為很多觀念是相通的。相反的,若是先學 Objective-C ,再來學 Swift  ,很多人在 Objective-C 的階段就已死在沙灘上,改行去賣雞排了。

 

結語:

Swift 的誕生,對於早已名聞江湖的 Objective-C 高人和想要投入 App 開發的新人來說,都是一個全新的契機。現在就好像一個新的時代剛剛開始,大家都站在同一個起跑點,人人有機會搶第一。開跑的哨聲即將響起,且讓我們忘掉舊愛 Objective-C (從來沒愛過 Objective-C 的就不用忘了。),拔腿狂奔地投入新歡 Swift 的懷抱吧。

 

 

APP 團隊上架前需要思考的四個問題
談 Growth Hacking 前你需要先知道的四件事