aweaw
main/MainActivity.kt
Android projektas prasideda nuo MainActivity.kt. Tai pirmasis ekranas, kurį mato vartotojas.
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyAppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Sveiki, $name!")
}
ComponentActivity — bazinė Jetpack Compose Activity klasėsetContent { } — čia aprašome UI su Compose funkcijomis@Composable — anotacija kuri nurodo kad funkcija kuria UIMyAppTheme — automatiškai sugeneruota tema su spalvomisAndroidManifest.xml
AndroidManifest.xml aprašo visą programą: pavadinimą, ikoną, leidimus ir paleisties tašką.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:label="@string/app_name"
android:theme="@style/Theme.MyApp">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
android:label — programos pavadinimas rodomas telefoneandroid:exported="true" — Activity gali būti paleista iš šoninio meniuintent-filter — nurodo, kad tai yra paleisties ekranas (MAIN + LAUNCHER)build.gradle.kts
build.gradle.kts nurodo kokias bibliotekas naudoja projektas ir kaip jis sukompiluojamas.
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}
android {
namespace = "com.example.myapp"
compileSdk = 35
defaultConfig {
applicationId = "com.example.myapp"
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0"
}
buildFeatures { compose = true }
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.material3)
}
compose = true — įjungia Jetpack Compose palaikymącompileSdk = 35 — Android SDK versija naudojama kompiliavimuiminSdk = 26 — seniausia palaikoma Android versija (Android 8.0)libs.* — priklausomybės iš libs.versions.tomlmain/res/layout/activity_main.xml
Jetpack Compose projektuose activity_main.xml dažnai yra tuščias, nes UI aprašomas Kotlin kodu, ne XML.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" />
@ComposablesetContent { } MainActivity viduje visiškai pakeičia XML maketąmain/res/values/strings.xml
strings.xml saugo visus teksto išteklius, kad juos būtų galima lengvai lokalizuoti ir keisti vienoje vietoje.
<resources>
<string name="app_name">MyApp</string>
</resources>
res/values-lt/strings.xml lietuviškam tekstui@string/app_name XML failuose arba stringResource(R.string.app_name) Compose kodegradle/libs.versions.toml
libs.versions.toml yra centralizuotas versijų katalogas — viena vieta kur saugomi visų bibliotekų versijų numeriai.
[versions]
agp = "8.7.3"
kotlin = "2.0.0"
coreKtx = "1.15.0"
activityCompose = "1.9.3"
composeBom = "2024.09.00"
[libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-material3 = { group = "androidx.compose.material3", name = "material3" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
[versions] — versijų numeriai[libraries] — bibliotekų koordinatės su nuoroda į versiją[plugins] — Gradle įskiepiai