feature TI-186: [Android] Настройка проекта #1

Merged
evgeny.dubravin merged 9 commits from feature/mvvm into release/mvvm 2024-04-15 21:37:54 +03:00
  • feature TI-186: [Android] Настройка проекта
* feature [TI-186](https://jira.touchin.ru/browse/TI-186): [Android] Настройка проекта
evgeny.dubravin added 4 commits 2024-03-22 16:30:37 +03:00
evgeny.dubravin added 1 commit 2024-03-22 20:15:52 +03:00
evgeny.dubravin added 1 commit 2024-03-22 20:16:53 +03:00
evgeny.dubravin force-pushed feature/mvvm from d577f449bc to df7adab2e7 2024-03-22 20:24:48 +03:00 Compare
evgeny.dubravin added 1 commit 2024-03-25 14:11:33 +03:00
bogdan.terehov reviewed 2024-04-12 04:09:21 +03:00
bogdan.terehov left a comment
Member

Молодец

Молодец
@ -5,1 +3,3 @@
id(Plugins.LICENCE_PLUGIN)
id(libs.plugins.android.application.get().pluginId)
id(libs.plugins.kotlin.android.get().pluginId)
id(libs.plugins.kotlin.kapt.get().pluginId)
Member

Много чего можно так же через alias вместо id

У меня сходу не завелся только
id(libs.plugins.google.oss.licenses.plugin.get().pluginId)

Много чего можно так же через alias вместо id У меня сходу не завелся только `id(libs.plugins.google.oss.licenses.plugin.get().pluginId)`
Author
Member

Это вообще оказалось не нужно, тк есть в BaseAndroidPlugin

Это вообще оказалось не нужно, тк есть в BaseAndroidPlugin
bogdan.terehov marked this conversation as resolved
build.gradle.kts Outdated
@ -15,0 +9,4 @@
classpath(libs.android.gradle.plugin)
classpath(libs.kotlin.gradle.plugin)
classpath(libs.google.oss.licenses.plugin) {
exclude(group = "com.google.protobuf")
Member

Напомни, зачем exclude, какие были проблемы?

Напомни, зачем exclude, какие были проблемы?
Author
Member

Видел, что у гугла в примере есть такая темка, решил, что нужная. Не очень получилось, что я не узнал для чего это нужно. Скорей всего у них была проблема дублирования. В нашем случае это не нужно.

Видел, что у гугла в примере есть такая темка, решил, что нужная. Не очень получилось, что я не узнал для чего это нужно. Скорей всего у них была проблема дублирования. В нашем случае это не нужно.
bogdan.terehov marked this conversation as resolved
@ -0,0 +34,4 @@
isShrinkResources = type.optimizeAndObfuscate
setMatchingFallbacks(type.matchingFallbacks)
// if (listOf(BuildType.Develop, BuildType.Debug).contains(type)) {
Member

Закомментированный код обычно плохо

В таких случаях либо удаляем код (через историю гита его всегда можно достать), либо оставляем.

В твоем случе он точно нужен, это классная фича, из-за которой ты можешь одновременно на устройстве иметь дебаг и проде прилы, ибо их пакеты не конфликтуют

Закомментированный код обычно плохо В таких случаях либо удаляем код (через историю гита его всегда можно достать), либо оставляем. В твоем случе он точно нужен, это классная фича, из-за которой ты можешь одновременно на устройстве иметь дебаг и проде прилы, ибо их пакеты не конфликтуют
bogdan.terehov marked this conversation as resolved
@ -0,0 +70,4 @@
buildConfigField("String", "VERSION_NAME", "\"${versionCatalog.versionName}\"")
if (enableConfig) {
val server = serverType ?: type.serverType
// buildConfigField("ru.template.data.network.ServerUrl", "DEFAULT_SERVER", type.defaultServer)
Member

напомни, что тут предполагалось
Типа BaseUrl для прилы, но при этом у каждого билд тайпа он свой?

Вещь хорошая, давай оставим

напомни, что тут предполагалось Типа BaseUrl для прилы, но при этом у каждого билд тайпа он свой? Вещь хорошая, давай оставим
Author
Member

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

Да, но чтобы работало, нужно создать класс ServerUrl. Я не стал его создавать, поэтому закомментил
bogdan.terehov marked this conversation as resolved
@ -0,0 +1,19 @@
import org.gradle.api.artifacts.VersionCatalog
val VersionCatalog.sdkCompile: String
Member

Объясни смысл этого файла, думаю, что ты решал этим какую-то проблему, но интуитивно не очень нравится сам кейс нейминга sdkCompile/compileSdk и т.п.

Кажется, что можно лучше

Объясни смысл этого файла, думаю, что ты решал этим какую-то проблему, но интуитивно не очень нравится сам кейс нейминга sdkCompile/compileSdk и т.п. Кажется, что можно лучше
Member

Да, я попробывал, не нужно инвертировать нейминг всё работает

Т.е.

val VersionCatalog.sdkMin: String
    get() = findVersion("minSdk").get().requiredVersion

->

val VersionCatalog.minSdk: String
    get() = findVersion("minSdk").get().requiredVersion
Да, я попробывал, не нужно инвертировать нейминг всё работает Т.е. ```kt val VersionCatalog.sdkMin: String get() = findVersion("minSdk").get().requiredVersion ``` -> ```kt val VersionCatalog.minSdk: String get() = findVersion("minSdk").get().requiredVersion ```
bogdan.terehov marked this conversation as resolved
bogdan.terehov reviewed 2024-04-12 04:15:29 +03:00
@ -39,0 +41,4 @@
minSdk = libs.sdkMin.toInt()
targetSdk = libs.sdkTarget.toInt()
versionCode = libs.versionCode.toInt()
versionName = libs.versionName
Member

а, понял проблему, у тебя не было доступа сюда

а, понял проблему, у тебя не было доступа сюда
bogdan.terehov marked this conversation as resolved
bogdan.terehov reviewed 2024-04-12 04:34:57 +03:00
@ -24,4 +32,3 @@
private fun Project.configurePlugins() {
plugins.apply(Plugins.KOTLIN_ANDROID)
plugins.apply(Plugins.KOTLIN_ANDROID_EXTENSIONS)
plugins.apply(Plugins.KOTLIN_KAPT)
Member

Давай, удалим класс Plugins, а всё что внутри перенесем в VC (вижу что там это уже есть)

Данные из Plugins перенесем в файл подобный фпйлу VersionCatalogVersions (назовем его VersionCatalogPlugins )

Пример ниже завелся

val VersionCatalog.androidApplication: String
    get() = findPlugin("android-application").get().orNull?.pluginId.orEmpty()

И в AndroidAppPlugin/AndroidLibPlugin будет так

  override fun apply(target: Project) {
        target.plugins.apply(target.libs.androidApplication)
        super.apply(target)
    }
Давай, удалим класс Plugins, а всё что внутри перенесем в VC (вижу что там это уже есть) Данные из Plugins перенесем в файл подобный фпйлу VersionCatalogVersions (назовем его VersionCatalogPlugins ) Пример ниже завелся ```kt val VersionCatalog.androidApplication: String get() = findPlugin("android-application").get().orNull?.pluginId.orEmpty() ``` И в AndroidAppPlugin/AndroidLibPlugin будет так ```kt override fun apply(target: Project) { target.plugins.apply(target.libs.androidApplication) super.apply(target) } ```
bogdan.terehov marked this conversation as resolved
bogdan.terehov reviewed 2024-04-12 04:35:28 +03:00
@ -0,0 +1,6 @@
import org.gradle.api.artifacts.MinimalExternalModuleDependency
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.provider.Provider
Member

Лишний импорт

Лишний импорт
bogdan.terehov marked this conversation as resolved
bogdan.terehov reviewed 2024-04-12 04:52:28 +03:00
bogdan.terehov left a comment
Member

image

Не туда льешь

![image](/attachments/9974ee67-b7dc-4881-8f14-43b61598d0d6) Не туда льешь
bogdan.terehov reviewed 2024-04-12 05:00:44 +03:00
@ -10,0 +6,4 @@
url = https://git.svc.touchin.ru/TouchInstinct/BuildScripts.git
[submodule "common-template"]
path = common-template
url = https://git.svc.touchin.ru/TouchInstinct/common-template.git
Member

G:\TouchIn\android-project-template\common-template не закомитил

оттого не происходит билд

он есть в ветке TI-193
зайди в нее, сдела сабмодуль адейт, вернись в эту ветку и закомить его

И добавь strings в гитигнор
app/src/main/res/*/*strings.xml

Есть в мире G:\TouchIn\Mir-android.gitignore

G:\TouchIn\android-project-template\common-template не закомитил оттого не происходит билд он есть в ветке TI-193 зайди в нее, сдела сабмодуль адейт, вернись в эту ветку и закомить его И добавь strings в гитигнор `app/src/main/res/*/*strings.xml` Есть в мире G:\TouchIn\Mir-android\.gitignore
Author
Member

strings в гитигнор уже был

strings в гитигнор уже был
bogdan.terehov marked this conversation as resolved
bogdan.terehov reviewed 2024-04-12 05:12:55 +03:00
@ -11,3 +11,3 @@
"mobilesdk_app_id": "1:1084813714260:android:b6d7bb18a0acfe96255ec1",
"android_client_info": {
"package_name": "com.touchin.template"
"package_name": "ru.touchin.template"
Member

из-за смены пакета будет падать ФБ
Думаю, лучше будет удалить этот файл, т.к. аналитика для темплейта странная вещь

из-за смены пакета будет падать ФБ Думаю, лучше будет удалить этот файл, т.к. аналитика для темплейта странная вещь
bogdan.terehov marked this conversation as resolved
evgeny.dubravin changed target branch from master to release/mvvm 2024-04-12 13:23:22 +03:00
evgeny.dubravin added 1 commit 2024-04-12 15:39:05 +03:00
evgeny.dubravin reviewed 2024-04-12 15:42:05 +03:00
@ -0,0 +168,4 @@
firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerf" }
android-app = { id = "android_app" }
android-lib = { id = "android_lib" }
Author
Member

Оставлять?

Оставлять?
Member

если нигде не используется -- удаляй

если нигде не используется -- удаляй
evgeny.dubravin force-pushed feature/mvvm from 566ea7ad30 to 640e362c74 2024-04-15 20:55:14 +03:00 Compare
evgeny.dubravin force-pushed feature/mvvm from 640e362c74 to d928433590 2024-04-15 21:05:16 +03:00 Compare
bogdan.terehov added 1 commit 2024-04-15 21:22:37 +03:00
evgeny.dubravin merged commit fabb8564c5 into release/mvvm 2024-04-15 21:37:54 +03:00
evgeny.dubravin deleted branch feature/mvvm 2024-04-15 21:37:55 +03:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: TouchInstinct/android-project-template#1
No description provided.