2018年9月27日 星期四

Java轉Kotlin #1

前言:
Kotlin為Google 在2017年I/O大會上所宣布成為Android 一級官方語言,相關Kotlin的簡介可自行在網路上找資料,這裡就不多做介紹了。

我本身約從5月初開始將專案從Java改成Kotlin(感謝主管的支持),目前已經寫了兩個全Kotlin的專案了,在此先說明一點,如果你本身現有的專案已經是Java了,建議不要在轉寫成Kotlin,或許你覺得沒差,但以專案的角度來說,Java混Kotlin非常的不好,容易造成後面接手的工程師難以接手,也會造成後期專案維護上的困難,這點千萬要記住。



一.Android Studio Kotlin環境建置:




  1. Android Studio 3.0本身就已經支持Kotlin,在創建新的專案時,只要Include Kotlin support即可



(圖一)
點選Include Kotlin support

(圖二)
專案創建完成後點選MainActivity
(圖三)
點擊build.gradle(Module:app)可看到如圖片中的
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
到此專案已經可以支援Kotlin了,如要創建新的Class只需要像Java同樣的方式創建即可 (如下圖四)。


(圖四)
點選右鍵選擇Kotlin File/Class即可創建Kotlin的Class

二.Kotlin常用的library:

  • Anko:Anko是Kotlin專門為Android所寫的一個第三方的library,用途再提升Android的開發效率,使程式碼更簡潔易懂,強烈建議任何Kotlin的專案一定要引入此library,你才會真正感受到Kotlin的高校率及程式碼簡潔,Anko本身是個很強大的Android libray, 可依照專案的需求引入自己所需要的功能,下面我會做個簡單的示範來展示Anko的強大之處。
首先先在build.gradle(Module:app)引入library如下:
implementation 'org.jetbrains.anko:anko-appcompat-v7-commons:0.10.5'

下面我做幾個簡單的示範:

例一:
我先在xml中定義一個TextView,id為kotlintextview(如圖五所示)接者在MainActivity去setTextView的內文。


  • Java的做法:
TextView textView;                                      textView =(TextView)findViewById(R.id.kotlintextView);textView.setText("Kotlin教學");

  • Kotlin的做法:(圖四)
kotlintextView.text = "Kotlin教學"
例二:Toast示範
  • Java的做法:
Toast.makeText(this, "Kotlin教學", Toast.LENGTH_LONG).show();
  • Kotlin的做法:
toast("kotlin教學")
 以上兩個例子對比Kotlin是不是精簡很多? 
上面兩個例子只是Anko的一小部分,有興趣的話可自行至以下網址去Anko的GitHub了解更多Anko的使用方法,下面附上Anko的連結給大家。 
Kotlin Anko Github 
  • 圖片加載框架:

implementation 'com.github.bumptech.glide:glide:4.8.0'
相信有在寫Android的朋友對Glide這個圖片加載框架應該不陌生才對,Kotlin同樣可以使用這個library,當然picasso同樣有支援Kotlin的library可以用,這兩個圖片框架網路上相當多教學文,下面附上官方連結,在此我就不多做說明了。
Glide Wiki 
  • EventBus:

implementation 'org.greenrobot:eventbus:3.1.1'
這個也是一個在Java就有的libary,用法跟Java也類似,
有興趣的人可到我以下的網址連結去了解,同樣在此就不多做說明了。 
EventBus Githib 

  •  retrofit2:
implementation 'com.squareup.retrofit2:retrofit:2.4.0'
retrofit是Android一個Http的請求框架,也是一個Java就有的library,同時也支援Kotlin的使用,同樣附上官方連結,有興趣的可以自行去了解。
retrofit Url 

以上是我在建置一個Kotlin專案時所會引入的一些libary,當然Kotlin發展至今,一些Java常用libary如RxJava等,現在Kotlin也有如Rxkotlin等的libary可以用了。

這次的心得文就先到這裡,下次如有時間在詳細介紹更多有關Kotlin的心得給大家。









沒有留言:

張貼留言