Skip to main content

Шаблон для новых проектов

Все наши проекты имеют одинаковую структуру, во всех есть:

  • mpp-library - модуль с общим для Android и iOS кодом
    • набор feature модулей с common кодом, которые подключаются к mpp-library
  • android-app - Android-приложение
  • ios-app - iOS-приложение

Помимо общей структуры, все наши проекты имеют:

  • настройки на несколько окружений - dev, stage, prod (разные сервера, разные конфиги)
  • одинаково настроенную gradle конфигурацию с использованием наших gradle плагинов
  • автоматически проверки на GitLab CI при каждом merge request

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

Изучите статью об устройстве нашего шаблонного проекта mobile-moko-boilerplate.

CI/CD

Каждый новый merge request в репозитории автоматически проверяется с помощью инструмента CI/CD. Для проверки изменений создается временно состояние с влитыми изменениями и потом выполняются задачи, прописанные в файле .gitlab-ci.yml. Вот как выглядит этот файл в mobile-moko-boilerplate.

При проверке merge request будет проведена проверка статическим анализатором - detekt. После этого будет выполнена компиляция kotlin multiplatform кода, с запуском тестов (если они есть то запустятся). Потом проверяется компиляция и тесты android, а потом компиляция и тесты ios приложения.

Помимо автоматических проверок в шаблоне сразу настроена логика автоматической публикации сборок в Firebase AppDistribution.

Запускается публикация путем создания тега в git, следующего формата: build/<platform>/<env>/<build number>.

Например:

  • build/android/dev/1
  • build/ios/stage/2

Вся логика публикации и теги, на которые будет реагировать CI, прописаны в .gitlab-ci.yml.

Fast check

В шаблонном проекте присутствует скрипт fastcheck.sh. Он позволяет локально выполнить те же проверки, которые делает CI на merge request. Поэтому чтобы не ждать пока CI скажет что у вас есть ошибки - лучше запустить его у себя.

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

tip

проверяйте свои изменения в коде вызывая скрипт ./fastcheck.sh.

Новый проект

Как создать и настроить новый проект на основе шаблона mobile-moko-boilerplate вы можете узнать из гайда, он доступен для всех сотрудников IceRock Development.

Практическое задание

  1. Выполните первые два пункта из CodeLab IceRock KMM onboarding #1, чтобы правильно настроить рабочее окружение
  2. Создайте и настройте новый проект на основе шаблона mobile-moko-boilerplate, этот проект вы будете дорабатывать на протяжении всего курса
  3. Убедитесь, что проект успешно проходит проверки CI
  4. Выполните пункты из CodeLab IceRock KMM onboarding #1, начиная с четвертого, но уже в проекте, созданном на прошлом шаге