2015年4月6日 星期一

為了開發iOS App,要如何先學好Objective C? How to learn Objective-C well in order to develop iOS App?

這個寒假以來大概是我腦力消耗最多的時候了。自從學校的網頁設計課程教授網頁手機版設計後,我就打算改成iOS版,然後開始想買哪種Mac,後來在室友的幫助下買到一台二手但是狀況極佳的Macbook Pro,就這樣開始了學習Objective C的旅程。

而剛好買玩電腦前後,學校有了個做App的比賽,剛好就藉這機會報名參加。那時候剛好是期末考,要在期考時完成作品說明書也是很累人。他有分初審和決賽,結果初審只有格式不符的沒通過,對於自己的辛苦準備實在有點過意不去啊。

實際上也是到1/25之後才有時間學習,剛開始被MVC的觀念卡住,還有一些瑣碎的物件導向知識又會出來反咬我。所幸後來就慢慢克服。我使用的教材以Stanford CS193p Fall 2013-2014為主,查資料時使用"Programming in Objective-C Fifth Edition",對我來說這線上課程真的就有如在史丹佛上課一般,老師講得緊湊又有趣,非常推薦。

回歸正傳,要開發iOS App還是蠻建議從Objective-C開始,理由不外乎有:

  1. Objective-C現有的程式碼多,Stackoverflow上一堆相關問題回答
  2. Objective-C已經存在許久,穩定度經得起考驗
  3. 學會Objective-C轉換到Swift根本無痛轉移,只是有些微語法差異
學了一陣子後發現重要的還是基礎觀念,每次有Bug大概有一半以上都是基礎觀念在咬我。很多想說我這功能不知道怎麼寫、不知道有什麼函數可用,其實網路上很快就可以查到。StackoverflowApp Coda上就有很多可用的程式碼。可是你如果不知道函數要吃的參數型態、這邊該不該alloc、NSDictionary要怎麼用、MVC架構如何導入,那很快還是會卡住。

我個人蠻推薦高見龍大大在部落格上的說明,像是protocol、instancetype都介紹得很詳細。另外雖然說語法常常會讓人卡關,可是相對應的電腦科學背景也頗需要。像是我最近剛讓iOS去跟SQLite做query,一些資料庫背景知識有時候會跑出來咬我。

不過我相信只要有毅力,真的就會慢慢地把App做出來。加油!