Android에서 Kotlin 시작하기

Kotlin은 Android Studio 3.0 이상에서 완전하게 지원되므로 Kotlin 파일로 손쉽게 새 프로젝트를 생성하고 기존 프로젝트에 Kotlin 파일을 추가하고 자바 언어 코드를 Kotlin으로 변환할 수 있습니다. 그런 다음 Kotlin 코드와 함께 자동 완성, Lint 검사, 리팩토링, 디버깅 등 Android 스튜디오의 기존 도구를 모두 사용할 수 있습니다.

Kotlin 사용을 시작하고 싶으세요? Google의 Kotlin 샘플을 확인해 보세요. Kotlin 언어에 관해 자세히 알아보려면 Kotlin 학습 리소스를 참조하시기 바랍니다.

기존 앱에 Kotlin 추가

Kotlin을 사용하는 데 필요한 기술을 터득하고 자신감을 얻으려면 다음과 같이 점진적으로 접근하는 것이 좋습니다.

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

    자바 파일의 코드를 Kotlin으로 변환하는 Android 스튜디오 코드 변환기를 사용하여 시작해 보세요. 또한 클립보드로부터 붙여넣은 자바 코드를 Kotlin 파일로 변환할 수도 있습니다.

Android API와 Kotlin 예

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

또한 Google에서는 모든 Android API 문서에서 관용적 표현의 Kotlin 참조를 제공하고자 노력하고 있습니다. 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 코드 형식 지정에 관한 유용한 조언을 확인할 수 있습니다.