Android에서 Kotlin 시작하기

Android 스튜디오에서는 Kotlin을 완전하게 지원하여 Kotlin 파일로 새로운 프로젝트를 생성하고 기존 프로젝트에 Kotlin 파일을 추가하며 자바 언어 코드를 Kotlin으로 변환할 수 있습니다. Kotlin 코드와 함께 Android 스튜디오의 기존 도구(예: 코드 완성, 린트 검사, 리팩터링, 디버깅 등)를 모두 사용할 수 있습니다.

Kotlin 언어에 익숙하지 않다면 다음 링크를 확인하세요.

기존 앱에 Kotlin 추가

Kotlin을 사용하여 기술과 자신감을 얻으려면 다음 방법을 사용하는 것이 좋습니다.

  1. Kotlin에서 테스트를 작성하는 것으로 시작하세요. 테스트는 코드 회귀가 있는지 검사하는 데 유용하며, 코드를 리팩토링할 때 안정성을 높이기도 합니다. 테스트는 기존 자바 코드를 Kotlin으로 변환할 때 특히 유용합니다. 테스트는 패키징 중에 앱에 번들로 묶이지 않으므로 테스트를 통해 Kotlin을 코드베이스에 추가해도 안전합니다.
  2. Kotlin으로 새 코드를 작성합니다. 기존 자바 코드를 Kotlin으로 변환하기 전에 새로운 Kotlin 코드 조각을 앱에 추가해 보세요. 작은 클래스 또는 최상위 도우미 기능으로 시작합니다. Kotlin 코드에 관련 주석을 추가하여 자바 코드와의 적절한 상호운용성을 보장해야 합니다.
  3. 기존 코드를 Kotlin으로 업데이트합니다. 새 Kotlin 코드를 작성하는 데 익숙해지면 기존 자바 코드를 Kotlin으로 변환합니다. 자바 기능의 일부를 추출하여 Kotlin 클래스 및 최상위 함수로 변환해 보세요.

Android 스튜디오에는 자바 파일의 코드를 Kotlin으로 변환하는 코드 변환기도 포함되어 있습니다. 클립보드에서 붙여넣은 자바 코드를 Kotlin 파일로 변환할 수도 있습니다.

Android API와 Kotlin 예

Kotlin은 완전한 자바 언어와의 상호운용성을 제공하므로, Android API 호출이 동일한 작업을 위한 자바 코드와 똑같아 보이는 경우가 많습니다. 이제는 이러한 메소드 호출을 Kotlin의 구문 기능과 결합할 수 있습니다.

많은 Android API가 직관적인 Kotlin 참조와 함께 제공됩니다. 자세한 내용은 KTX 가이드Android용 Kotlin 참조 문서를 읽어보세요.

다음은 자바 언어로 작성된 동일한 작업의 코드와 비교하여 Kotlin으로 Android API를 호출하면 어떻게 보이는지 나타내는 몇 가지 예입니다.

활동 선언

Kotlin

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

자바

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

클릭 시 실행되는 리스너 만들기

Kotlin

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

자바

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

항목을 클릭 시 실행되는 리스너 만들기

Kotlin

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

자바

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

권장사항

Kotlin 사용에 능숙해지면 다음 가이드라인을 따르세요.

  • 코드 최소화보다는 가독성이 중요합니다. 불필요한 Kotlin 코드를 과도하게 사용하지 않도록 주의해야 합니다.
  • 팀 작업에 가장 적합한 코딩 규칙과 관용구를 확립하는 것이 좋습니다. KotlinAndroid Kotlin 스타일 가이드에서는 Kotlin 코드 형식 지정에 관한 조언을 제공합니다.