Проверь себя
Практические задачи
Результатом выполнения следующих задач должен быть репозиторий на https://github.com / https://gitlab.icerockdev.com с 4 ветками (каждое задание в своей ветке).
Полное выполнение задач можно посмотреть в видео Gradle с нуля. Более детальная информация в конкретных страницах раздела Gradle (смотрите по названиям).
Задача N1
- Сделать с нуля gradle проект (можно использовать gradle init или копирование gradle wrapper файлов)
- В нем сделать следующие подпроекты:
- android-app
- mpp-library
- feature-auth
- feature-profile
- Сделать android-app проектом android application’а.
- Сделать mpp-library и его подпроекты - multiplatform library, с android, iosX64, iosArm64 и настроенным iosMain
- Подключить feature-auth, feature-profile к mpp-library, а mpp-library к android-app
- Добавить AuthViewModel и ProfileViewModel (с использованием moko-mvvm) в соответствующие фичи
- Сделать в mpp-library фабрику для создания этих вьюмоделей
- Вызвать из android-app создание вьюмоделей
- Сделать компиляцию mpp-library в ios framework
- Сделать ios-app xcode проект
- Настроить интеграцию ios-app с mpp-library через cocoapods
- Вызвать в ios-app создание вьюмоделей
- Сделать gradle task которая выводит все sourceSet’ы проекта (задача должна быть доступна во всех подпроектах)
- Сделать sh скрипт для максимально быстрой проверки компилируемости обоих приложений и мультиплатформы
- Сделать sh скрипт для максимально быстрой проверки компилируемости андроид приложения
- Сделать sh скрипт для максимально быстрой проверки компилируемости ios приложения
Задача N2
- Взять проект-результат задачи N1
- Вынести зависимости (моко мввм и другие подключенные, если есть) в Deps объект внутри buildSrc
- Тамже завести Modules объект с указанием путей до всех модулей
- Подключить новые константы вместо хардкод-строк и убедиться что все работает
Задача N3
- Взять проект-результат задачи N1
- Выделить повторяющуюся между подпроектами логику в convention плагины внутри composite build’а (не buildSrc)
- Подключить convention плагины и убедиться что все работает
Задача N4
- Взять проект-результат задачи N1
- Вынести зависимости в version catalog, а подпроекты связать через projects accessors
- Подключить вместо хардкод строк новые константы и убедиться что все работает
Тестирование
Coming soon