Автоматизировать процесс аренды автомобилей в Омске путём создания Android и IOS приложений. Приложения интегрированы с CRM «WS автопрокат», которую использует «Водимобиль».
- Как начать
- Где работать
- Начальные действия
- Сборка
- Структура проекта
- Технологический стек
- Git flow
- Диаграмма C4
Если у вас нет 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 (APK) впишите в терминале следующую команду./gradlew assembleDebug
. Дождитель выполнения. При успешном выполнении, Вы увидите надпись "Build Successfull". Далее Вы сможете найти APK в корне проекта по следующему пути app/build/outputs/apk/app-debug.apk
.
Для того, чтобы собрать исполняемый файл для IOS нужно заархивировать директорию с кодом и отправить в TestFlight.
Проект сделан с использованием технологии KMP - Kotlin Multiplatform. В архитектуре используется три модуля AndroidApp, IosApp, Shared.
- AndroidApp - модуль, содержащий приложение для ОС Android.
- IosApp - модуль, содержащий приложение для IOS.
- Shared - общий модуль, используемый обоями платформами.
Изображение, описывающее архитектуру проекта
Android 👽- Jetpack Compose
- Clean architecture
- Минимальная поддерживаемая версия Android SDK 21, целевая - 34
- Паттерн MVI
- Koin
- Slack lint
IOS 🍏
- SwiftUI
- Паттерн MVVM
- Clean architecture
- Минимальная поддерживаемая версия IOS 16, максимальная - текущая.
- SwiftLint
Shared 🔮
- Data Store с использованием Mutex в KMP
- Ktor
- SQLDelight
- Koin KMP
- Coroutines
- Skie
- Buildkonfig
- Date time
- Cryptography kotlin
Коммиты
Все коммиты назваются на английском языке. Описание для коммата также пишется на английском языке. Пример формления коммита представлен ниже.
Структура коммита должна быть следующая:
[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). Разговор в пул рекветсе можно вести на русском языке.
Ниже представлен шаблон и пример
-
change1:
- definition1
- definition2
-
change1:
- definition1
Пример:
-
New UI view:
- Created the detail modal view with auto data
- Added the modal auto view into main screen auto list
-
Custom resources for UI:
- New custom images and localizable strings
Темы
Название темы и её описание пишется на русском языке.
Релиз
После завершения определённого этапа разработки, все изменения переходят в master
ветку. После чего следует создать релиз в Git Hub.
System context
Containers context
Components context KMP
Components context IOS
Components context Android