Для контекста: во времена Gingerbread/Honeycomb я создал несколько полноценных приложений, и я помню, что нужно было просто щелкнуть правой кнопкой мыши --> импортировать --> готово. Я не думаю, что я даже знал о файлах Gradle или слове «зависимость», и я хочу снова испытать это. У меня просто розовый взгляд на прошлое???
Вот реальный пример, который это иллюстрирует.
В Cupcake на android.com Приложение CupcakeScreen.kt имеет этот код:
Код: Выделить всё
@Composable
fun CupcakeApp(
viewModel: OrderViewModel = viewModel(),
navController: NavHostController = rememberNavController()
) {
Scaffold(
...
Код: Выделить всё
import androidx.lifecycle.viewmodel.compose.viewModel
@Composable
fun GotubeApp(
viewModel: ConceptisViewModel = viewModel(),
) {
Код: Выделить всё
dependencies {
implementation(platform("androidx.compose:compose-bom:2023.10.01"))
implementation("androidx.activity:activity-compose:1.8.0")
implementation("androidx.compose.material3:material3")
implementation("androidx.compose.runtime:runtime")
implementation("androidx.compose.runtime:runtime-livedata")
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.core:core-ktx:1.12.0")
implementation("androidx.lifecycle:lifecycle-livedata-ktx:${rootProject.extra["lifecycle_version"]}")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:${rootProject.extra["lifecycle_version"]}")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:${rootProject.extra["lifecycle_version"]}")
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:${rootProject.extra["lifecycle_version"]}")
implementation("androidx.navigation:navigation-compose:2.7.4")
debugImplementation("androidx.compose.ui:ui-test-manifest")
debugImplementation("androidx.compose.ui:ui-tooling")
}
Код: Выделить всё
// ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
// ViewModel utilities for Compose
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycle_version")
// LiveData
implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
// Lifecycles only (without ViewModel or LiveData)
implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycle_version")
// Lifecycle utilities for Compose
implementation("androidx.lifecycle:lifecycle-runtime-compose:$lifecycle_version")
// Saved state module for ViewModel
implementation("androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version")
...
Это очень много работы для одной строки кода, и почти каждая добавляемая мной строка заставляет меня проходить аналогичную процедуру. Это то, на что сейчас похожа разработка Android, или я могу добиться большего?
Подробнее здесь: https://stackoverflow.com/questions/792 ... pendencies
Мобильная версия