Files
checker/README.md
vtretyakov c4f8eb773c read me up
2019-10-04 11:43:20 +07:00

80 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#Приложение Checker.
Для запуска необходимо установить
[Dart](https://www.dartlang.org/install) - язык программирования v2.5.1.
[flutter](https://flutter.io/setup/) - фреймворк для создания кроссплатформенных мобильных приложений на этом языке. flutter v1.7.8+hotfix.4
Для сборки и запуска приложения используются команды 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