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