Старт: создать первое Android‑приложение на Kotlin
Коротко: установите Android Studio, создайте проект "Empty Activity" с Language = Kotlin, оформите layout в activity_main.xml, добавьте логику в MainActivity.onCreate и запустите на эмуляторе или реальном устройстве — подробные шаги ниже.
Установка и подготовка среды
- Скачайте и установите Android Studio (инсталлятор автоматически предложит SDK и JDK). Для стабильной работы используйте JDK 17+.
- При первом запуске Studio скачает дополнительные компоненты (SDK Platforms, Platform Tools, образ эмулятора) — это ~2–4 ГБ.
- Рекомендуемые системные требования: 8+ ГБ RAM (лучше 16 GB), SSD, включённая виртуализация в BIOS.
Если у вас 8 ГБ RAM — закройте лишние приложения и в Settings отключите ненужные плагины.
Создание проекта и структура файлов
- New Project → Empty Activity.
- Name: MyFirstApp
- Package name: com.example.myfirstapp
- Language: Kotlin
- Minimum SDK: API 24 (Android 7.0) — хорошее соотношение покрытия/функций.
- Выберите Gradle Kotlin DSL (build.gradle.kts) для современных конфигураций.
- Структура проекта: app/src/main/AndroidManifest.xml, MainActivity.kt (в app/src/main/java), res/layout/activity_main.xml, build.gradle.kts.
- Всегда нажимайте "Sync Now" после правок в build.gradle.kts.
Разметка и код: быстрый пример "Hello + Button"
В activity_main.xml используйте ConstraintLayout и добавьте TextView + Button:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/myButton"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
<Button
android:id="@+id/myButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Нажми меня"
app:layout_constraintTop_toBottomOf="@id/textView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt — корректный пример с view binding не обязателен, но onCreate обязателен:
package com.example.myfirstapp
import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textView = findViewById<TextView>(R.id.textView)
val button = findViewById<Button>(R.id.myButton)
button.setOnClickListener {
textView.text = "Кнопка нажата! Время: ${System.currentTimeMillis()}"
}
}
}
Для удобства развития сразу включите ViewBinding (в build.gradle.kts) или исследуйте Jetpack Compose — он упрощает UI и это будущее Android.
Сборка и запуск
- AVD Manager → Create Virtual Device (рекомендуется Pixel); выберите образ с API, который вы указали.
- Для реального устройства: включите USB-отладку (Опции разработчика) и подключитесь по USB.
- Нажмите Run (зелёная стрелка). Первый запуск может занимать несколько минут.
Частые ошибки
- Gradle sync failed — проверьте интернет, версию JDK и переменные окружения; нажмите "Sync Now".
- Эмулятор не стартует — включите виртуализацию в BIOS/UEFI, выделите больше RAM в AVD.
- No view found for id — неверный android:id в XML или опечатка в findViewById.
- APK не подписан — для публикации используйте Build > Generate Signed Bundle/APK и создайте keystore.
Не забывайте запрашивать runtime‑разрешения (например, CAMERA) через API запроса прав при необходимости — иначе функции не будут работать на устройствах с Android 6+.
FAQ
- Нужно ли учить Java? Нет: Kotlin полностью покрывает современные практики Android и рекомендован Google.
- Как перейти на Jetpack Compose? Создайте новый проект с шаблоном Compose или добавьте зависимости Compose в build.gradle, затем учитесь по небольшим примерам.
- Как опубликовать в Google Play? Сначала соберите signed APK / AAB, подготовьте описание и иконки — через Play Console (отдельная регистрация разработчика).
Практический совет: делайте маленькие проекты (заметки, калькулятор, таймер), улучшайте их шаг за шагом — через неделю регулярной практики вы почувствуете уверенность. Удачи!