79 lines
5.7 KiB
Markdown
79 lines
5.7 KiB
Markdown
#Приложение Checker.
|
||
|
||
Для запуска необходимо установить [Dart](https://www.dartlang.org/install) - язык программирования и
|
||
[flutter](https://flutter.io/setup/) - фреймворк для создания кроссплатформенных мобильных приложений на этом языке.
|
||
|
||
Для сборки и запуска приложения используются команды flutter run (собирает debug apk, устанавливает его на устройство) и
|
||
flutter build (собирает release apk, не устанавливает на устройство).
|
||
|
||
Команды run и build необходимо выполнять с опцией --flavor, чтобы apk файл собирался с необходимыми ресурсами и настройками.
|
||
Название конкретной flavor передается в аргументе. Все flavors перечислены в файле android/app/build.gradle.
|
||
|
||
#Добавление брендированного приложения
|
||
|
||
Для добавления брендированного приложения с названием %name% необходимо:
|
||
|
||
1) В каталог assets/ положить изображения %name%_logo.png и %name%_splash.png
|
||
В качестве splash очень желательно использовать квадрат белого цвета 100x100.
|
||
|
||
2) В файл pubscpec.yaml в раздел assets/ добавить пути этих изображений.
|
||
|
||
3) В файл lib/resources.dart в методы ```getPrimaryColor``` и ```getButtonsColor```
|
||
добавить цвета необходимые цвета.
|
||
|
||
4) В файл android/app/build.gradle в раздел productFlavors добавить блок следующего вида:
|
||
```
|
||
%name% {
|
||
applicationId 'com.dinect.autobonus'
|
||
buildConfigField "String", "locale", "\"ru\""
|
||
buildConfigField "String", "flavor", "\"%name%\""
|
||
buildConfigField "int", "currency", "643"
|
||
buildConfigField "String", "supportPhone", "\"8-800-234-6064\""
|
||
buildConfigField "String", "supportUrl", "\"https://www.auto-club.biz\""
|
||
buildConfigField "String", "endpoint", "\"https://pos-api-int.dinect.com/20130701/\""
|
||
buildConfigField "String", "appToken", "\"9fec83cdca38c357e6b65dbb17514cdd36bf2a08\""
|
||
}
|
||
```
|
||
|
||
где все параметры необходимо заменить на соответствующие приложению значения.
|
||
|
||
6) В каталог android/app/src/ добавить каталоги %name%/res в которых воссоздать структуру ресурсов аналогичную представленной в каталоге android/app/src/pip/res/:
|
||
Каталоги mipmap должны содержать иконки, каталоги values должны содержать .xml файлы с названием приложения в следующем формате:
|
||
```
|
||
<resources>
|
||
<string name="app_name">%name%</string>
|
||
</resources>
|
||
```
|
||
|
||
Иконки проще всего нарезать тут:
|
||
https://romannurik.github.io/AndroidAssetStudio/icons-launcher.html
|
||
|
||
В качестве Foreground выбрать иконку приложения размером 512x512, выставить необходимые параметры и скачать архив с нарещанными иконками.
|
||
|
||
После выполнения всех этих пунктов появится возможность собирать приложение
|
||
как описано выше(flutter run --flavor %name% либо flutter build apk --flavor %name%).
|
||
|
||
#Добавление локализации приложения
|
||
|
||
1) В каталог lib/i18n добавить файл messages_%locale%.dart.
|
||
Файл делать по аналогии с messages_en.dart. Либо с messages_ru.dart.
|
||
|
||
2) В каталог android/app/src/main/res добавить каталог values-%locale% с единственным файлом strings.xml.
|
||
Файл должен иметь структуру полностью аналогичную файлу android/app/src/main/res/values/strings.xml, измениться должны только значения для строк.
|
||
|
||
#IOS
|
||
0) Установите flutter https://flutter.io/setup-macos/
|
||
1) В Xcode создать target аналогично существующим (Autobonus, Develop, PIP, Dinect). Лучше делать путем дублирования существующих
|
||
2) При создании таргета автоматически создается build scheme с таким же именем и привязывается к нему
|
||
3) В настройках созданного target прописать bundleId (например com.dinect.something)
|
||
4) В файле ios/Runner/AppDelegate.m определить словарь настроек аналогично существующим
|
||
5) Для того чтобы сбилдить нужный брэнд в Xcode указать нужную схему
|
||
|
||
Регламент сборки
|
||
1. Четко фиксируем версию Flutter
|
||
2. Четкая фиксация версии библиотек зависимостей андройд и iOS
|
||
3. При обновлении версий библиотек и flutter разработка в отдельной ветке. (default всегда должен собираться)
|
||
4. Разработка новых фич в отдельных ветках
|
||
5. Настройка CI для Андройд до
|
||
6. Настройка Hg Ignore корректно 22.06
|