diff --git a/learning/gradle/intro-gradle.md b/learning/gradle/intro-gradle.md index 3ced997c4..71b7f2e46 100644 --- a/learning/gradle/intro-gradle.md +++ b/learning/gradle/intro-gradle.md @@ -11,7 +11,7 @@ Kotlin, а изучение билд системы Gradle, которая со ## Gradle [Gradle](https://gradle.org/) это система сборки, имеющая гибкую систему конфигурации через плагины -и позволяющая описывать конфигурацию сборки в виде groovy / kotlin файлов. +и позволяющая описывать конфигурацию сборки в виде kotlin файлов. Задача Gradle, как и любой системы сборки, скомпилировать исходный код в исполняемое приложение, либо подключаемую библиотеку. Благодаря ему разработчику не требуется писать команды вызова @@ -41,23 +41,21 @@ Gradle имеет обширную, подробную документацию, ## Контекст для понимания дальнейших разделов 1. Gradle при каждом запуске проходит по нескольким фазам - инициализация, конфигурация, выполнение. -2. Файлы gradle могут быть написаны как на groovy (тогда расширение просто `.gradle`, так и на - Kotlin Script `.gradle.kts`). При использовании Kotlin Script IDE предоставляет полноценный - анализ с подсказками, поэтому мы используем только Kotlin Script вариант. +2. Файлы gradle во всех новых проектах написаны на Kotlin Script, расширение файла `.gradle.kts`. При использовании Kotlin Script IDE предоставляет полноценный анализ с подсказками. На старых проектах могут встретиться файлы gradle на groovy (тогда расширение просто `.gradle`). ## Составляющие конфигурации проекта Проект, использующий Gradle в качестве системы сборки, содержит: -1. `settings.gradle` / `settings.gradle.kts` - настройки проекта, например подключение модулей +1. `settings.gradle.kts` - настройки проекта, например подключение модулей проекта; -2. `build.gradle` / `build.gradle.kts` - конфигурация конкретного gradle модуля; +2. `build.gradle.kts` - конфигурация конкретного gradle модуля; 3. `gradle.properties` - файл содержащий набор ключ+значение передаваемыми в gradle. ### settings.gradle Файл с настройками всего проекта (данные настройки влияют на все модули). -Может быть написан на groovy (тогда имя `settings.gradle`) либо на kotlin - `settings.gradle.kts`. +Во всех новых проектах на kotlin - `settings.gradle.kts`, в старых может быть написан на groovy (тогда имя `settings.gradle`). Подробная информация в [документации](https://docs.gradle.org/current/userguide/build_lifecycle.html#sec:settings_file) . @@ -100,7 +98,7 @@ include(":sample:mpp-library") _Является упрощенным вариантом с [moko-network](https://github.com/icerockdev/moko-network/blob/master/settings.gradle.kts)_. -(!) Основной сценарий когда iOS разработчику нужно работать с файлом `settings.gradle` - разработчик +(!) Основной сценарий когда iOS разработчику нужно работать с файлом `settings.gradle.kts` - разработчик сам создает новый gradle модуль и нужно подключить его к билдсистеме. То есть добавляет `include(":mymodule")`. @@ -108,7 +106,7 @@ _Является упрощенным вариантом Файл с конфигурацией модуля gradle проекта. Определяет всю логику сборки данного модуля (что собираем, как собираем). -Может быть написан на groovy (тогда имя `build.gradle`) либо на kotlin - `build.gradle.kts`. +В новых проектах на kotlin - `build.gradle.kts`, в старых может быть написан на groovy (тогда имя `build.gradle`). Подробная информация в [документации](https://docs.gradle.org/current/userguide/tutorial_using_tasks.html). diff --git a/onboarding/gradle.md b/onboarding/gradle.md index aad7a46c0..fef92b141 100644 --- a/onboarding/gradle.md +++ b/onboarding/gradle.md @@ -8,15 +8,20 @@ sidebar_position: 4 Для iOS разработчиков данная система сборки в принципе в новинку, а для Android разработчиков будет много нового, что не используется в обычных android проектах (как минимум Kotlin Multiplatform gradle plugin). А также на наших проектах используются современные возможности Gradle, такие как [Composite Build](../learning/gradle/composite-build) и [Version Catalog](../learning/gradle/version-catalogs). -Поэтому, для осознанной работы с Gradle на проектах, ознакомься с материалами в нашей базе знаний - весь блок Gradle: +Поэтому, для осознанной работы с Gradle на проектах, ознакомься с материалами в нашей базе знаний. После ознакомления закрепи полученные знания на [практической задаче](../learning/gradle/check-yourself) + +### Нужно изучить сейчас - [Введение в Gradle](../learning/gradle/intro-gradle) - [Gradle с нуля](../learning/gradle/from-scratch) - [Build Environment](../learning/gradle/build-environment) - [Gradle Wrapper](../learning/gradle/gradle-wrapper) -- [Dependency configurations](../learning/gradle/configuration) - [Обновление версий](../learning/gradle/updating-versions) -- [Composite builds](../learning/gradle/composite-build) -- [Convention plugins](../learning/gradle/convention-plugins) - [Version catalogs](../learning/gradle/version-catalogs) +- [Convention plugins](../learning/gradle/convention-plugins) -И закрепи полученные знания на [практической задаче](../learning/gradle/check-yourself) +### Материал со Звездочкой +- [Dependency configurations](../learning/gradle/configuration) - очень хорошо бы понять, но если сходу не получается, вернись к нему позже. + +### Может потребоваться в будущем +- [Composite builds](../learning/gradle/composite-build) +- [BuildSrc](../learning/gradle/buildSrc) - давно не используем, но может встретиться на старых проектах. diff --git a/university/1-android-basics/gradle.md b/university/1-android-basics/gradle.md index 71002e09a..b0610cd1e 100644 --- a/university/1-android-basics/gradle.md +++ b/university/1-android-basics/gradle.md @@ -8,13 +8,14 @@ sidebar_position: 3 Следующее видео расскажет о том что такое система сборки, зачем она нужна и что предоставляет Gradle (местами есть уход в излишнее на данный момент детали, поэтому не страшно если что-то из видео будет не совсем понятно сразу). - +

-## Gradle и Kotlin DSL +## Может потребоваться в будущем +### Gradle и Kotlin DSL -В следующем видео можно увидеть как происходит перевод groovy скриптов на kotlin для большей помощи IDE в написании билд скриптов. +В настоящее время проекты создаются сразу с Kotlin, но на старых проектах можно встретиться с groovy скриптами. В следующем видео можно увидеть, как происходит перевод groovy скриптов на kotlin для большей помощи IDE в написании билд скриптов.
@@ -22,7 +23,7 @@ sidebar_position: 3 При возникновении сложностей на практике - пользуйтесь [документацией Gradle о поддержке Kotlin DSL](https://docs.gradle.org/current/userguide/kotlin_dsl.html). -## Gradle детальнее +### Gradle детальнее
diff --git a/university/3-kotlin-multiplatform-mobile/kotlinx-serialization.md b/university/3-kotlin-multiplatform-mobile/kotlinx-serialization.md index 44d26ecf4..97ef1d327 100644 --- a/university/3-kotlin-multiplatform-mobile/kotlinx-serialization.md +++ b/university/3-kotlin-multiplatform-mobile/kotlinx-serialization.md @@ -14,6 +14,11 @@ Kotlin Serialization - это библиотека, предназначенна После изучения, для закрепления материала, советуем пройти [кодлабу](https://www.raywenderlich.com/26883403-android-data-serialization-tutorial-with-the-kotlin-serialization-library). Вы узнаете о возможностях библиотеки и потренируетесь на практике. +Как довести starter project кодлабы до рабочего состояния: +1. В Gradle build поднять Java, jvm -> 17, в Gradle wrapper версию -> 7.2 +2. Сделать Upgrade AGP, рекомендуемый Android Studio (7.0.2-> 7.5) +3. Поднять Compile SDK -> 31 +4. В Манифесте внести исправления: 1) android:exported="true" под tag