Вступление
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. Создание Activity
Kotlin
В Android Studio щелкните правой кнопкой мыши имя вашего пакета и выберите « Создать»> «Файл Kotlin» .
В появившемся диалоговом окне введите имя нового Activity
и выберите « Класс» в раскрывающемся списке. Я назвал свой класс MainActivity .
Как только класс будет создан, вы увидите предупреждение с просьбой настроить модуль приложения для поддержки Kotlin.
Нажмите на ссылку в предупреждении и в появившемся диалоговом окне нажмите OK, чтобы выбрать значения по умолчанию.
Чтобы настроить ваш проект на поддержку Kotlin, плагин Kotlin вносит несколько изменений в файл build.gradle . Примените эти изменения, нажав кнопку « Синхронизировать сейчас» , как показано ниже.
На этом этапе настройка вашего проекта завершена. Вернитесь к классу Kotlin, который вы создали минуту назад, чтобы начать кодирование в Kotlin.
3. Использование Kotlin
Для простоты примера я покажу вам, как создать действие с одним TextView
, отображающим String
.
Убедитесь, что ваш класс является подклассом Activity
и переопределите его метод onCreate
. Конечно, вы должны сделать это в Котлине. Если вы новичок в Kotlin, я предлагаю вам использовать функциональность генерации кода Android Studio, нажав Control + O, чтобы получить правильные сигнатуры метода.
Теперь ваш класс должен выглядеть так:
01
02
03
04
05
06
07
08
09
10
|
package com.hathy.kotlinsample
import android.app.Activity
import android.os.Bundle
public class MainActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
|
Создайте экземпляр TextView
в качестве локальной переменной, назначаемой один раз, с помощью ключевого слова val
.
1
|
val myMessage = TextView(this)
|
Вызовите его метод setText
чтобы установить String
вы хотите отобразить, а затем вызовите setContentView
чтобы отобразить текстовое представление.
1
2
|
myMessage.setText(«Hello»)
setContentView(myMessage)
|
Как и в случае Java Activity
, вам нужно объявить вашу Activity
Kotlin в AndroidManifest.xml вашего приложения, чтобы она распознавалась системой Android. , Если это единственное действие в вашем проекте, ваш файл манифеста должен выглядеть следующим образом:
1
2
3
4
5
6
|
<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
Плагин Kotlin Android Extensions позволяет обрабатывать виджеты, которые вы определяете в XML-макете Activity
как если бы они были свойствами этого Activity
. Другими словами, если вы используете этот плагин, вам никогда не придется вызывать findViewById
. Эти свойства удачно называют синтетическими свойствами .
Чтобы использовать эту функцию в вашем приложении, вам нужно добавить org.jetbrains.kotlin:kotlin-android-extensions
в качестве зависимости сценария сборки в build.gradle модуля вашего приложения, как показано ниже. Не забудьте нажать кнопку « Синхронизировать сейчас» для синхронизации проекта.
1
2
3
4
5
|
buildscript {
dependencies {
classpath «org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version»
}
}
|
Давайте теперь создадим Activity
похожую на ту, которую мы создали на предыдущем шаге, но используем XML-макет для определения TextView
. Создайте новый XML-файл макета с именем another_activity.xml . В XML-файле макета определите TextView
с id
myMessage .
01
02
03
04
05
06
07
08
09
10
11
12
|
<?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
. Вот как должна выглядеть реализация:
01
02
03
04
05
06
07
08
09
10
11
|
package com.hathy.kotlinsample
import android.app.Activity
import android.os.Bundle
public class AnotherActivity: Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
}
|
Вызовите setContentView
в методе onCreate
чтобы использовать XML-макет, который вы только что создали, в качестве макета этого Activity
.
1
|
setContentView(R.layout.another_activity)
|
Теперь вместо вызова findViewById
для получения ссылки на TextView
вы можете импортировать его, используя следующий фрагмент кода:
1
|
import kotlinx.android.synthetic.another_activity.myMessage
|
Если в вашем макете было больше виджетов, вы можете импортировать все из них, используя следующий фрагмент кода:
1
|
import kotlinx.android.synthetic.another_activity.*
|
Теперь вы можете получить доступ к вашему TextView
используя его id
как если бы он был свойством класса Activity
. Например, чтобы изменить текст TextView
, вы можете написать:
1
|
myMessage.setText(«Hello»)
|
5. Преобразование Java-классов в Kotlin
Вы можете использовать плагин Kotlin для преобразования существующих классов Java в классы Kotlin. Чтобы попробовать эту функцию, создайте новый класс Java со следующей реализацией. Это простое действие, в котором записывается сумма двух целых чисел.
01
02
03
04
05
06
07
08
09
10
11
12
|
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-файл» .
После преобразования ваш класс будет выглядеть так:
01
02
03
04
05
06
07
08
09
10
11
12
|
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 и плагина Kotlin Android Extensions для Android Studio. Так как классы Kotlin и Java в значительной степени совместимы, если вы все еще изучаете Kotlin, лучше всего постепенно внедрять его в свои проекты Android.
Чтобы узнать больше о Kotlin, я рекомендую просмотреть ссылку Kotlin . Раздел « Начало работы » поможет вам освоиться с этим новым языком.