Шаг 258.
Основы Kotlin.
Первое Android-приложение на Kotlin. Библиотеки Android KTX и Anko

    На этом шаге мы дадим краткую характеристику этих библиотек.

    Существует множество библиотек с открытым исходным кодом, которые созданы для повышения удобства работы с Kotlin и Android. Мы рассмотрим две из них, чтобы дать вам представление о существующих возможностях.

    Проект Android KTX (https://github.com/android/android-ktx) предлагает ряд полезных расширений Kotlin для разработки Android-приложений, часто представляя более Kotlin-подобный интерфейс для Android Java API, который иначе был бы невозможен. Например, рассмотрите следующий код, который использует общие настройки Android для сохранения небольшого количества данных в целях дальнейшего использования:

  sharedPrefs.edit()
    .putBoolean(true, USER_SIGNED_IN)
    .putString("Josh", USER_CALLSIGN)
    .apply()

    С Android KTX вы можете сократить выражение и записать его в более идеологически верном для Kotlin стиле:

  sharedPrefs.edit {
    putBoolean(true, USER_SIGNED_IN) 
    putString("Josh", USER_CALLSIGN)
  }

    Android KTX добавляет множество классных дополнений в код Kotlin для Android, которые позволят вам работать с фреймворком Android в таком стиле, который больше похож на Kotlin, чем на Java.

    Другой популярный проект Kotlin, используемый с Android, - это Anko (https://github.com/Kotlin/anko), который предоставляет множество усовершенствований для разработки на Kotlin под Android, включая предметно-ориентированный язык для определения UI и ряд вспомогательных функций для работы с диалоговыми окнами Android, SQLite и многими другими аспектами проекта Android. Например, следующий код макета, использующий возможности Anko, программно определяет вертикально ориентированный экран с кнопкой, при нажатии на которую выводится сообщение:

  verticalLayout {
     val username = editText() 
     button("Greetings") {
            onClick { toast("Hello, ${username.text}!") }
     }
  }

    Сравните это с кодом Java, решающим ту же задачу:

  LayoutParams params = new LinearLayout.LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT);
  LinearLayout layout = new LinearLayout(this); layout.setOrientation(LinearLayout.VERTICAL);
  EditText name = new EditText(this);
  name.setLayoutParams(params);
  layout.addView(name);
  Button greetings = new Button(this); 
  greetings.setText("Greetings");  
  greetings.setLayoutParams(params); 
  layout.addView(greetings);
  LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams( 
        LayoutParams.FILL_PARENT,
        LayoutParams.WRAP_CONTENT); 
  this.addContentView(layout, layoutParam); 
  greetings.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) {
        Toast.makeText(this, "Hello, " + name.getText(),
            Toast.LENGTH_SHORT).show();
  }
}


К сожалению, в настоящее время поддержка этой библиотеки прекращена.

    Kotlin - все еще относительно молодой язык программирования, и новые полезные библиотеки выходят каждый день. Следите за новостями на сайте https://kotlinlang.org, чтобы быть в курсе всех последних разработок.


Русскоязычное сообщество Kotlin: https://kotlinlang.ru.

    Со следующего шага мы начнем знакомиться с сопрограммами (корутинами).




Предыдущий шаг Содержание Следующий шаг