作者:Weston,原文鏈接,原文日期:2016-01-27
譯者:saitjr;校對(duì):Cee;定稿:千葉知風(fēng)
自從我昨天發(fā)了文,收到的最多的評(píng)論就是:
我應(yīng)該選擇哪些 App 來(lái)練手呢?
這個(gè)問(wèn)題很有趣。理想情況下,如果做一款 App 又不是為了練手,那么你可能會(huì)選擇你熟悉的技術(shù)。先找到自己感興趣的、有能力解決的問(wèn)題,然后再?lài)L試用最佳實(shí)踐去解決它。但我完全能想象,作為新開(kāi)發(fā)者,他可能還沒(méi)準(zhǔn)備好去應(yīng)對(duì)從頭開(kāi)發(fā)一款 App 所要解決的問(wèn)題。怎么辦呢,我條件反射就是「學(xué)做一款 Twitter App」。Twitter 客戶端是一個(gè)有趣的項(xiàng)目,它涵蓋了開(kāi)發(fā)絕大多數(shù) App 所要用到的技術(shù)點(diǎn)。我將會(huì)列出 Twitter(或其他高質(zhì)量的 App)作為練手項(xiàng)目所用到的技術(shù)點(diǎn)。
用到了 UITableView
...
我開(kāi)發(fā)的絕大多數(shù) iOS App 都直接或間接的用到了 UITableView
,它可能是最常見(jiàn)的 UI 元素了,如果在面試時(shí)展示你對(duì)他的掌握情況,往往會(huì)有奇效。使用 UITableView
來(lái)做 Twitter 動(dòng)態(tài)展示頁(yè)面正好合適。嘗試實(shí)現(xiàn)滑動(dòng)給單元行添加事件,并確保 cell 的正確重用。查找如何實(shí)現(xiàn)上拉加載更多推文(即,當(dāng)列表頁(yè)滾動(dòng)到底部時(shí),能有更多的推文加載進(jìn)來(lái))。
用到了 HTTP API...
很多 iOS App 都需要已某種形式訪問(wèn)網(wǎng)絡(luò)資源。首先建立連接、驗(yàn)證,最后要做的就是使用網(wǎng)絡(luò)數(shù)據(jù)了。你當(dāng)然也可以不用接入 Twitter 的 SDK,但嘗試訪問(wèn)他們的 REST 服務(wù)器能讓你真正了解網(wǎng)絡(luò)連接與 HTTP 的使用。
用到了炫酷的 UI 界面...
開(kāi)發(fā)者們都希望能通過(guò)自己的 App 火一把。正好,Twitter 的 App 能幫助你展示出很多的 UI 技能,并且在這其中,還可以寫(xiě)出很多有趣的東西。炫酷的 UI 可以以自定義的圖形按鈕的形式展示,也可以以生動(dòng)形象的動(dòng)畫(huà)效果來(lái)展示。對(duì)于我來(lái)說(shuō),我喜歡在 AppStore 上看其他受歡迎的 App 都用了哪些動(dòng)畫(huà)和 UI 元素,然后自己動(dòng)手實(shí)現(xiàn)出來(lái)。
用到了持久化和數(shù)據(jù)安全...
除了存儲(chǔ)證書(shū)外,在 Twitter App 中沒(méi)太大必要做其他數(shù)據(jù)的持久化。你需要掌握如何安全的存儲(chǔ)用戶證書(shū)(就像 token 之類(lèi)的東西)。雖然 Keychain API 的學(xué)習(xí)曲線比較陡,但在這里使用 Keychain API 確實(shí)很合適。而且和暴露用戶信息相比,這點(diǎn)困難又算得了什么呢。千萬(wàn)別把“安全”當(dāng)兒戲。
相對(duì)易于開(kāi)發(fā)...
仿一個(gè) Twitter App 并不需要花上一年時(shí)間,如果你有時(shí)間靜下心來(lái)寫(xiě)代碼,也就一兩周的事。沒(méi)必要把練手項(xiàng)目做得像個(gè)復(fù)雜的大型軟件,其實(shí) iOS 更適合做一些簡(jiǎn)潔的 App 。所以完全可以做一些簡(jiǎn)單的 App 來(lái)練手。
Twitter 只是我推薦的其中一款,畢竟它能用到很多常見(jiàn)的技術(shù)。如果這還不夠,那看看我接下來(lái)推薦的 App,畢竟熟能生巧:
- Notes app(可以鍛煉文本處理,而且還有 iCloud 數(shù)據(jù)同步)。
- Where Did I Park?(一款能對(duì)標(biāo)記位置進(jìn)行存儲(chǔ)的應(yīng)用,可以鍛煉定位 API)。
- Painting App(可以鍛煉 Touch 事件和圖像 API)。
- Alarm Clock(可以鍛煉本地通知和音頻播放)。
無(wú)論你選擇做哪一款,盡量遵循一種編碼規(guī)范,讓你的代碼更整潔,可讀性更高。如果有需要,你還可以將它打印在簡(jiǎn)歷上。
做一款 App 不難,所以盡可能多的去使用那些常用的 iOS 特性。不停的打磨它,盡可能的讓它變得完美。反復(fù)的練習(xí),直到你積累了很多項(xiàng)目經(jīng)驗(yàn)。
祝你好運(yùn)!
本文由 SwiftGG 翻譯組翻譯,已經(jīng)獲得作者翻譯授權(quán),最新文章請(qǐng)?jiān)L問(wèn) http://swift.gg。