[flutter] 플러터 geolocator를 이용한 위치 기반 커머스 애플리케이션 개발

Geolocator

이 글에서는 플러터(Flutter) 프레임워크의 Geolocator 패키지를 사용하여 위치 기반 커머스 애플리케이션을 개발하는 방법에 대해 알아보겠습니다.

목차

Geolocator란?

Geolocator는 플러터 개발에 사용되는 위치 인식 라이브러리입니다. 이를 통해 애플리케이션에서 사용자의 현재 위치 정보를 가져오고, 위치 감지 리스너를 통해 위치 변화를 실시간으로 감지할 수 있습니다. Geolocator는 iOS와 안드로이드 플랫폼 모두에서 동작하며, 정확도, 속도, 배터리 소모 등을 유연하게 설정할 수 있습니다.

Geolocator 설치

Geolocator를 사용하기 위해서는 먼저 해당 패키지를 설치해야 합니다. 다음 명령어를 실행하여 패키지를 설치합니다.

$ flutter pub add geolocator

또는 pubspec.yaml 파일에서 dependencies 항목에 다음 코드를 추가하고, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 설치할 수도 있습니다.

dependencies:
  geolocator: ^7.0.3

위치 권한 요청

애플리케이션이 사용자의 위치 정보에 접근하기 위해서는 먼저 위치 권한을 요청해야 합니다. Geolocator 패키지를 사용하여 위치 권한을 요청하는 방법은 다음과 같습니다.

import 'package:geolocator/geolocator.dart';

...

// 위치 권한 요청
Geolocator.requestPermission();

위 코드는 사용자에게 위치 권한을 요청하는 팝업을 띄우고, 사용자의 응답에 따라 권한을 얻는 기능을 제공합니다.

현재 위치 정보 가져오기

Geolocator 패키지를 사용하면 현재 사용자의 위치 정보를 가져올 수 있습니다. 다음 코드는 현재 위치 위도(latitude)와 경도(longitude)를 가져오는 예제입니다.

import 'package:geolocator/geolocator.dart';

...

// 현재 위치 정보 가져오기
Position position = await Geolocator.getCurrentPosition();
double latitude = position.latitude;
double longitude = position.longitude;

getCurrentPosition() 메서드는 Future 형태로 위치 정보를 반환하므로, await 키워드를 사용하여 비동기 처리를 해주어야 합니다.

위 코드를 실행하면 현재 위치 정보를 가져와서 position 변수에 저장하고, 이를 통해 위도와 경도를 추출하여 latitudelongitude 변수에 할당합니다.

위치 감지 리스너

Geolocator 패키지의 가장 강력한 기능 중 하나는 위치 감지 리스너입니다. 위치 감지 리스너를 사용하면 애플리케이션에서 실시간으로 위치 변화를 감지할 수 있습니다. 다음은 위치 감지 리스너를 사용하는 예제입니다.

import 'package:geolocator/geolocator.dart';

...

// 위치 감지 리스너 생성
StreamSubscription<Position> positionStream = Geolocator.getPositionStream().listen((Position position) {
  // 위치 변화가 감지되었을 때 실행되는 코드
  print('위치 변경 - 위도: ${position.latitude}, 경도: ${position.longitude}');
});

...

// 위치 감지 리스너 중지
positionStream.cancel();

getPositionStream()은 위치 변화를 감지하기 위한 스트림을 생성하고, listen() 메서드를 통해 위치 변화가 감지될 때마다 실행될 코드를 작성합니다. 위치 변화를 감지하면 position 파라미터로 변경된 위치 정보가 전달되므로, 이를 활용하여 원하는 동작을 수행할 수 있습니다. 이때, cancel() 메서드를 사용하여 위치 감지 리스너를 중지할 수 있습니다.

결론

이제 플러터의 Geolocator 패키지를 사용하여 위치 기반 커머스 애플리케이션을 개발하는 방법에 대해 알아보았습니다. Geolocator를 이용하면 사용자의 위치 정보를 손쉽게 가져올 수 있으며, 위치 변화를 실시간으로 감지하여 다양한 기능을 구현할 수 있습니다. 위치 기반 애플리케이션을 개발할 때는 Geolocator 패키지를 적극 활용해보세요.

참고 자료