三年前作為剛剛成立的公司里唯一的技術(shù)人員,不僅要開發(fā)iOS App和后臺,連公司的網(wǎng)頁都要自己寫,最后還要部署到Linux的云服務(wù)器上。隨著公司不斷發(fā)展以及人員的增多,我也慢慢專注于iOS開發(fā)。在經(jīng)歷了漫漫的外包之路后公司有了自己的產(chǎn)品--銷酷(企業(yè)移動(dòng)銷售展示工具),隨著iPad版和iPhone版相繼上線,我們有了第一批種子用戶。本以為項(xiàng)目上線后我的工作應(yīng)該可以清閑點(diǎn)了,但是很多客戶反映他們店里沒有那么多iPad而且大部分店員使用的都是Android設(shè)備,希望能盡快讓Android手機(jī)也能使用。所以Android版開發(fā)也被提到日程,但是公司沒有Android工程師(能力弱的不能獨(dú)立開發(fā),能力強(qiáng)的請不起),只能自己動(dòng)手來做了。我也從一個(gè)三年多工作經(jīng)驗(yàn)的「iOS開發(fā)工程師」搖身一變成了「Android菜鳥工程師」。
開發(fā)前準(zhǔn)備
開發(fā)前預(yù)留了一周時(shí)間去補(bǔ)充Android的相關(guān)知識,就像當(dāng)初自學(xué)iOS那樣,我最先想到的學(xué)習(xí)資料就是書本了。在眾多關(guān)于的Android開發(fā)書籍中最后還是選擇了比較全面的《Pro Android 5》,花了幾天時(shí)間大概了解了四大組件(Activity、Service、Broadcast、Content Provider)還有常用的控件和布局。
除了看書,找一些開源的項(xiàng)目開參照學(xué)習(xí)也是非常好的一種方式。在逛oschina的時(shí)候驚喜的發(fā)現(xiàn)他們的Android客戶端是開源的(項(xiàng)目地址),所以馬上就clone下來對照著源碼看各種控件和布局是怎樣運(yùn)用的。
在開發(fā)前確立App架構(gòu)也是比較重要的一點(diǎn),搜索發(fā)現(xiàn)Android目前討論比較多的有MVP、MVVM、Clean三種。而谷歌前段時(shí)間給出了一系列不同架構(gòu)的app實(shí)現(xiàn)Android Architecture Blueprints,這對我來說可以大好的學(xué)習(xí)資料啊,通過對比覺得我這個(gè)初學(xué)者還是以比較簡單的MVP來搭建項(xiàng)目。
項(xiàng)目主模塊效果圖
有iOS設(shè)備的可以直接去AppStore下載安裝



主要涉及的知識點(diǎn)
- 網(wǎng)絡(luò)請求和數(shù)據(jù)解析
- 常用控件的使用(RecyclerView、FragmentTabHost、ViewPager、PopupWindow等)
- 自定義視圖和布局
- 數(shù)據(jù)本地存儲
- 簡單動(dòng)畫效果
一些感概
工作已經(jīng)四年多了,但是開發(fā)都是自己一個(gè)人獨(dú)立完成,缺乏跟同行的合作交流。很多時(shí)候都會擔(dān)心自己寫的代碼是否高效,是否存在漏洞,質(zhì)量是否過關(guān),是否有更好的實(shí)現(xiàn)方式等。所以想借著這次開發(fā)Android的機(jī)會把我自己的一些實(shí)現(xiàn)的方法寫出來,如果有大神看到并給予指導(dǎo)對我來說是非常好的提升機(jī)會。一個(gè)人同時(shí)開發(fā)Android和iOS確實(shí)很忙,但我會盡量每周都抽出時(shí)間來寫點(diǎn)東西。這次的Android開發(fā)實(shí)錄不會面面俱到,把基于這個(gè)項(xiàng)目的具體功能實(shí)現(xiàn)方法寫出來,讓大家可以快速上手使用的意義更大。