學習iOS開發前應該知道的(1)

發表於2015-08-21

設計師設計出來了一個不錯的引導介面,然而當我看到設計稿的時候,我們的app也沒幾天就要上線了。這個介面模仿了Evernote iOS app的風格。

我以迅雷不及掩耳盜鈴之勢開始在Xcode上程式設計,用了page view controller和scroll view。在Stack Overflow和Google的幫助下,我用了2天把它完成了。當我把產品給一個同樣搞iOS開發的朋友看時,他跟我說,如果我用了這個開源專案的話,一個小時就可以搞定一切。

過去這一年我經歷了不少類似的事情,這些事情讓我成長,讓我能夠成為一個更好的iOS開發工程師。我想跟大家分享一下我的經驗,希望你們可以不再犯我這些錯誤,一路平坦走向成功。

重視基礎

剛開始學iOS開發的時候,我直接去學習了史丹佛大學的這門課程,非常有用。然而,雖然我從課程中學到了很多,但它並沒有教給我多少iOS開發語言的基礎知識——當時的iOS開發語言主要是Objective-C。開始寫自己的app以後,我發現自己在基礎知識方面欠缺很多,這導致我老是弄出來一些bug。

如果你在物件導向程式設計的語言方面沒啥經驗的話,我建議你在投身進行iOS開發之前先讀一本這方面的經典書籍。我最喜歡的兩本是Big Nerd Ranch Guide for Objective-C和Swift的The Apple’s Guide

沒錯,Ray Wenderlich上的教程和Team Treehouse上的視訊課程能教給你很多,但缺少基礎知識的程式設計師就像無源之水、無本之木,總是長久不了的。

良師益友Github

我對這個iOS開源社群絕對是真愛。Github上面有無數的優質專案,如AFNetworking, Restkit、JSQMessages,甚是碉堡。你必須學會在這個社群裡乘前人栽樹之涼。

遇到問題時,先別一根筋急著苦思冥想或建立自己的庫,不如先去GitHub或Google找一下有沒有相似問題的解決方法。很有可能某個開發者已經寫好了一個符合你需求的開源專案。

通過Facebook GroupsSlack chat來開始社群之旅吧!他們很樂意回答你的一切問題。你可以瀏覽那些好的開源專案,看看大牛們是如何組織程式碼的,自己也學著點。

這裡是GitHub上一些最優質的iOS資源。

vsouza/awesome-iosawesome-ios——精選的優質iOS生態系統,包括Objective-C和Swift專案。

matteocrippa/awesome-swiftawesome-swift——收集了很多優質的swift資源。你也可以來貢獻自己的力量!

cjwirth/awesome-ios-uiawesome-ios-ui——優質iOS UI/UX庫精選。

如果你想找一些iOS的最佳實踐以供自己模仿學習,那請看下面這些。

futurice/ios-good-practicesios-good-practices——為iOS開發者提供靈感,作者是Futurice的開發者們。

瞭解你的工具

多數iOS開發者將Xcode作為開發的首選工具。Xcode有很多強大的特性,如Storyboards、Auto Layout,如果學會用這些的話,相信你的開發效率肯定能上一個臺階。出於某些限制,很多開發者會盡力避免使用Storyboards,但我個人認為,Storyboards是快速佈局的有力工具。

學習使用Xcode中的快捷鍵。雖然看上去使用快捷鍵沒節省幾秒鐘,但“不積小流,無以成江海“,久而久之省下的時間就多了。以上這些都是我親測有效的手段,它們在提高開發效率方面給了我很大幫助。

使用Cocoapods來進行依賴管理。你的團隊會因此輕鬆很多。

在專案早期就學會使用持續整合(continuos integration),這樣就可以避免未來可能出現的冗餘工作。

使用Testflight來分發測試版本。在被蘋果收購之後,Testflight變得更加簡單易用了,每個人都可以通過它來使用iTunes賬號進行測試版本的分發。

在app中整合Crashlytics,這樣當app崩潰的時候你就可以獲取Crash報告了。

如果你不想自己弄後端伺服器的話,Parse為我們提供了很好的服務。

讀一些優質部落格和資訊

前文已經介紹了一些很棒的iOS開源社群。很多優質的部落格是由經驗豐富的iOS開發者撰寫的,每週都會有一些精彩的內容呈現。我最喜歡的一些包括:

Cocoa with Love在本部落格中,我將專注於使用和管理使用者介面中字串的最佳實踐。這是一個相當…

可能是最好的iOS部落格。作者是Matt Galaghar。Matt做事情的方式是大師級的。

iOS Dev Weekly訂閱本部落格,輕鬆獲得每週最棒的iOS開發網頁精選。由Dave Verwer精選併發布…

嚴格來說這不算個部落格,但它每週都有超級超級棒的內容更新。作者是Dave Verwer。

NSHipsterPlaygrounds並不是Swift語言本身的特性,它們其實是很棒的展示……

NSHipster對Objective-C和Cocoa進行拾遺的雜誌。它由Mattt Thompson每週更新。

Ray wenderlich高質量的程式設計教程:iOS、Android、Mac,還有更多!

Ray Wenderlich的部落格(對初學者超有用)

Custom Controls for iOS and OS X – Cocoa Controls暫無描述

Peter Steinberger蘋果在Xcode 6中增加了對NS_DESIGNATED_INITIALIZER 標誌的支援,同時也將其新增到了各種各樣的框架中……

Matt Gemmell基於我的寫作專案進行簡要更新。它或許會引起一些人的興趣……

Natasha The Robot僅僅是又一個WordPress站點
在這些部落格中挑選乾貨,認真閱讀,相信你會變成一個更好的iOS開發者。

設計也能變輕鬆

很多開發者對於iOS的設計方面談虎色變。我們總是對設計敬而遠之,一股腦兒都扔給設計師去做。但其實,只要稍稍努力,你也可以學會設計自己的app。

現在,設計師和開發者之間的界限日益模糊,因為好多成功的iOS獨立開發者包攬了所有app設計、開發和營銷工作。我將在下一部分談到營銷方面的事。如果你想設計自己的iOS app的話,不妨學一下Sketch這個工具。

Sketch專為應用設計和網頁設計而生,簡單易上手。

Bohemian Coding – Sketch 3Sketch是簡單易用的輕量級軟體,它強大、靈活而快速。最後……

你可以在網上找到大量的Sketch資源和外掛,它們能讓你有趣而簡單地工作。一旦完成了設計工作,你可以立刻用這個神器將它們整合在一起。

Free mobile & web prototyping for designers – Marvel將草圖和設計轉化為可互動的Web、iPhone、iPad、Android和Apple Watch原型和模板……

下一部分,我將談一談在開發自己的app時的必要方法,並且講一些iOS應用的營銷技巧。

學習iOS開發前應該知道的(2)

相關文章