接觸 iOS App 開發至今也快要兩年了,把一些心得感想記錄下來,或許能幫助一些人。


事前準備

進入這個世界,有些東西是你需要事先準備好的,說穿了,就是你的設備跟知識。

一台蘋果電腦

開發蘋果的東西,沒有蘋果電腦怎麼行呢?如果你手頭拮据的話,買台 Mac Mini 就能動工了,但如果預算足夠的話,建議買台 MacBook Air 或 MacBook Pro,方便你能隨時移動,走到哪就寫到哪。至於要買 Pro 或是 Air,那就看你需求跟預算了,反正若只是要開發程式,這兩者都綽綽有餘。

熟悉 C 語言以及物件導向

開發 iOS App 用的程式語言是 Objective-C,它是 C 語言的 superset,支援所有 C 語言的功能,並且加上物件導向的能力。所以你只要熟悉 C 語言以及物件導向的觀念,就可以快速上手 Objective-C,剩下的就只是習慣 Objective-C 的語法及特性而已。

英文能力不能太差

Objective-C 有個特色就是它寫出來的程式碼「就像在閱讀一段句子、一篇文章」,你怎麼說話的,就怎麼寫程式 - 當然,指的是用英文說話。所以你英文能力不能太差,否則你將無法寫出順暢的程式碼,也無法輕易看懂別人的程式碼。這是它跟其他常見的程式語言最大的不同點,一開始可能會不太適應,但久了之後你會愛上它的。另外你會需要看大量的文件,這些幾乎都是英文,所以需要有一定的英文底子。


入門

好了,事前準備都完成了,接下來可以開始動工。我當初完全是自學,所以我的分享基本上就是我自學的過程。我自學的方式很簡單,就是大量閱讀(看教學、看書、看官方文件)跟實做,實做的部份我幫不了你,所以來聊聊我看了哪些東西。

  1. Stanford University: CS193p
    這是國外史丹佛大學的開放課程,你可以在 iTunes U 找到它,整個課程看完之後,對於如何開發就已經有一定的理解了。我強烈建議一定要先看完這整套課程,再繼續去閱讀其他的東西。它大概也是 iOS 開發最有名的課程,我相信很多開發者其實都是「同學」。

  2. iOS 5 & iOS 6 by Tutorials
    當你對如何開發有個基本的理解,知道整個開發流程要怎麼套起來,可是卻對許多比較細節的部份還懵懵懂懂,這時候你需要的是有人一步步告訴你每個元件是做什麼用的、還有要怎麼去用它。因此你需要看這本書,它是由國外知名的 iOS 開發教學網站所編寫的,每一篇教學都從頭到尾寫得很仔細,非常適合新手。有了它,你將可以減少許多摸索的時間。


進階

當你對基礎開發已經有一定的熟悉度之後,我建議你一定要看看以下這幾本書,它們會讓你知道更多 Objective-C 的細節,也會知道如何寫出更好、更有效率的程式碼。但,拜託,如果你對基礎還很不熟的話,請千萬不要來看這些東西,學會一些花俏的技巧、腦袋塞了一堆一知半解的理論,對你來說不是件好事。

  1. iOS 6 Programming: Pushing the Limits
    由 Rob Napier 跟 Mugunth Kumar 共同撰寫的這本書,提到該如何設計程式架構,以及怎麼做才能讓 App 執行得更順暢。看了之後你會發覺「阿~原來要這樣子設計架構比較順」或是「原來還有這種技巧」。

  2. Effective Objective-C 2.0: 52 Specific Ways to Improve Your iOS and OS X Programs
    由 Matt Galloway 撰寫的這本書,講到了許多比較細節的東西,包含一些語言特性是如何運作的,以及開發的一些 Best Practice。適當的使用他提到的方法,會讓你更輕易的完成某些功能,也能讓程式碼更簡潔、更不易出錯。

  3. WWDC Videos
    每年蘋果開發者大會(WWDC)總是會推出一堆新東西,開發者們要接收這些資訊的最快方法就是把這些大會錄影看過一遍。當然,我們的時間有限,只要挑感興趣的看就好。


網路資源

現在網路這麼發達,很多資訊都在網路上流通,當然吸收新知最快最方便的管道就是透過無遠弗屆的網路。底下列出我有在觀看的部落格跟我 follow 的 twitter,我每天從這些地方吸收到許多的新知。

部落格

Twitter

我總是能從這些 twitter 的發文以及他們跟他人的交談互動中,學到一些新的東西。


寫在最後

現在要學習 iOS 開發的門檻已經比當初我學習的時候低太多了,如果你對這一塊有興趣有熱情,那就快跳進來吧!相對於其他平台的開發者而言,iOS 開發者最開心的事情就是一般使用者非常樂意接受新版的作業系統(根據 Apple 統計,目前 iOS 6 的普及率有 9x%,iOS 5 + iOS 6 有 99%),所以我們可以開心的使用最新的技術去打造 App;但相對的,最痛苦的事情就是我們得一直追著最新的技術,每年的 WWDC(蘋果開發者大會)大概是我們最期待也最害怕的時刻。

最後,就以這句大家耳熟能詳的話來總結吧:

Stay Hungry, Stay Foolish!

,

Nelson 發表在 痞客邦 PIXNET 留言(16) 人氣()


留言列表 (16)

發表留言
  • Pai Hodge
  • Hi, Nelson,

    感謝您的無私分享。
    我還有一個問題想請教您。就是根據您的經驗,開發App, 會不會要很大的記憶體和CPU速度? 才不會該系統反應很慢? MacBook Air 1.3G + 4GRam夠嗎?
    謝謝~~
    Hodge
  • 夠用了啦:)

    Nelson 於 2013/09/10 16:04 回覆

  • 林佑聲
  • 請問一下,電腦一定要apple不能是window的電腦嗎
  • 一定要 Apple

    Nelson 於 2013/09/14 09:10 回覆

  • 悄悄話
  • 訪客
  • windows /ubuntu机器上用vmware装mac的虚拟机搞开发绰绰有余,用了快一年了。
  • callmanegg
  • 請問版大,APP的大小會影響上架費用嗎?
    譬如上架一個50MB和2GB的APP,費用是一樣的嗎?
    上架費用如何計算?
    若賣出APP,開發者如何收到APPLE給的錢? 支票?電匯?

    以上問題,打擾了,先謝謝~
  • 它的費用是採取年費的方式,每年都要繳交 $99 美金,這樣你才會有讓程式上架以及存取開發人員專屬的開發資源權限(例如一些文件跟影片,還有測試版)。

    你在註冊開發者帳號時,得提供銀行帳號。

    Nelson 於 2013/10/24 08:47 回覆

  • 悄悄話
  • 城市中學習程式的迷糊小書僮
  • 感謝您的分享 , 讓我更有方向了!

  • Mavin
  • 請問您自學Objective-C,有沒有推薦的書呢?
  • 文章裡頭就有提到我自學用到的書跟線上資源囉:)

    Nelson 於 2014/02/21 09:02 回覆

  • Hsu Asket
  • 請問英文能力不能太差是指到哪個程度呢?像我目前無法順利的閱讀完一篇英文文章,也無法打出一篇英文文章,這樣適合學麼?
  • 我自己是覺得至少要能夠順暢閱讀技術文章啦

    Nelson 於 2015/04/30 15:54 回覆

  • 無基礎者
  • 請問我沒有語言基礎,只看懂html跟CSS語法,有上過電腦補習班的 app的課程一次,我該如何著手入門!我一直很想跨入寫城市的領域!謝謝!
  • FP Chen
  • 謝謝你的資訊
  • Walter
  • 您好, 請問您有沒有 swift 的推薦自學網址呢?
  • Belinda
  • 您好!

    依您的經驗,想請問您!

    如果這個時間點想開始自學iOS,直接從swift下手(就是不要再去學Object-C了)!
    您覺得可以嗎?

    p.s.個人背景之前在學校有接觸過其他程式語言的經驗!

    謝謝您。

  • 我還是會建議先學 Objective-C

    Nelson 於 2015/04/30 15:52 回覆

  • tony
  • 請問意下 如果用來開發ios app的話 128G的mbpr會不會太小?
  • 不會,非常夠用。

    Nelson 於 2015/10/24 12:25 回覆

  • 黃紹甫
  • 我才開始要學習iOS APP,您的文章很有幫助,謝謝您的分享。希望以後還能繼續向您請教。