Part1: Bắt đầu với Kotlin trên Android Studio

Kotlin được hỗ trợ đầy đủ trong Android Studio 3.0 (Tại đây), do vậy dễ dàng tạo các dự án mới với các files Kotlin, thêm các files Kotlin vào project hiện tại của bạn và chuyển đổi ngôn ngữ Java sang Kotlin.
Sau đó bạn có thể sử dụng tất cả các công cụ hiện có của Android Studio với code Kotlin của bạn, chẳng hạn như: autocomplete, lint checker, refactoring, debugging….

1. Tạo project với Kotlin

  • Trên Android Studio, click File > New > New Project. Hoặc nếu bạn đang trên màn hình Welcome to Android Studio, chọn Start a new Android Studio project.
  • Trên màn hình đầu tiên, chọn Include Kotlin support.
  • Tiếp tục nhấn Next cho đến khi hoàn thành

Khi bạn chọn một Template Activity thì nó sẽ được cung cấp code Kotlin hiện tại chỉ support một vài mẫu template cho Phone và Tablet.
Tương tự như Java các file code được lưu ở : src/main/java/

2. Thêm Kotlin vào project có sẵn

Nếu bạn muốn thêm Kotlin vào project có sẵn các đơn giản là chọn: File > New và chọn một mấu Activity.
– Tiếp theo chọn ngôn ngữ Koltin

Cách khác bạn có thể chọn : File > New > Kotlin File/Class để tạo một file Kotlin đơn giản.

Theo mặc định, tệp tin Kotlin mới được lưu vào src/main/java/. Bạn có thể tìm thấy cả hai tệp Kotlin và Java ở một vị trí dễ dàng hơn.
Nhưng nếu bạn muốn tách các tập tin Kotlin khỏi các tệp Java của mình, bạn có thể đặt các tệp Kotlin dưới src/main/kotlin/ để thay thế. Để làm như vậy bạn cần thay đổi trong sourceSets như sau:

android {
   sourceSets {
       main.java.srcDirs += 'src/main/kotlin'
   }
}

3. Chuyển Java code sang Kotlin code

Trong Android Studio 3.0, bạn mở một file Java và chọn Code > Convert Java File to Kotlin File.
Hoặc, tạo một Kotlin file (File > New > Kotlin File/Class), copy java code vào lúc này hiện dialog xác nhận các bạn bấm YES

4. Sử dụng Android APIs với Kotlin

Kotlin cung cấp khả năng tương tác hoàn chỉnh với ngôn ngữ Java, vì vậy khi bạn gọi các API Android thường giống chính xác như mã Java.

Declare Activity in Kotlin

class MyActivity : AppCompatActivity() {
  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity)
  }
}

 

Declare Activity in Java

public class MyActivity extends AppCompatActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity);
  }
}

 

On-click listener in Kotlin

val fab = findViewById(R.id.fab) as FloatingActionButton
fab.setOnClickListener {
  ...
}

On-click listener in Java

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
    ...
  }
});

Item click listener in Kotlin

private val mOnNavigationItemSelectedListener
    = BottomNavigationView.OnNavigationItemSelectedListener { item ->
  when (item.itemId) {
    R.id.navigation_home -> {
      mTextMessage.setText(R.string.title_home)
      return@OnNavigationItemSelectedListener true
    }
    R.id.navigation_dashboard -> {
      mTextMessage.setText(R.string.title_dashboard)
      return@OnNavigationItemSelectedListener true
    }
 }
 false
}

Item click listener in Java

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
    = new BottomNavigationView.OnNavigationItemSelectedListener() {
  @Override
  public boolean onNavigationItemSelected(@NonNull MenuItem item) {
    switch (item.getItemId()) {
      case R.id.navigation_home:
        mTextMessage.setText(R.string.title_home);
        return true;
      case R.id.navigation_dashboard:
        mTextMessage.setText(R.string.title_dashboard);
        return true;
    }
    return false;
  }
};

 

Để tìm hiểu thêm về ngôn ngữ Kotlin, xem tại đây.

Nguyễn Linh

Chia sẻ để cùng tiến bộ...

Bình luận đã bị khoá.