別讓雙手閑下來(lái),來(lái)做一些練手項(xiàng)目吧

作者: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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,116評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,202評(píng)論 4 61
  • 三 進(jìn)入vim 1.使用vim命令進(jìn)入vim界面 vim后面加上你要打開(kāi)的已存在的文件名或者不存在(則作為新建文件...
    11010tianyi閱讀 241評(píng)論 0 0
  • 七月這個(gè)悶熱的天氣,仰望天空陽(yáng)光刺痛了眼,讓我模糊了一切。 可以想象每所城市都可見(jiàn)忙碌的人們。 人們所追求的一切都...
    彩云朵月閱讀 273評(píng)論 0 0
  • 高考成績(jī)揭曉,娛樂(lè)圈學(xué)霸們也第一時(shí)間曬出高考成績(jī)。因剛剛收官的熱播劇《好先生》被譽(yù)為“國(guó)民閨女”的關(guān)曉彤考了552...
    舒天閱讀 198評(píng)論 0 1