Skip to content

Student-Labs-2024/vodimobile-kmp-app

Repository files navigation

Логотип компании "Водимобиль"

Язык программирования Kotlin Язык программирования Swift Инструмент Gradle Android Studio Git iOS Android

Суть проекта 💫

Автоматизировать процесс аренды автомобилей в Омске путём создания Android и IOS приложений. Приложения интегрированы с CRM «WS автопрокат», которую использует «Водимобиль».

Содержание 📖

Как начать 🐣

Для начала стоит склонировать репозиторий себе на компьютер путём выполнения команды Git Hub.

Git hub

Если у вас нет Git Hub на устройстве, то установите его по ссылке.

Как склонировать проект

Путём почти одновременного начатия клавишь Win + R (на ОС Windows) откроется окно, в котором нужно вписать cmd. В открывшемся окошке перейдите в ту директорию на вашем устройстве, куда хотите склонировать репозирторий с проектом, для этого используйте cd Путь к папке. После наберите команду git clone https://github.com/Student-Labs-2024/vodimobile-kmp-app.git. Дождитесь выполнения команды. После чего у вас по указанному пути появится папка с проектом.

Где работать 🤖

Для работы вам понадобится Android Studio. Её можно скачать на официальном сайте. После загрузки откройте склонированный с Git Hub проект. Дождитесь загрузки проекта.

Начальные действия ❗

Перед началом работы с проектом (сборке его исполняемых файлов или внесение изменений в код) добавьте в local.properties сделующие строчки:

crm.server =
crm.port =
crm.login =
crm.password.hash =
crm.test.access.token = 
crm.test.refresh.token = 

После знака равно запишите значения сервера и порта «Водимобиль» без пробелов.

Сборка 🛠️

Откройте терминал внутри Android Studio. Если Вы не можете найти терминала нет, то воспользуйтесь такой последовательностью для навигации внутри Android Studio к терминалу View > Tool Windows > Terminal. Вы можете собрать исполняемые файлы для ОС Android или IOS.

Собрать для ОС Android

Для того, чтобы собрать исполняемый файл для ОС Android (APK) впишите в терминале следующую команду ./gradlew assembleDebug. Дождитель выполнения. При успешном выполнении, Вы увидите надпись "Build Successfull". Далее Вы сможете найти APK в корне проекта по следующему пути app/build/outputs/apk/app-debug.apk.

Собрать для IOS

Для того, чтобы собрать исполняемый файл для IOS нужно заархивировать директорию с кодом и отправить в TestFlight.

Структура проекта 📋

Проект сделан с использованием технологии KMP - Kotlin Multiplatform. В архитектуре используется три модуля AndroidApp, IosApp, Shared.

  • AndroidApp - модуль, содержащий приложение для ОС Android.
  • IosApp - модуль, содержащий приложение для IOS.
  • Shared - общий модуль, используемый обоями платформами.

Изображение, описывающее архитектуру проекта

KMP flow

Технологический стек

Android 👽

  • Jetpack Compose
  • Clean architecture
  • Минимальная поддерживаемая версия Android SDK 21, целевая - 34
  • Паттерн MVI
  • Koin
  • Slack lint

IOS 🍏

  • SwiftUI
  • Паттерн MVVM
  • Clean architecture
  • Минимальная поддерживаемая версия IOS 16, максимальная - текущая.
  • SwiftLint

Shared 🔮

Git flow 📀

Коммиты Все коммиты назваются на английском языке. Описание для коммата также пишется на английском языке. Пример формления коммита представлен ниже. Структура коммита должна быть следующая:
[optional scope]:
[optional body]
[optional footer(s)]

Пример:
feat: Create auto cards into main screen

[+] Create auto card list into main screen
[+] Adding auto card component and use it
[+] Adding custom resources into project
[+] Adding view model and model for popular auto list
[-] ...
[~] ...

Обозначения списка изменения в описании коммита:
- [+] - добавление новой фичи (функционала);
- [-] - удаление функционала;
- [~] - исправвление функционала.

Почитать про Git flow можно здесь.

Ветки
Ветки называем по следующему шаблону platform/action/name.
platfotm - android-app, ios-app, kmp-module, git-flow;
action - hot-fix или feature и т.п. (иногда, может не быть);
name - название вашей фичи, например “profile-screen”.

Все ветки для разработки создаются от develop.

Пул реквесты
Описание для пул реквеста и его название оформляется на английском языке. Присваиваете пул реквесту себя, в качестве разработчика, ставите ревьювера, присваиваете таг (label). Разговор в пул рекветсе можно вести на русском языке.
Ниже представлен шаблон и пример

Заголовок пул реквеста: Основная фича

Changes:

  1. change1:

    • definition1
    • definition2
  2. change1:

    • definition1

Пример:

Changes:

  1. New UI view:

    • Created the detail modal view with auto data
    • Added the modal auto view into main screen auto list
  2. Custom resources for UI:

    • New custom images and localizable strings

Темы
Название темы и её описание пишется на русском языке.

Релиз
После завершения определённого этапа разработки, все изменения переходят в master ветку. После чего следует создать релиз в Git Hub.

Диаграмма C4 📊

System context

System context

Containers context

Containers context

Components context KMP

Components context KMP

Components context IOS

Components context IOS

Components context Android

Components context Android

About

Мультиплатформенное приложение для аренды авто в Омске.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •