6.3 KiB
#Приложение Checker.
Для запуска необходимо установить Dart - язык программирования и flutter - фреймворк для создания кроссплатформенных мобильных приложений на этом языке.
Для сборки и запуска приложения используются команды flutter run (собирает debug apk, устанавливает его на устройство) и flutter build (собирает release apk, не устанавливает на устройство).
Команды run и build необходимо выполнять с опцией --flavor, чтобы apk файл собирался с необходимыми ресурсами и настройками. Название конкретной flavor передается в аргументе. Все flavors перечислены в файле android/app/build.gradle.
#Добавление брендированного приложения
Для добавления брендированного приложения с названием %name% необходимо:
-
В каталог assets/ положить изображения %name%_logo.png и %name%_splash.png В качестве splash очень желательно использовать квадрат белого цвета 100x100.
-
В файл pubscpec.yaml в раздел assets/ добавить пути этих изображений.
-
В файл lib/resources.dart в методы
getPrimaryColorиgetButtonsColorдобавить цвета необходимые цвета. -
В файл 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\""
}
где все параметры необходимо заменить на соответствующие приложению значения.
- В каталог 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%).
#Добавление локализации приложения
-
В каталог assets содержит каталоги values-XX в которых находятся файлы локализаций strings.xml
-
В каталог 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/
- В Xcode создать target аналогично существующим (Autobonus, Develop, PIP, Dinect). Лучше делать путем дублирования существующих
- При создании таргета автоматически создается build scheme с таким же именем и привязывается к нему
- В настройках созданного target прописать bundleId (например com.dinect.something)
- В файле ios/Runner/AppDelegate.m определить словарь настроек аналогично существующим
- Для того чтобы сбилдить нужный брэнд в Xcode указать нужную схему
При добавлении таргета необходимо в каталог ios
- дописать структуру с именем таргета в podfile
- выполнить pod deintegrate rm Podfile.lock rm - rf pods source ~/.bash_profile pod install
добаваление аналитики FireBase в ios/ Чтобы добавить для ios приложения GoogleServices.plist нужно через Finder создать в каталоге checker/ios подкаталог с названием проекта и туда положить новый GoogleServices.plist
Потом из этого каталога перетащить этот файл в корень проекта. Тащить мышкой в синюю иконку Runner слева над структурой проекта. Появится диалоговое окно, в котором нужно выбрать таргет, в котором этот файл будет доступен. Нужно выбрать нужный проект. В pbproject пропишется, что этот plist относится именно к этому таргету и при сборке таргета будет цепляться нужный plist.