Статьи

Как использовать Kotlin в ваших проектах Android

Kotlin , язык программирования с открытым исходным кодом, разработанный JetBrains , становится все более популярным среди разработчиков Java. Это часто рекламируется как преемник Java. По сравнению с Java, он предлагает более богатый опыт разработки, потому что он более современный, выразительный и лаконичный.

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

В этом руководстве я покажу вам, как использовать плагины Kotlin и Kotlin в ваших проектах Android Studio.

Чтобы следовать за мной, вам необходимо иметь:

  • последняя версия Android Studio
  • базовое понимание синтаксиса Kotlin

Если вы не знакомы с языком программирования Kotlin, я рекомендую прочитать раздел « Начало работы » справочника Kotlin, чтобы быстро освоить язык.

В меню быстрого запуска Android Studio выберите « Настройка»> «Подключаемые модули» .

Настроить плагины

На следующем экране нажмите Установить плагин JetBrains … внизу.

Установите плагин JetBrains

Выберите Kotlin Extensions для Android из списка и нажмите « Установить плагин» справа.

Установите расширения Kotlin для Android

Поскольку плагин зависит от плагина Kotlin, вам будет предложено установить оба. Нажмите Да, чтобы начать установку.

Обнаружены зависимости плагинов

После завершения установки перезапустите Android Studio, чтобы активировать плагины.

В Android Studio щелкните правой кнопкой мыши имя вашего пакета и выберите « Создать»> «Файл Kotlin» .

Новый файл Kotlin

В появившемся диалоговом окне введите имя нового Activity и выберите « Класс» в раскрывающемся списке. Я назвал свой класс MainActivity .

Диалог нового файла Kotlin

Как только класс будет создан, вы увидите предупреждение с просьбой настроить модуль приложения для поддержки Kotlin.

Настроить оповещение Kotlin

Нажмите на ссылку в предупреждении и в появившемся диалоговом окне нажмите OK, чтобы выбрать значения по умолчанию.

Настроить диалог Kotlin

Чтобы настроить ваш проект на поддержку Kotlin, плагин Kotlin вносит несколько изменений в файл build.gradle . Примените эти изменения, нажав кнопку « Синхронизировать сейчас» , как показано ниже.

Синхронизация сейчас всплывает

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

Плагин 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»)

Вы можете использовать плагин 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-файл» .

Конвертировать файл 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 . Раздел « Начало работы » поможет вам освоиться с этим новым языком.