Skip to main content

Проверь себя

Практические задачи#

Результатом выполнения следующих задач должен быть репозиторий на https://github.com / https://gitlab.icerockdev.com с 4 ветками (каждое задание в своей ветке).

Полное выполнение задач можно посмотреть в видео Gradle с нуля. Более детальная информация в конкретных страницах раздела Gradle (смотрите по названиям).

Задача N1#

  1. Сделать с нуля gradle проект (можно использовать gradle init или копирование gradle wrapper файлов)
  2. В нем сделать следующие подпроекты:
    1. android-app
    2. mpp-library
      1. feature-auth
      2. feature-profile
  3. Сделать android-app проектом android application’а.
  4. Сделать mpp-library и его подпроекты - multiplatform library, с android, iosX64, iosArm64 и настроенным iosMain
  5. Подключить feature-auth, feature-profile к mpp-library, а mpp-library к android-app
  6. Добавить AuthViewModel и ProfileViewModel (с использованием moko-mvvm) в соответствующие фичи
  7. Сделать в mpp-library фабрику для создания этих вьюмоделей
  8. Вызвать из android-app создание вьюмоделей
  9. Сделать компиляцию mpp-library в ios framework
  10. Сделать ios-app xcode проект
  11. Настроить интеграцию ios-app с mpp-library через cocoapods
  12. Вызвать в ios-app создание вьюмоделей
  13. Сделать gradle task которая выводит все sourceSet’ы проекта (задача должна быть доступна во всех подпроектах)
  14. Сделать sh скрипт для максимально быстрой проверки компилируемости обоих приложений и мультиплатформы
  15. Сделать sh скрипт для максимально быстрой проверки компилируемости андроид приложения
  16. Сделать sh скрипт для максимально быстрой проверки компилируемости ios приложения

Задача N2#

  1. Взять проект-результат задачи N1
  2. Вынести зависимости (моко мввм и другие подключенные, если есть) в Deps объект внутри buildSrc
  3. Тамже завести Modules объект с указанием путей до всех модулей
  4. Подключить новые константы вместо хардкод-строк и убедиться что все работает

Задача N3#

  1. Взять проект-результат задачи N1
  2. Выделить повторяющуюся между подпроектами логику в convention плагины внутри composite build’а (не buildSrc)
  3. Подключить convention плагины и убедиться что все работает

Задача N4#

  1. Взять проект-результат задачи N1
  2. Вынести зависимости в version catalog, а подпроекты связать через projects accessors
  3. Подключить вместо хардкод строк новые константы и убедиться что все работает

Тестирование#

Coming soon