Шаблон проекта от компании ATI.SU, отображающий пример использования технологии Flutter в мультиплатформенной разработке. Решения и архитектура включенная в проект была собрана с целью повысить стабильность и качество разработки Flutter проектов.
Некоторые ресурсы для начала, если это ваш первый проект Flutter:
Ссылка на отличную онлайн-документацию по Flutter (содержит туториалы, примеры, ссылки на API документацию и т. д.) online documentation
Оффициальный YouTube канал:
Ресурсы на русском;
- https://www.youtube.com/c/LearnDartFlutter/playlists
- https://www.youtube.com/watch?v=vH5jQpVTVpU&list=PLrnbjo4fMQwYOmdhRY88xPbrMa5qC4nKK
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputs
flutter pub run easy_localization:generate --source-dir assets/translations -f keys -o locale_keys.g.dart
flutter run
При сборке поддерживаются переменные окружения см [lib/main.dart]:
logLevel
: ключ, отвечающий за минимальный уровень логируемых эвентов
debugInstruments
: ключ, отвечающий за флаг включающий дебаг-инструменты
Перед сборкой необходимо сгенерировать зависимости, после чего можно выполнить команды:
flutter build apk --debug
- для сборки debug-apk ресурса (будет собрано 4 ресурса, универсальная apk и 3 под каждую
платформу)
flutter build apk --release
- для сборки release-apk ресурса (будет собрано 4 ресурса, универсальная apk и 3 под
каждую платформу)
Пример сборки appbundle:
flutter build appbundle --release --dart-define=logLevel=nothing --dart-define=debugInstruments=false
Вариант 1:
flutter build ios
- собирается .app файл, этот файл можно переложить в папку Payload -архив-> Payload.zip -переименование-> Payload.ipa
Вариант 2:
flutter build ipa --export-options-plist=ios/distribution/ExportOptions.plist
- собирается готовый ipa файл
- Важно, ipa файл для дебаг сборки не работает, если удается его собрать, то на телефоне он упдает с Memory Exception. Включить дебаг инструменты позволит --dart-define=debugInstruments=true
- Имя сборки можно менять аналогично андроиду, например: --build-name "1.0.5_ANDR-4258". Но все текстовые символы будут удалены, получится 1.0.54258
- При сборке очень часто возникают pod проблемы, можно зайти в /ios и вызвать:
pod repo update
pod update
- Также часть проблем может быть решена при помощи очистки:
flutter clean
cd ios/
pod cache clean --all
xcodebuild clean
rm -rf .symlinks/
rm -rf Pods
rm -rf Podfile.lock
cd ..
- при запуске на реальном устройстве из студий надо добавить в игнор iproxy sudo xattr -d com.apple.quarantine /YOUR_FLUTTER_PATH/bin/cache/artifacts/usbmuxd/iproxy
flutter pub get
flutter packages pub run build_runner build --delete-conflicting-outputs
flutter packages pub run build_runner watch --delete-conflicting-outputs
flutter pub run easy_localization:generate --source-dir assets/translations -f keys -o locale_keys.g.dart
flutter clean
dart pub global activate flutter_gen
fluttergen
flutter pub run flutter_rename_app