From 0bf58b414e7e442e8560d37222bd3db312f71cc4 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 25 May 2025 08:08:28 +0000 Subject: [PATCH] Upload files to "/" --- build.gradle.kts | 86 ++++++++++++++++++ libs.versions (2).toml | 66 ++++++++++++++ libs_kotlin.docx | Bin 0 -> 9878 bytes Санкт_Петербург_зависимости_финал.txt | 124 ++++++++++++++++++++++++++ Шаронова.txt | 105 ++++++++++++++++++++++ 5 files changed, 381 insertions(+) create mode 100644 build.gradle.kts create mode 100644 libs.versions (2).toml create mode 100644 libs_kotlin.docx create mode 100644 Санкт_Петербург_зависимости_финал.txt create mode 100644 Шаронова.txt diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..62f48da --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,86 @@ +plugins { + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + kotlin("plugin.serialization") version "2.1.21" +} + +android { + namespace = "com.example.matule" + compileSdk = 35 + + defaultConfig { + applicationId = "com.example.matule" + minSdk = 24 + targetSdk = 35 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + kotlinOptions { + jvmTarget = "11" + } + 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.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.ui.test.junit4) + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) + + implementation(project(":ui-kit")) + implementation(project(":network")) + + implementation(libs.androidx.navigation.compose) + + testImplementation(libs.mockito.core) + testImplementation(libs.mockwebserver) + testImplementation(libs.kotlinx.coroutines.test) + + implementation(libs.coil.compose) + + implementation(libs.retrofit) + implementation(libs.converter.gson) + + implementation(libs.kotlinx.serialization.json) + + implementation(libs.converter.jackson) + + implementation(libs.gson) + + implementation(libs.jackson.module.kotlin) + implementation(libs.okhttp) + + implementation(libs.androidx.glance.appwidget) + implementation(libs.androidx.glance) +} \ No newline at end of file diff --git a/libs.versions (2).toml b/libs.versions (2).toml new file mode 100644 index 0000000..0c5bc00 --- /dev/null +++ b/libs.versions (2).toml @@ -0,0 +1,66 @@ +[versions] +agp = "8.9.0" +coilCompose = "3.1.0" +converterGson = "2.11.0" +converterJackson = "3.0.0" +glanceAppwidget = "1.1.1" +glance = "1.1.0" +gson = "2.13.1" +jacksonModuleKotlin = "2.19.0" +kotlin = "2.0.21" +coreKtx = "1.16.0" +junit = "4.13.2" +junitVersion = "1.2.1" +espressoCore = "3.6.1" +kotlinxCoroutinesTest = "1.5.2" +kotlinxSerializationJson = "1.8.1" +lifecycleRuntimeKtx = "2.8.7" +activityCompose = "1.10.1" +composeBom = "2024.09.00" +appcompat = "1.7.0" +material = "1.12.0" +jetbrainsKotlinJvm = "2.0.21" +mockitoCore = "3.11.2" +mockwebserver = "4.9.1" +navigationCompose = "2.9.0" +okhttp = "4.12.0" + +[libraries] +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +androidx-glance = { module = "androidx.glance:glance", version.ref = "glance" } +androidx-glance-appwidget = { module = "androidx.glance:glance-appwidget", version.ref = "glanceAppwidget" } +androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigationCompose" } +coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coilCompose" } +converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "converterGson" } +converter-jackson = { module = "com.squareup.retrofit2:converter-jackson", version.ref = "converterJackson" } +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } +jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jacksonModuleKotlin" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } +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-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } +androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" } +kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "mockwebserver" } +mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" } +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "converterGson" } + +[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" } +android-library = { id = "com.android.library", version.ref = "agp" } +jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" } + diff --git a/libs_kotlin.docx b/libs_kotlin.docx new file mode 100644 index 0000000000000000000000000000000000000000..2287a9a2c6e75d3fb5c1221a7ef1c5ad25783a63 GIT binary patch literal 9878 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 XQ<8&zH7ytz{3}FXCq{%Qetr8tds)c+ literal 0 HcmV?d00001 diff --git a/Санкт_Петербург_зависимости_финал.txt b/Санкт_Петербург_зависимости_финал.txt new file mode 100644 index 0000000..9f7d365 --- /dev/null +++ b/Санкт_Петербург_зависимости_финал.txt @@ -0,0 +1,124 @@ +[versions] +agp = "8.10.0" +androidPdfViewer = "3.2.0-beta.3" +kotlin = "2.1.20" +coreKtx = "1.16.0" +junit = "4.13.2" +junitVersion = "1.2.1" +espressoCore = "3.6.1" +lifecycleRuntimeKtx = "2.8.7" +activityCompose = "1.10.1" +composeBom = "2025.04.01" +appcompat = "1.7.0" +material = "1.12.0" +jetbrainsKotlinJvm = "2.1.20" + +retrofit = "2.11.0" +okhttp3 = "4.12.0" +kotlinxSerializationConverter = "1.0.0" +kotlinxSerializationJson = "1.8.0" +navigationCompose = "2.9.0" +dagger = "2.55" +hiltNavigationCompose = "1.2.0" +datastorePreferences = "1.1.6" +javaxInject = "1" +kotlinxCoroutinesTest = "1.10.2" +uiTooling = "1.8.2" +coil = "3.1.0" +materialIconsExtended = "1.7.8" + +[libraries] +androidx-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "materialIconsExtended" } +coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" } +coil-network-http = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" } + +mockwebserver = { group = "com.squareup.okhttp3", name = "mockwebserver", version.ref = "okhttp3" } +kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" } +javax-inject = { group = "javax.inject", name = "javax.inject", version.ref = "javaxInject" } +android-pdf-viewer = { group = "com.github.mhiew", name = "android-pdf-viewer", version.ref = "androidPdfViewer" } +androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastorePreferences" } +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger" } +hilt-android-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "dagger" } +hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "hiltNavigationCompose" } +navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +retrofit2-kotlinx-serialization-converter = { group = "com.jakewharton.retrofit", name = "retrofit2-kotlinx-serialization-converter", version.ref = "kotlinxSerializationConverter" } +logging-interceptor = { group = "com.squareup.okhttp3", name = "logging-interceptor", version.ref = "okhttp3" } +okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp3" } +retrofit2 = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } + +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +junit = { group = "junit", name = "junit", version.ref = "junit" } +androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" } +androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } +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-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" } +androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } +androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } +androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } +androidx-material3 = { group = "androidx.compose.material3", name = "material3" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } +ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "uiTooling" } + + +[plugins] +dagger-hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "dagger" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +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" } +android-library = { id = "com.android.library", version.ref = "agp" } +jetbrains-kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "jetbrainsKotlinJvm" } + +plugins { + alias(libs.plugins.dagger.hilt.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + kotlin("kapt") +} + +dependencies { + debugImplementation(libs.ui.tooling) + debugImplementation(libs.androidx.ui.tooling.preview) + api(platform(libs.androidx.compose.bom)) + api(libs.androidx.activity.compose) + api(libs.androidx.ui) + api(libs.androidx.ui.graphics) + api(libs.androidx.ui.tooling.preview) + api(libs.androidx.material3) + api(libs.material) + + implementation(libs.androidx.material.icons.extended) + implementation(libs.coil.compose) + implementation(libs.coil.network.http) + implementation(libs.retrofit2.kotlinx.serialization.converter) + implementation(libs.retrofit2) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + implementation(libs.android.pdf.viewer) + implementation(libs.androidx.datastore.preferences) + kapt(libs.hilt.android.compiler) + implementation(libs.hilt.android) + implementation(libs.hilt.navigation.compose) + + implementation(libs.navigation.compose) + implementation(libs.kotlinx.serialization.json) + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.lifecycle.runtime.ktx) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(platform(libs.androidx.compose.bom)) + androidTestImplementation(libs.androidx.ui.test.junit4) + debugImplementation(libs.androidx.ui.tooling) + debugImplementation(libs.androidx.ui.test.manifest) +} \ No newline at end of file diff --git a/Шаронова.txt b/Шаронова.txt new file mode 100644 index 0000000..58424e1 --- /dev/null +++ b/Шаронова.txt @@ -0,0 +1,105 @@ + id("org.jetbrains.kotlin.plugin.serialization") version "2.1.0" +//App + kotlin("plugin.serialization") version "2.1.0" + + + //импорт библиотеки + implementation(project (":uiKit")) + implementation(project(":networkLib")) + + //Навигация + implementation("androidx.navigation:navigation-compose:2.8.6") + + // Kotlin + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") + + + // koin + implementation("io.insert-koin:koin-android:3.4.3") + implementation("io.insert-koin:koin-androidx-compose:3.4.3") + implementation("io.insert-koin:koin-android:3.5.0") + + //ktor + implementation("io.ktor:ktor-client-core:2.3.7") // Ядро Ktor + implementation("io.ktor:ktor-client-logging:2.3.7") // логинг + implementation("io.ktor:ktor-client-android:2.3.7") // Android-специфичный движок + implementation("io.ktor:ktor-client-content-negotiation:2.3.7") // Для JSON + implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.7") // Сериализация + implementation("io.ktor:ktor-client-cio:2.3.7") //cio + + + //для виджета + implementation ("androidx.glance:glance-appwidget:1.0.0-alpha04") + implementation ("androidx.glance:glance-wear-tiles:1.0.0-alpha04") + //картинки + implementation("io.coil-kt:coil-compose:2.2.2") + + implementation ("androidx.work:work-runtime-ktx:2.7.1") + implementation ("androidx.core:core-ktx:1.6.0") + + implementation ("com.google.accompanist:accompanist-permissions:0.24.3-alpha") + + val espressoVersion = "4.2.2" + androidTestImplementation ("androidx.test.espresso:espresso-core:$espressoVersion") + androidTestImplementation( "androidx.test.espresso:espresso-core:$espressoVersion") + androidTestImplementation( "androidx.test.espresso:espresso-contrib:$espressoVersion") + androidTestImplementation( "androidx.test.espresso:espresso-intents:$espressoVersion") + androidTestImplementation( "androidx.test.espresso:espresso-accessibility:$espressoVersion") + androidTestImplementation( "androidx.test.espresso:espresso-web:$espressoVersion") + androidTestImplementation( "androidx.test.espresso.idling:idling-concurrent:$espressoVersion") + + testImplementation ("org.robolectric:robolectric:4.8") + + + +//UIKIT + alias(libs.plugins.kotlin.compose) + //Добавляю это, чтобы проект мог использовать Composable + implementation ("androidx.compose.ui:ui:1.8.1") + implementation ("androidx.compose.material:material:1.8.1") + implementation ("androidx.compose.ui:ui-tooling-preview:1.8.1") + implementation(libs.androidx.activity.compose) + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(platform(libs.androidx.compose.bom)) + implementation(libs.androidx.ui) + implementation(libs.androidx.ui.graphics) + implementation(libs.androidx.ui.tooling.preview) + implementation(libs.androidx.material3) + + implementation("io.coil-kt:coil-compose:2.2.2") + implementation("io.coil-kt:coil-svg:2.2.2") + + implementation("androidx.compose.material3:material3:1.4.0-alpha14") + + +//network + + kotlin("plugin.serialization") version "2.1.0" + + + // Ktor + implementation("io.ktor:ktor-client-core:2.3.7") // Ядро Ktor + implementation("io.ktor:ktor-client-android:2.3.7") // Android-специфичный движок + implementation("io.ktor:ktor-client-content-negotiation:2.3.7") // Для JSON + implementation("io.ktor:ktor-serialization-kotlinx-json:2.3.7") // Сериализация + implementation("io.ktor:ktor-client-logging:2.3.7") + + // Kotlin + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") + + // Lifecycle + implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.2") + + // Dependency Injection + implementation("io.insert-koin:koin-android:3.4.3") + implementation("io.insert-koin:koin-androidx-compose:3.4.3") + + // DI + implementation("io.insert-koin:koin-android:3.5.0") + + // Тестирование + testImplementation("junit:junit:4.13.2") + testImplementation("io.mockk:mockk:1.13.8") + testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.3") \ No newline at end of file