Ещё раз напомню ссылки на наши чаты, они есть в секции About, но тем не менее, у наc есть Телеграмм (https://t.me/rudart) и Slack (менее живой, но он скорее на случай блока) http://dart-ru.herokuapp.com/

Post has attachment
FAQ по созданию ФОНОВОГО GPS трекера.

Если нужно отслеживать местоположение не в фоне (строить трек или просто получать текущую координату) на карте, при запущенном Flutter приложении, которое сейчас на экране - то можно воспользоваться готовыми решениями из https://pub.dartlang.org/flutter
Если же нужно организовать работу в фоне с достаточно детальной настройкой, то на данный момент готового решения нет. Читаем далее, что нам доступно.

Disclaimer: https://pub.dartlang.org/packages/geolocation судя по описанию поддерживает некоторую работу в фоне, которую я не проверял, возможно её способностей хватит для Вашей задачи. На данный момент у меня сомнения, работает ли она в фоновом режиме на ios, так как я не вижу необходимых настроек в описании.

Если требуется от мобильной платформы получить максимум в плане гибкости и детализированности настроек фонового получения координат для организации gps трекера, то у вас 1 путь:
Мобильная платформа Android и iOS фоновую работу в своей системе организовали каждая по своему, со всеми ограничениями, возможностями, нюансами и вытекающими последствиями. Одно из них - не получится использовать Flutter и Dart для прямого управления фоновой работой и получением координат от девайса. Придется использовать PlatformChannels https://flutter.io/platform-channels/ чтобы делегировать эту работу нативным инструментам.
С использованием Kotlin(Java) для Android и Swift(ObjectiveC) для iOS вы пишите свою реализацию вашего придуманного API для трекера и через PlatformChannels это API прокидываете на сторону Dart для управления через UI на Flutter.

Вариантов реализации этого Вашего придуманного API может быть масса, все зависит от Вашей задачи. От этого зависит какая часть логики будет унифицирована между платформами и написана на Dart, а какая часть будет продублирована и написана для каждой платформы индивидуально.

Обе платформы дают богатый набор инструментов для реализации разного рода пожеланий в рамках GPS трекинга, но так же имеют очень много ограничений и особенностей, которые нужно учитывать. Детали можно подчерпнуть в официальной документации по каждой платформе.

В телеграм канале были обсуждения фоновой работы, где было
несколько полезных моментов. В основном это касается нативной разработки. Приведу их сюда, для дальнейшего оформления в структурированный Faq, если потребуется.

Платформы Android и iOS эволюционируют привнося новые возможности и ограничения. например, в последних версиях Android идет изменение поведения сервисов, которые начинают работать чуть иначе. Подробности в документации. Но для интенсивной работы в фоне для разработчика остается инструмент ForegroundService

Если проблемы с работой сервисов в фоне, то стоит проверить настройки энергопотребления и проверить разнообразные белые списки и исключения по использованию батареи, которые у каждого производителя Android оболочек могут быть свои.

В некоторых случаях через Push можно пробудить спящее приложение. Android - любой пуш, ios специально сконфигурированный пуш silent(content_available=1). Но этот механизм не получится использовать на постоянной основе, так как имеет ограничения и особенности.

Приложение на iOS может работать интенсивно в фоне вроде как только в 2х случаях: Если оно является voIP или gps tracker приложением. В данном случае вы настраиваете свой проект соответствующим образом, например для gps указываете backgroundMode ON в настройках.
Подписываетесь на получение gps координат(location listener) и работаете в фоне.

Фоновый сервис в Android можно перезапустить автоматически при рестарте системы (Boot Completed receiver). В iOS фоновая работа организована иначе, поэтому таких инструментов нет. Но в рамках темы GPS трекинга, можно воспользоваться пробуждениями от Significant, Visits, Region и прочих updates, которыми располагает система для пробуждения приложения. Все зависит от задачи.

AlarmManager на Android нужно использовать понимая его поведение.
JobScheduller тоже нужно использовать по назначению :) он создан для коллективно согласованной работы в фоне :)
DozeMode и Background Execution Limits к прочтению

Для работы GPS трекера в фоне на iOS c Apple "договариваться" не нужно. Нужно следовать её guideline как при реализации приложения так и при оформлении его на AppStore. Если нет сокрытой следящей логики за пользователем (нарушение privacy пользователя), то приложение спокойно проходит проверку в review team и спокойно живет в AppStore.

И в заключение, Flutter прекрасный инструмент для UI. Он не может сделать все.
Как и с любым инструментом с ним нужно уметь обращаться и использовать по назначению.
Flutter Packages
Flutter Packages
pub.dartlang.org

Всем привет. Это комьюнити было создано для объединения людей, которые:
а) говорят по-русски (находясь в любой стране мира)
б) интересуются языком Dart
Все полезные ссылки можно найти в описании группы.

All hail Dart!
Wait while more posts are being loaded