天天看點

學習iOS開發如何進階? 前言 iOS開發的更新換代 Swift 最終肯定會替代Objective-C iOS 開發者應該如何自我提升? 做一個負責任的開發者 深度學習API,了解iOS UI控件 學習ios開發應由淺入深,循序漸進。 總結

前言

如果你有志于将iOS開發作為職業,或者已經是一位iOS開發者,那麼你應該聽說過唐巧的名字。唐巧,2012年從網易有道離開參與創業, 目前是猿題庫iOS進階研發工程師。難得的是,他本身是一線的iOS開發者,同時又對iOS開發在國内的布道做了不少的工作,身影活躍于部落格、微網誌、微信公衆賬号等地。從2011年以來,唐巧開始在部落格分享自己寫的iOS開發技術文章,CocoaChina 也曾多次轉載過他的部落格文章,後來他成為InfoQ兼職編輯,除了發表技術文章之外,還負責整理《iOS移動開發周報》,至今已有35期,他的微網誌和微信公衆賬号粉絲都超過1萬,可以說是iOS開發領域的“大V”。并且他的新書《iOS開發進階》已經和大家見面,也引得他的粉絲的一份熱潮

iOS開發的更新換代

移動開發真正火起來其實就是最近這三年,iOS 開發技術因為發展也就才這麼幾年,是以值得做的事情還有很多,這就造成了每年蘋果的 WWDC 都會推出一堆新的特性和 API。整體上來說,這對業界是好事情。在技術更新過程中産生一些坑,是在所難免的事情。是以希望大家都能用一個比較平和的心态去搞定這些坑。

我之前寫過一篇《

iOS 開發如何提高

》的文章,簡單總結來說,就是多讀、多寫、多思考、多讨論。多讀主要包括:閱讀部落格、圖書、WWDC 視訊、官方文檔、開源項目。多寫就沒什麼好說了,沒有寫過幾十萬行代碼是不能算熟悉一門語言的。多思考和讨論這個需要個人主動一些,遇到問題喜歡多問為什麼,在多次重構和思考的過程中,我們就會慢慢積累出一類問題的 “最佳實踐” 方式,成為自己寶貴的經驗。

Swift 最終肯定會替代Objective-C

有一點不容懷疑:Swift 最終肯定會替代 Objective-C,成為主要的 iOS 開發語言。單從語言特性上來看,Swift 吸收了衆多現代程式設計語言的優秀特性,例如類型推斷(Type inference)、範型(Generic)、閉包(Closure)、命名空間(namespace),元組(tuple)等,整體文法上也更加簡潔。所有 iOS 開發者都應該花時間學習這門全新的語言。

但是,客觀地說,Swift 目前的生态環境還不夠成熟,這包括第三方開源庫,文檔和教程,甚至是蘋果自己的編譯器。我前不久才和一些同行們聊過這個話題,朋友曬出了 Github 上整理出來的

會造成 Swift 編譯 Crash 的清單

,從上面可以看出,Swift 語言本身還有較長的路要走。

用 Swift 來完成 App 還有一個不大不小的問題就是體積會比較大,因為 Swift 相關的庫會直接打包進 App 中。我們曾經拿猿題庫的 App 測試過,采用 Swift 和Objective-C 混合編寫的方案後,應用體積會增加 10M,這對于公司來說還是比較大的困擾。我個人對于 Swift 的預期是:在 1、2 年内能夠全面替代 Objective-C。但在近期,我個人還是會使用 Objective-C 來完成公司的項目。

iOS 開發者應該如何自我提升?

對于技術實力的提升,我比較推薦最近 tinyfool 寫了一篇文章,叫《

不要輕易在履歷上寫我熱愛程式設計,我熱愛學習

》。我覺得你提的這個問題的根本還是在于:iOS 開發者到底熱不熱愛程式設計。在我看來,任何一件事情,如果你做到了熱愛它,把它當作樂趣,那麼在同行中做到出類拔萃應該是理所當然的。如果不熱愛,我感覺做到會比較難。

對于其它方面,比如管理及其它軟能力的提升,我其實也沒有很多經驗。如果從我自己的經驗出發,我自認為多寫作對于提高表達溝通能力是有幫助的。

做一個負責任的開發者

那麼現在說正題,如何成為負責任的開發者?首先要負責,對自己的項目負責。如果是自己新開的項目,要保證随時都能清晰的想到項目當中每個地方是怎麼實作的,測試或者使用者回報了問題以後,能立馬想到可能的錯誤原因。如果是接手的項目,就要盡快去了解主要的界面和功能是如何實作的。你隻有先做好自己分内的事,才有機會去顧暇别人的事。

1.保持一個良好的代碼規範以及檔案架構。

2.每天要給自己做一個TodoList 和一個BugList,時刻保持自己是在有效率的工作,嚴重的需要時間修複的bug彙報上去,小bug自己記下來偷偷修複。

3.有空時将排行榜上的應用下載下傳排名靠前的應用,去欣賞并分析主流app的界面,功能實作,在拿到設計圖時,去考慮界面的合理性,功能怎麼實作最符合使用者的操作習慣。

4.要有一定的協調能力,交流能力,稍微了解一點背景知識以及前端知識。

5.信念,一個不做初級iOS開發的信念。多去了解,不會被别人當小白,學多少都是自己的,至于在你去學習的時候,有人會說風言風語,這就是差別,他們活該初級,自己不會的東西,也看不慣别人去學習。是以,一定要有一個規劃,按照自己正确的規劃去學習,去成長,别原地踏步。

深度學習API,了解iOS UI控件

Objc階段的學習隻是帶你入門,如果你想進階,API和UI控件是必須需要學的。一門語言可能會有成千上百的API和UI控件。你不需要把他們全都記住,隻需要記住一些常用的即可。

例如:Objc中的UITableView的dataSouce和delegate;NSDictionary、NSArray相關的增删查改方法;JSON數組轉換方法;檔案操作方法等。

UI控件的話,常用的有UIView、UITableView、UIScrollView、UIButton、UILable等。你要熟悉這些控件的屬性和相關的操作方法。

學習ios開發應由淺入深,循序漸進。

掌握了初級架構就可以編寫簡單的ios程式了,包括簡單的本地資料、圖檔、照片、音視訊、位址簿、郵件、日程等的讀寫和顯示。中級架構涉及面最廣,包括所有類型架構,這裡FOUNDATION、DATA、NET和TEST類又是基本的,涉及複雜資料類型、檔案、資料庫、各種網絡連接配接、單元測試等,應盡量全面掌握,其它類型的架構可以根據興趣或工作任務逐漸去學習或掌握。進階架構以圖形、音視訊内容為主,主要是提供了更低層和更靈活的硬體操作接口。僅在必要時再去深入學習即可。由此可見,一個初級ios開發者應掌握至少15個架構,一個中級ios開發者應掌握40~50個架構,一個進階ios開發者應掌握50~60個架構(至少包含10個進階架構)。

總結

簡單總結來說,就是多讀、多寫、多思考、多讨論。多讀主要包括:閱讀部落格、圖書、WWDC 視訊、官方文檔、開源項目。多寫就沒什麼好說了,沒有寫過幾十萬行代碼是不能算熟悉一門語言的。多思考和讨論這個需要個人主動一些,遇到問題喜歡多問為什麼,在多次重構和思考的過程中,我們就會慢慢積累出一類問題的 “最佳實踐” 方式,成為自己寶貴的經驗。

在這裡我還是要推薦下我自己建的iOS開發學習群:681503716(驗證編号:大鲨),群裡都是學ios開發的,如果你正在學習ios ,小編歡迎你加入(閑聊,廣告,教育訓練勿擾~),今天分享的這個案例已經上傳到群檔案,大家都是軟體開發黨,不定期分享幹貨(隻有iOS軟體開發相關的),包括我自己整理的一份2018最新的iOS進階資料和進階開發教程

繼續閱讀