Как использовать Kotlin в ваших проектах Android...
Введение
Kotlin, язык программирования с открытым исходным кодом, разработанный JetBrains, становится все более популярным среди разработчиков Java. Он часто рекламируется как преемник Java. По сравнению с Java, он предлагает более богатый опыт разработки, потому что он более современный, выразительный и лаконичный.
Если вы ищете альтернативный язык программирования для разработки Android, вы должны попробовать Kotlin. Его можно легко использовать вместо или в сочетании с Java в ваших проектах Android.
В этом уроке я покажу вам, как использовать плагины Kotlin и Kotlin в ваших проектах Android Studio.
Предпосылки
Чтобы следовать за мной, вам нужно:
- последняя версия Android Studio
- базовое понимание синтаксиса Kotlin
Если вы не знакомы с языком программирования Kotlin, я рекомендую прочитать раздел «Начало работы» секции Kotlin, чтобы познакомиться с языком.
1. Установка плагинов Kotlin
В меню быстрого запуска Android Studio выберите Настройка> Плагины.
На следующем экране нажмите Установить плагин JetBrains.
Выберите Kotlin Extensions для Android из списка и нажмите Установить плагин справа.
Поскольку плагин зависит от плагина Kotlin, вас попросят установить оба. Нажмите Да, чтобы начать установку.
По завершении установки перезапустите Android Studio, чтобы активировать плагины.
2. Создание Kotlin Activity
В Android Studio щелкните правой кнопкой мыши имя вашего пакета и выберите Создать> Файл Kotlin.
В появившемся диалоговом окне введите имя нового Activity
и выберите Класс в раскрывающемся списке. Я назвал свой класс MainActivity.
Как только класс будет создан, вы увидите предупреждение с просьбой настроить модуль приложения для поддержки Kotlin.
Нажмите ссылку в предупреждении и в появившемся диалоговом окне нажмите OK, чтобы выбрать значения по умолчанию.
Чтобы настроить проект для поддержки Kotlin, плагин Kotlin вносит несколько изменений в файл build.gradle. Примените эти изменения, нажав кнопку Синхронизировать сейчас, как показано ниже.
На этом этапе конфигурация вашего проекта завершена. Вернитесь к классу Kotlin, который вы создали минуту назад, чтобы начать писать код на Kotlin.
3. Использование Kotlin
Чтобы упростить пример, я покажу вам, как создать Activity
с помощью одного TextView
, который отображает String
.
Убедитесь, что ваш класс является подклассом Activity
и переопределяет его метод onCreate
. Конечно, вы должны сделать это в Kotlin. Если вы новичок в Kotlin, я предлагаю вам использовать функциональность генерации кода Android Studio, нажав Control + O, чтобы получить сигнатуры метода справа.
Теперь ваш класс должен выглядеть следующим образом:
package com.hathy.kotlinsampleimport android.app.Activityimport android.os.Bundlepublic class MainActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) }}
Создайте экземпляр TextView
как локальную переменную assign-once, используя ключевое слово val
.
val myMessage = TextView(this)
Вызовите ее метод setText
, чтобы установить String
, который хотите отобразить, и затем вызовите setContentView
для отображения текстового вида.
myMessage.setText("Hello")setContentView(myMessage)
Как и для Java-Activity
, вам нужно объявить свою Kotlin-Activity
в AndroidManifest.xml вашего приложения, чтобы она была распознана системой Android. Если это единственный Activity
в вашем проекте, ваш файл манифеста должен выглядеть так:
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter></activity>
Теперь вы можете скомпилировать и запустить приложение на своем Android-устройстве или эмуляторе. Хотя компилятор Kotlin немного медленнее, чем у Java, вы вряд ли увидите существенные изменения во времени сборки вашего проекта.
4. Использование Kotlin Android Extensions
Плагин Kotlin Android Extensions позволяет обрабатывать виджеты, которые вы определяете в XML-макете Activity
, как если бы они были свойствами этой Activity
. Другими словами, если вы используете этот плагин, вам никогда не придется вызывать findViewById
. Эти свойства называются синтетическими свойствами.
Чтобы использовать эту функцию в своем приложении, вам нужно добавить org.jetbrains.kotlin: kotlin-android-extensions
как зависимость скрипта сборки в модуле build.gradle вашего приложения, как показано ниже. Не забудьте нажать кнопку Синхронизировать сейчас, чтобы синхронизировать ваш проект.
buildscript { dependencies { classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version" }}
Теперь создадим Activity
, аналогичную той, которую мы создали на предыдущем шаге, но используем XML-макет для определения TextView
. Создайте новый XML-файл макета с именем another_activity.xml. В XML-файле макета укажите TextView
с id
myMessage.
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceLarge" android:text="Large Text" android:id="@+id/myMessage" /></LinearLayout>
Создайте еще один класс Kotlin, AnotherActivity, который расширяет Activity
и переопределяет его метод onCreate
. Это должно выглядеть так:
package com.hathy.kotlinsampleimport android.app.Activityimport android.os.Bundlepublic class AnotherActivity: Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) }}
Вызовите setContentView
в методе onCreate
для использования XML-макета, который вы только что создали, в качестве макета этого Activity
.
setContentView(R.layout.another_activity)
Теперь вместо вызова findViewById
для получения ссылки на TextView
вы можете импортировать его с помощью следующего фрагмента кода:
import kotlinx.android.synthetic.another_activity.myMessage
Если в вашем макете было больше виджетов, вы можете импортировать все из них, используя следующий фрагмент кода:
import kotlinx.android.synthetic.another_activity.*
Теперь вы можете получить доступ к своему TextView
, используя свой id
, как если бы это было свойство класса Activity
. Например, чтобы изменить текст TextView, вы можете написать:
myMessage.setText("Hello")
5. Преобразование классов Java в Kotlin
Вы можете использовать плагин Kotlin для преобразования существующих классов Java в классы Kotlin. Чтобы попробовать эту функцию, создайте новый класс Java со следующей реализацией. Это простая Activity
, которая выводит сумму двух целых чисел.
public class YetAnotherActivity extends Activity { private int a,b; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); a=10; b=20; Log.d("MESSAGE", "The sum is "+(a+b)); }}
Преобразуйте класс Java в класс Kotlin, нажав Control + Alt + Shift + J или в меню выберите Код > Преобразовать файл Java в файл Kotlin.
После преобразования ваш класс будет выглядеть следующим образом:
public class YetAnotherActivity : Activity() { private var a: Int = 0 private var b: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) a = 10 b = 20 Log.d("MESSAGE", "The sum is " + (a + b)) }}
Вы также заметите, что расширение файла изменилось с .java на .kt.
Заключение
В этом уроке вы узнали, как использовать Kotlin в своих проектах Android после установки плагина Kotlin и плагина Android Kotlin для Android. Поскольку классы Kotlin и Java в значительной степени совместимы, если вы все еще изучаете Kotlin, лучше всего вводить его в свои проекты Android постепенно.
Чтобы узнать больше о Kotlin, я рекомендую просмотреть документацию Kotlin. Раздел Начало работы поможет вам быстро освоить этот новый язык.