記一次獨立開發APP的感悟
第一次接觸Android開發大約是去年八月份,是在大一的暑假,感覺這個學起來挺簡單的,還能夠放在手機上運行,感覺美滋滋。
于是學了兩個月之后,一個朋友要我做一個功能,說能不能在鎖屏界面上彈出一個框框,然后可以在上面記錄一下今天要做的事情,這樣就可以每次點亮屏幕的時候就能夠看到了。于是匆匆忙忙搞了出來,但是程序似乎挺容易被系統殺死的,之后就彈不出來了,后來也就不了了之了。
但是最近又學了一點進程保活的技巧,便用在了那個項目身上,發現效果還不錯。于是又萌生了完善那個APP的想法,說干就干,功能比較簡單,幾天就搞定了第一版。
第一個版本
只考慮實現某些功能,不考慮別的,是一個完完全全的單機APP,代碼也是寥寥草草,擴展性非常差。數據庫的表結構也沒有怎么設計,看到還差什么屬性就往上加,然后更新一下數據庫的表結構。這樣反反復復改了好幾次吧,總算第一個原型出來了,沒有發現什么bug,但是bug總是存在的,只是還沒發現罷了(后來在一個低版本的機器上發現了)。
第二個版本
第二個版本是想重構一下代碼,考慮一下未來可能會發生變化的地方,于是嘗試使用了MVP架構去優化代碼,結果重構了兩個界面,花了足足4個多小時!但是不得不說,程序的可擴展性還是提高了很多,至少將View和Model進行了解耦。但是后來發現MVP實在是太難使用了,特別是adapter的邏輯比較復雜的時候,就感覺使用MVP是一個錯誤。
第三個版本
這也是最新的一版,但是還沒有進行編碼。因為吸取了前面兩次的教訓,不弄清楚需求之前,盡量不要編碼實現,不然改動的時間會非常多,而且會破壞代碼的結構。所以今天花了一些時間和同學討論,某些功能是否有必要,如果需要,又該怎樣排版。以及界面該如何美化,如何提升用戶體驗等等。討論了很多,之后依然沒有編碼,因為感覺還沒有達到一個最終的效果,許多東西還有待商榷。
感悟
- 需求很模糊的時候,盡量不要編碼。
- 界面最好要能夠確立風格,各個界面的風格要統一。
- 在編碼的時候,最好把架構搭好,根據復雜度選擇不同的架構。
- 給別人打工比自己當老板要輕松。
由于是自己想做一個好用的APP,然后推薦給大家使用,所以總想加入一些實用的功能,又不知道具體的細節,所以走了很多不必要的彎路。接下來準備花一個星期去確定功能和界面,然后下個周末再編碼,希望能夠做出一個自己滿意的效果。
還想問大家一個問題:沒有美工,且自身的審美能力極差,該如何設計出好看的APP界面呢