Skip to content

Commit 6d58125

Browse files
authored
Merge pull request #156 from maiow/patch-1
fixes on Kotlinx-serialization, part3 practice & gradle
2 parents e932662 + 8483e93 commit 6d58125

File tree

5 files changed

+29
-20
lines changed

5 files changed

+29
-20
lines changed

learning/gradle/intro-gradle.md

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Kotlin, а изучение билд системы Gradle, которая со
1111
## Gradle
1212

1313
[Gradle](https://gradle.org/) это система сборки, имеющая гибкую систему конфигурации через плагины
14-
и позволяющая описывать конфигурацию сборки в виде groovy / kotlin файлов.
14+
и позволяющая описывать конфигурацию сборки в виде kotlin файлов.
1515

1616
Задача Gradle, как и любой системы сборки, скомпилировать исходный код в исполняемое приложение,
1717
либо подключаемую библиотеку. Благодаря ему разработчику не требуется писать команды вызова
@@ -41,23 +41,21 @@ Gradle имеет обширную, подробную документацию,
4141
## Контекст для понимания дальнейших разделов
4242

4343
1. Gradle при каждом запуске проходит по нескольким фазам - инициализация, конфигурация, выполнение.
44-
2. Файлы gradle могут быть написаны как на groovy (тогда расширение просто `.gradle`, так и на
45-
Kotlin Script `.gradle.kts`). При использовании Kotlin Script IDE предоставляет полноценный
46-
анализ с подсказками, поэтому мы используем только Kotlin Script вариант.
44+
2. Файлы gradle во всех новых проектах написаны на Kotlin Script, расширение файла `.gradle.kts`. При использовании Kotlin Script IDE предоставляет полноценный анализ с подсказками. На старых проектах могут встретиться файлы gradle на groovy (тогда расширение просто `.gradle`).
4745

4846
## Составляющие конфигурации проекта
4947

5048
Проект, использующий Gradle в качестве системы сборки, содержит:
5149

52-
1. `settings.gradle` / `settings.gradle.kts` - настройки проекта, например подключение модулей
50+
1. `settings.gradle.kts` - настройки проекта, например подключение модулей
5351
проекта;
54-
2. `build.gradle` / `build.gradle.kts` - конфигурация конкретного gradle модуля;
52+
2. `build.gradle.kts` - конфигурация конкретного gradle модуля;
5553
3. `gradle.properties` - файл содержащий набор ключ+значение передаваемыми в gradle.
5654

5755
### settings.gradle
5856

5957
Файл с настройками всего проекта (данные настройки влияют на все модули).
60-
Может быть написан на groovy (тогда имя `settings.gradle`) либо на kotlin - `settings.gradle.kts`.
58+
Во всех новых проектах на kotlin - `settings.gradle.kts`, в старых может быть написан на groovy (тогда имя `settings.gradle`).
6159
Подробная информация
6260
в [документации](https://docs.gradle.org/current/userguide/build_lifecycle.html#sec:settings_file)
6361
.
@@ -100,15 +98,15 @@ include(":sample:mpp-library")
10098
_Является упрощенным вариантом
10199
с [moko-network](https://github.com/icerockdev/moko-network/blob/master/settings.gradle.kts)_.
102100

103-
(!) Основной сценарий когда iOS разработчику нужно работать с файлом `settings.gradle` - разработчик
101+
(!) Основной сценарий когда iOS разработчику нужно работать с файлом `settings.gradle.kts` - разработчик
104102
сам создает новый gradle модуль и нужно подключить его к билдсистеме. То есть
105103
добавляет `include(":mymodule")`.
106104

107105
### build.gradle
108106

109107
Файл с конфигурацией модуля gradle проекта. Определяет всю логику сборки данного модуля (что
110108
собираем, как собираем).
111-
Может быть написан на groovy (тогда имя `build.gradle`) либо на kotlin - `build.gradle.kts`.
109+
В новых проектах на kotlin - `build.gradle.kts`, в старых может быть написан на groovy (тогда имя `build.gradle`).
112110
Подробная информация
113111
в [документации](https://docs.gradle.org/current/userguide/tutorial_using_tasks.html).
114112

onboarding/gradle.md

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@ sidebar_position: 4
88
Для iOS разработчиков данная система сборки в принципе в новинку, а для Android разработчиков будет много нового,
99
что не используется в обычных android проектах (как минимум Kotlin Multiplatform gradle plugin). А также на наших проектах используются современные возможности Gradle, такие как [Composite Build](../learning/gradle/composite-build) и [Version Catalog](../learning/gradle/version-catalogs).
1010

11-
Поэтому, для осознанной работы с Gradle на проектах, ознакомься с материалами в нашей базе знаний - весь блок Gradle:
11+
Поэтому, для осознанной работы с Gradle на проектах, ознакомься с материалами в нашей базе знаний. После ознакомления закрепи полученные знания на [практической задаче](../learning/gradle/check-yourself)
12+
13+
### Нужно изучить сейчас
1214
- [Введение в Gradle](../learning/gradle/intro-gradle)
1315
- [Gradle с нуля](../learning/gradle/from-scratch)
1416
- [Build Environment](../learning/gradle/build-environment)
1517
- [Gradle Wrapper](../learning/gradle/gradle-wrapper)
16-
- [Dependency configurations](../learning/gradle/configuration)
1718
- [Обновление версий](../learning/gradle/updating-versions)
18-
- [Composite builds](../learning/gradle/composite-build)
19-
- [Convention plugins](../learning/gradle/convention-plugins)
2019
- [Version catalogs](../learning/gradle/version-catalogs)
20+
- [Convention plugins](../learning/gradle/convention-plugins)
2121

22-
И закрепи полученные знания на [практической задаче](../learning/gradle/check-yourself)
22+
### Материал со Звездочкой
23+
- [Dependency configurations](../learning/gradle/configuration) - очень хорошо бы понять, но если сходу не получается, вернись к нему позже.
24+
25+
### Может потребоваться в будущем
26+
- [Composite builds](../learning/gradle/composite-build)
27+
- [BuildSrc](../learning/gradle/buildSrc) - давно не используем, но может встретиться на старых проектах.

university/1-android-basics/gradle.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,22 @@ sidebar_position: 3
88

99
Следующее видео расскажет о том что такое система сборки, зачем она нужна и что предоставляет Gradle (местами есть уход в излишнее на данный момент детали, поэтому не страшно если что-то из видео будет не совсем понятно сразу).
1010

11-
<iframe src="//www.youtube.com/embed/WOBok2u-SL8" frameborder="0" allowfullscreen width="675" height="380"></iframe>
11+
<iframe src="//www.youtube.com/embed/23BJW4w0gkY?list=PL6yFiPOVXVUi90sQ66dtmuXP-1-TeHwl5" frameborder="0" allowfullscreen width="675" height="380"></iframe>
1212
<br/>
1313
<br/>
1414

15-
## Gradle и Kotlin DSL
15+
## Может потребоваться в будущем
16+
### Gradle и Kotlin DSL
1617

17-
В следующем видео можно увидеть как происходит перевод groovy скриптов на kotlin для большей помощи IDE в написании билд скриптов.
18+
В настоящее время проекты создаются сразу с Kotlin, но на старых проектах можно встретиться с groovy скриптами. В следующем видео можно увидеть, как происходит перевод groovy скриптов на kotlin для большей помощи IDE в написании билд скриптов.
1819

1920
<iframe src="//www.youtube.com/embed/bhUy6JrSSr8" frameborder="0" allowfullscreen width="675" height="380"></iframe>
2021
<br/>
2122
<br/>
2223

2324
При возникновении сложностей на практике - пользуйтесь [документацией Gradle о поддержке Kotlin DSL](https://docs.gradle.org/current/userguide/kotlin_dsl.html).
2425

25-
## Gradle детальнее
26+
### Gradle детальнее
2627

2728
<iframe src="//www.youtube.com/embed/Yft6h7JkWo0" frameborder="0" allowfullscreen width="675" height="380"></iframe>
2829
<br/>

university/3-kotlin-multiplatform-mobile/kotlinx-serialization.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ Kotlin Serialization - это библиотека, предназначенна
1414

1515
После изучения, для закрепления материала, советуем пройти [кодлабу](https://www.raywenderlich.com/26883403-android-data-serialization-tutorial-with-the-kotlin-serialization-library).
1616
Вы узнаете о возможностях библиотеки и потренируетесь на практике.
17+
Как довести starter project кодлабы до рабочего состояния:
18+
1. В Gradle build поднять Java, jvm -> 17, в Gradle wrapper версию -> 7.2
19+
2. Сделать Upgrade AGP, рекомендуемый Android Studio (7.0.2-> 7.5)
20+
3. Поднять Compile SDK -> 31
21+
4. В Манифесте внести исправления: 1) android:exported="true" под tag <activity, 2) package="com.raywenderlich.android.borednomore" под tag <manifest следующей строкой под xmlns:tools=…
1722

1823
## Вопросы для самопроверки
1924
- Для чего нужны аннотации `@Serializable`, `@Transient`, `@Required`, `@SerialName`?

university/3-kotlin-multiplatform-mobile/practice.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ sidebar_position: 6
2525
1. Использовать multiplatform-settings для работы с хранилищем устройства
2626
1. Логика хранения данных должна находиться в common коде
2727
1. Логика работы с сетью должна находиться в common коде
28-
1. Для работы с сетью использовать Ktor Client 1.6.8
28+
1. Для работы с сетью использовать Ktor Client
2929
1. При перезапуске приложения авторизация должна сохраняться
3030
1. Использовать локализацию для всех строк, показываемых пользователю
3131
1. Использовать векторную графику везде, где это возможно
@@ -220,4 +220,4 @@ class AuthViewController: UIViewController {
220220
1. [Настройке запросов в Ktor Client](https://ktor.io/docs/old/request.html)
221221
1. [multiplatform-settings](https://github.com/russhwolf/multiplatform-settings)
222222
1. [Android Дизайн](https://www.figma.com/file/Mh3ga5XAzyJNCY87NBp01G/Git_test)
223-
1. [iOS Дизайн](https://www.figma.com/file/XmpoCqkdWTGb2NGdR2bgiQ/Git_test-iOS)
223+
1. [iOS Дизайн](https://www.figma.com/file/XmpoCqkdWTGb2NGdR2bgiQ/Git_test-iOS)

0 commit comments

Comments
 (0)