TGViewer
Flutter Friendly Flutter Friendly @flutterfriendly · 996 subscribers
Post #206 804
Привет! С вами Анна, Friflex Flutter Team Lead🚀

Определение местоположения пользователя — достаточно часто встречающийся запрос на разработку в мобильном приложении. Эта функция может быть очень полезной, так как дает возможность сильно сократить пользовательский путь, например, при поиске ближайшего магазина. Сегодня поговорим о том, как же интегрировать ее во Flutter-приложение.

1 шаг — выбор инструмента определения геопозиции
Для получения данных о местоположении пользователя можно использовать следующие инструменты:

▫️ geolocator — популярный плагин с широким функционалом. С его помощью можно получить текущую геопозицию, отслеживать перемещения пользователя и даже выполнять расчеты дистанции между точками

▫️ location — не менее популярный плагин, имеет функционал схожий с geolocator

▫️кастомная реализация — при желании и необходимости можно написать свой собственный плагин, который будет обращаться к платформе для получения данных геопозиции

2 шаг — настройка разрешений на Android
На Android необходимо в AndroidManifest.xml выдать специальные разрешения.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>


Для Android API 29 и выше при необходимости использования геопозиции в фоне нужно добавить разрешение:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/>


Важно! Необходимо следить за тем, какие разрешения вы запрашиваете, не запрашивать лишнего. При модерации Google Play может отклонить вашу сборку, если посчитает, что вы выполняете лишние запросы.

При запросе разрешений вам стоит предусмотреть сценарии, когда пользователь отклонил запрос 1 раз и больше. Если пользователь выбрал пункт «Больше не спрашивать» или на последних версиях Android отклонил разрешение дважды, выдать разрешение он сможет только вручную из настроек. Здесь важно обеспечить ему наиболее простой путь.

3 шаг — настройка разрешений на iOS

На iOS необходимо в Info.plist добавить ключи с необходимым разрешением.

<key>NSLocationWhenInUseUsageDescription</key>
<string>Для определения вашего местоположения</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>Для фонового доступа к местоположению</string>


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

4 шаг — интеграция функционала в приложение

Здесь могу порекомендовать создавать некоторый сервис-обертку для доступа к функциям подключенного плагина. В случае необходимости такой подход позволит вам легко и с наименьшими усилиями заменить реализацию с минимальным рефакторингом.

Готово!✅

❤️ — если было полезно
  • ❤ 13
  • 🔥 3
  • 💯 2
More from @flutterfriendly
  1. May 14, 2026👀Какой сложный вопрос или тема по Flutter вас сейчас беспокоят? Может, задача не идет, ба…
  2. Apr 17, 2026💭Привет! Это Роза, Flutter-разработчица Friflex! Уверена, многие из вас знакомы с Dart De…
  3. Apr 8, 2026Привет, друзья! Делимся нашей страничкой на Хабре, чтобы всегда оставаться на связи. Там е…
  4. Apr 3, 2026🌸Апрель в календаре и на экране Весна зовет обновлять визуальное: убирать темные темы и в…
  5. Apr 1, 2026Всегда с нетерпением ждем этого дня, чтобы сделать подборку ИТ-мемов Пусть поводов для улы…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →