1. 程式人生 > >Wan Android 專案總結

Wan Android 專案總結

Wan Android 專案總結

專案的由來

這個專案也算是自己學習了一段時間的Android以後的一個總結和學習吧,專案採用了Kotlin語言,Api採用的hongyang大神的WanAndroid 網站的API,就在昨天晚上這個APP的1.0 版本完成了,今天就來總結一下這個專案吧。

專案地址

Github WanAndroid

關於Kotlin的思考

Kotlin並不僅僅是語法糖,她很好,但在我看來她也不完美無缺的。

Kotlin改良了

Java對於巢狀類和內部類的定義的彆扭之處,因為我並不是一個純粹的Java開發者,所以在我接觸Java的 巢狀類內部類 的時候,尤其是 static

關鍵字用於定義巢狀類的時候是在是讓我噁心的不輕,至今我還不太理解這個蜜汁操作。

Kotlin中並沒有受檢查異常,這一點著實是讓程式碼看起來利索了不少,我們不必再一次又一次的去try-catch 。

更簡單的IO,Kotlin對Java中的IO框架進行了進一步的封裝,簡化了一些機械性的工作,Java的IO用過的都知道。。。。這也是我至今接受不了的一個地方(Java那駁雜的IO體系)。

擴充套件方法和Lambda表示式的支援,這些簡便的操作,讓我的編碼體驗更加絲滑。

行內函數,瞭解過Java泛型擦除的應該都知道,Java的泛型是又一個令人詬病的地方。在Kotlin中通過行內函數的方式緩解了一下這個顯現。

...

Kotlin讓我很不爽

說了Kotlin不好的地方了,這次就來吐槽一波吧

Kotlin中並沒有 靜態 這個概念,而是採用伴生物件的機制來實現的類似靜態的操作,這讓我很是無所適從,我的程式碼程式設計了下面這樣。

companion object {
    fun show(context: Context) {
        val intent = Intent(context, MainActivity::class.java)
        context.startActivity(intent)
    }
}

伴生物件的機制,不僅僅是讓程式碼多了一層前端套,更為致命的是,我甚至都不知道將它放置在類中的哪個位置。這個體驗讓我很是不爽啊。

Kotlin中的變數的宣告,從單純的變數變為了 valvar 的宣告的方式,而 val 宣告的變數,就類似Java中的 final 關鍵在修飾的變數類似,這讓我很是費解。或是是為了更好的效能?這就不得而知了。

Kotlin中沒有欄位,Kotlin中雖然並非是真的沒有欄位,但是我們卻無法顯式的宣告它,所以當我們需要一些欄位的時候,我們不得不宣告一個 private 的屬性。

...

Kotlin自從被作為Android的第一開發語言來被 Google 扶持了以後,她就一直飽受爭議,在我看來她並不是完美的,甚至有很多對人不太友好的地方,但是她絕對不是一些語法糖而已。她也確實是提高了我們的開發效率。

輪子加輪子

這是一個輪子+輪子的作品,專案中用到了大量的輪子來提高開發效率或是美化專案,這些輪子都非常受歡迎,使用非常簡單,在用這些輪子的時候,我感到有些沮喪,我的專案中匯出都是這些輪子的影子,而這就顯得我自己的東西就很少了。 還是得老老實實的編碼爭取自己也可以寫出來好的輪子。

無法駕馭的專案結構與無法保證的程式碼質量

在學習MVP架構的時候,看上去非常的簡單和容易上手,但是自己真正去用的時候就感覺難以駕馭經常性的偏離軌道,所以不得不一次又一次的對整體的架構動一些大手術。

在寫程式碼的時候,我總是很難控制程式碼的質量,出現了命名規範不統一,類的繼承結構有問題的情況,在寫程式碼的時候總是集中注意力於功能上,但是這就導致了很多冗餘的垃圾程式碼,甚至這些程式碼到現在還存在於專案中。

UI設計

在做這個APP的時候,UI的設計讓我絞盡腦汁並且也佔據了大量的時間,但是最後也沒得到一個比較漂亮的UI,哎,關於UI設計真是一言難盡,純屬是趕鴨子上架的舉措了。

寫在最後

好了知恥而後勇,程式碼總是一步一步優化的,我將會一點點的優化這些瑕疵,使其成為一個比較完美的作品,好了,本文到此為止,與諸君共勉。