如何系統學習iOS網路編程?

之前沒有過網路編程的經驗,一直在做winform開發。想請問一下,如何系統學習iOS網路編程?


現在市面上的app從網路層面上分,無非是restful方式的http或者是基於socket的長連接。前一種很多啦,凡是不是純工具的app基本上都要有網路連接,其實客戶端實現起來也很簡單,無非就是afnetworking和swift版的alamofire。

可能稍難一點的就是設計緩存。但是網上也很多教程了。iOS7 pushing the limits這本書的第十二章講的很細。不贅述,可以買一本看看。

基於socket的大部分就是IM了(我最近用了一下uber裡面那個可以實時看到車的運動軌跡肯定也用的socket),不過也有現成的解決方案,環信什麼的。原理基於xmpp。github上有iOS端的。叫做xmppframework,可以下載源碼分析。

發起請求,接收數據。是個人都會,但是如何設計客戶端的結構,減少耦合,客戶端請求如何設計,數據如何和view層協調,如何持久化網路數據,都是考驗一個iOS的實實在在有沒有架構意識的東西。

前段時間有一篇《iOS應用架構談 網路設計方案》是我最近看到的質量最高的文章,不誇張的說,醍醐灌頂。

很多東西是我以前壓根沒有意識到的東西。姿勢水平相當高,關鍵是作者不打嘴炮,有源碼為證。大家可以觀摩學習。相信會有進步。


主要是這幾個方面

1. 發送get post

2. socket udp tcp的連接

3. 多線程

最近開始抽時間開始認真寫

第一篇 網路封裝 知乎專欄

主要還看操作系統和計算機網路的基礎知識

有贊和感謝我展開寫


推薦安居客大神casa的博客-- 《iOS應用架構 網路層設計方案》,github上還有代碼,像猿題庫的網路框架,以及餓了么的網路框架都是借鑒這個大神的思想!


推薦這本書

《iOS網路高級編程:iPhone和iPad的企業應用開》


其實相比較其他開發,iOS還是比較容易入門的,因為iOS開發的基礎語言是C語言,在大學的時候C語言屬於基礎課程,幾乎所有的理科專業都會學到的。掌握了C語言後,下一個階段就是OC語言,OC語言是面向對象語言,了解了類和對象,學起來應該不會太難,然後就是UI部分,主要學習各種UI控制項、界面搭建、UI動畫、以及控制器之間的相互關聯,基本不會太難,最後就是網路部分了,主要學習與網路相關的一些功能的實現,包括資料庫,多線程,視頻,音頻,地圖等等。只要肯用心,肯定沒問題。


推薦閱讀:

想用業餘時間學習 iOS 開發,零基礎,有沒有推薦自學用的書?
QQ 音樂 iOS 新版能夠在鎖屏界面顯示動態歌詞,如何做到的?
零編程基礎,學習 iOS 開發應該採取什麼路徑?
27歲,想轉行做軟體。從頭開始學JAVA IOS開發 運維 等等其中之一求指教?
如何看待 Dash 被 App Store 下架?

TAG:iOS開發 | 網路編程 |