На этом шаге мы дадим краткую характеристику этих библиотек.
Существует множество библиотек с открытым исходным кодом, которые созданы для повышения удобства работы с 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.
Со следующего шага мы начнем знакомиться с сопрограммами (корутинами).