這幾天終于閑下來了,想對項目開發做一些簡單的總結。案場是一款面向房地產企業的app應用,簡單的來說類似于移動辦公的app。就項目技術而言,還是比較簡單的,業務相對復雜一點,操作起來也相對復雜一點,當然用戶體驗很多時候是產品設計的時候定下來的,這里就不說了。
android版本,除了當時我選擇了一些基礎代碼庫之后,我基本沒怎么參與。沒有參與有很多種原因:
1、自己有過4-5年的android經驗,歷史經驗告訴我,不難只是工作量大。
2、iOS開發存在很多未知問題,我需要花多時間去探討。
3、第一周我看android開發的小伙子寫的代碼,代碼質量不錯,效率也比較高,責任心比較強,很放心。
在android版本開發的過程里面,我只是偶爾會review一下代碼,看到有問題的回去修改或者提醒修改。到項目的后期,我回頭看android代碼的時候,感覺會比我自己寫得要好,起碼比較規范,無論是activity還是fragment都是固定的模版,對接受項目者還是比較友好的。當然開發過程還是存在一點點問題的,就是沒有提前做好規劃,導致后面加Loader,下拉刷新很亂。如果當初規劃好一點,后面的工作會更加順利和舒心。
android開發的前期工作,我還是做了很多東西的,封裝網絡的基礎庫,例如基于OKhttp的Volley,session會話的保存,還有基于gosn網絡庫的封裝。這次嘗試了新的東西,把所有接口都寫在一個文件上面,方便管理。但是后來發現,這樣搞法哪個文件的代碼量會很多,閱讀起來會比較累人。后來看了看clean架構,感覺會比較清晰,下次有項目再用。本來計劃在這個項目要用rxandroid的,由于開發人員對它不熟悉,最后也沒用上,還是老模式的MVC,但是下次還是希望放棄EventBus改用Rxbus。
對于iOS版,基礎庫還是我搭建的,只是大部分有不是我做的,在以往的開發中,都是純代碼開發,但是在這個項目中,我選擇了storyboard+Autolayout,在開發的過程的確踩了很多坑,但是我不后悔這樣的選擇,有時候有些經歷是無價的,我知道很多大公司都選擇了很成熟的方案,例如微信QQ,基本都是純代碼寫的。storyboard是蘋果推薦的,蘋果最終的目的是讓UI設計去布局,程序員只關心業務邏輯,但是國內適合沒那么受歡迎。storyboard非常方便人熟悉項目框架流程,但是編譯慢,多人協作麻煩。說到多人協作,整一個xcode都不是特別人性化,多人提交的時候很容易產生沖突,特在是SVN上。
踩過很多坑,讓我了解了很多東西,經過這個項目起碼對Autolayout,RAC是比較了解了。我不想去簡單的評價對和錯,方案通常是需求決定的,storyboard對個人開發是友好的,但是對團隊開發需要拆分多個,而且盡可能簡單。對于純代碼,看起來很凌亂,對于新人需要配備ViewController 跳轉圖才容易熟悉代碼。當你熟悉storyboard的時候,你會發現開發mac os x的程序也同樣適用,而且快速入門。
去年11月開始,我一直關注著iOS開發,也是從自身發展來看的,我需要多幾個項目來完善自己知識體系。經過這個項目,學習到了很多東西,一部分是在別人博客的是看到的,一部分是自己嘗試出來的,還有一部分是和別人交流出來的,不管從哪里來的,對自己都是一種很好的經歷。項目后期我想了很多關于框架的問題,關于很多安全的問題,關于很多底層的問題,對runtime,runloop,多線程有了更多體會。
對于技術,我個人還是喜歡找些新東西去折騰,哪怕過程有點坎坷,但是只有心臨其境才能真切的感知那些不曾想過的問題,解決哪些不曾想過的問題。任何一個方案都是有適用范圍的,不可能是萬金油。有些人可能在大公司呆過,看過很多有經驗的文章,可以很輕松的做出選擇,但是對于沒有這樣經歷的人,只能靠自己嘗試了。