하루에 0.01%라도 성장하자

Develop/Android

kotlin-android-extensions 와 Anko 라이브러리

뚠님 2019. 6. 17. 15:30
728x90
반응형

 

kotlin-android-extensions

 

kotlin-android-extensions 플로그인을 이용해 뷰의 id를 findViewById를 이용해 가져올 필요가 없어졌다.

 

// 기존 사용

Button btnA;

btnA = findViewById(R.id.btn_a);
btnA.setOnclickListener(listener);


// 코틀린 사용

btn_a.setOnClickListener(listener) // Button을 정의해줄 필요가 없음.

 

 

Anko 라이브러리를 이용한 코드 단축

 

Intent를 이용해 화면을 전환할 때 Anko를 사용할 때와 사용하지 않을 때 코드 길이차이가 많이 난다.

처음엔 나도 너무 간단해서 이게 뭔가 싶었는데..

 

// 기존
val intent = Intent(this, ResultActivity.class) // 기존
val intent = Intent(this, ResultActivity::class.java) // 코틀린
startActivity(intent)

// Anko
startActivity<ResultActivity>() // Anko 사용

 

기존 코드와 Anko를 사용한 코드는 모두 같은 동작을 한다.

( 기존 코드에서 코틀린과 안드로이드의 문법이 조금 차이나서 두줄로 작성하였다. )

 

intent를 넘길때 데이터를 같이 넘겨줄 수 있는데, 이때는 어떻게 다른지 보자.

 

// 기존
val intent = Intent(this, ResultActivity.class) // 기존
val intent = Intent(this, ResultActivity::class.java) // 코틀린
intent.putExtra("data1", data1); // 데이터 전달.
intent.putExtra("data2", data2);

startActivity(intent)

// Anko
startActivity<ResultActivity>(
    "data1" to data1,  // Anko 사용
    "data2" to data2
) 

약간 json 느낌이 나는 데이터 전달 방식이다. 확실히 익숙해지면 편해질 것 같은 느낌.

 

 

Toast를 사용할때도 많은 차이를 보였다.

기존 코드는 가끔 .show()를 생략해 실제로 노출이 되지 않는 경우도 많았는데, Anko를 사용하면 그럴 가능성이 없다.

 

// 기존
Toast.makeText(this, "토스트입니다", Toast.LENGHT_LONG).show()

// Anko
toast("토스트입니다.")

 

Anko의 경우는 4가지의 라이브러리로 구성되는데, 사용하는데로 포스팅 해볼 예정이다.

 

  • Anko Commons : 인텐트, 다이얼로그, 로그 관련된 라이브러리
  • Anko Layouts : 안드로이드 레이아웃관련 라이브러리
  • Anko SQLite : SQLite를 쉽게 사용하는 라이브러리
  • Anko Coroutines : 코루틴을 쉽게 사용하는 라이브러리
728x90
반응형