지인들과 만나기 위해 위치 기반 애플리케이션은 매우 유용합니다. 이번에는 Flutter 프레임워크와 Geolocator 패키지를 사용하여 위치 기반 지인 찾기 애플리케이션을 개발해보겠습니다.
목차
Geolocator 패키지 설치
Geolocator 패키지는 위치 정보를 쉽게 가져올 수 있도록 도와주는 플러그인입니다. 다음 명령을 사용하여 패키지를 설치합니다.
flutter pub add geolocator
위치 권한 요청
사용자의 현재 위치 정보를 가져오려면 위치 권한이 필요합니다. 이를 위해 permission_handler
패키지를 설치하고 위치 권한을 요청하는 코드를 작성해야 합니다.
-
permission_handler
패키지를 설치합니다.flutter pub add permission_handler
-
위치 권한을 요청하기 위한 코드를 작성합니다.
import 'package:permission_handler/permission_handler.dart'; Future<void> requestLocationPermission() async { final status = await Permission.location.request(); if (status.isDenied) { // 권한이 거부된 경우 처리할 로직 작성 } }
-
앱 초기화 단계에서 위치 권한을 요청합니다.
@override void initState() { super.initState(); requestLocationPermission(); }
위 코드를 이용하여 사용자에게 위치 권한을 요청하고, 권한이 거부된 경우에 대한 처리를 추가할 수 있습니다.
사용자의 현재 위치 가져오기
위치 권한이 허용되면, Geolocator 패키지를 사용하여 사용자의 현재 위치 정보를 가져올 수 있습니다.
import 'package:geolocator/geolocator.dart';
Position? currentPosition;
Future<void> getCurrentLocation() async {
try {
final position = await Geolocator.getCurrentPosition();
setState(() {
currentPosition = position;
});
} catch (e) {
// 위치 정보를 가져오지 못한 경우 처리할 로직 작성
}
}
getCurrentPosition
메서드를 호출하여 사용자의 현재 위치를 가져옵니다. 위치 정보를 가져오는 동안 예외가 발생할 수 있으므로, try-catch
문을 사용하여 예외 처리를 해주어야 합니다.
지인들의 위치 표시하기
사용자의 위치를 가져왔다면, 이제 지인들의 위치를 지도 상에 표시해보겠습니다. 이를 위해 지인들의 위치 정보를 서버에서 가져와야 합니다. 이 예제에서는 서버로부터 위치 정보를 받아오는 로직은 생략하고, 가상의 위치 정보를 사용하겠습니다.
import 'package:google_maps_flutter/google_maps_flutter.dart';
List<LatLng> friendLocations = [
LatLng(37.583869, 127.058599),
LatLng(37.566419, 126.977876),
LatLng(37.486822, 127.036731),
];
Set<Marker> markers = friendLocations.map((location) {
return Marker(
position: location,
markerId: MarkerId(location.toString()),
);
}).toSet();
GoogleMap(
markers: markers,
initialCameraPosition: CameraPosition(
target: currentPosition ?? LatLng(37.5665, 126.9780),
zoom: 14,
),
),
friendLocations
리스트에는 지인들의 위치 정보를 담고 있습니다. 이 위치 정보를 Marker
객체로 변환하여 지도 위에 표시합니다. 마커 ID는 위치 정보의 문자열 표현을 사용합니다.
GoogleMap
위젯에서 markers
속성에 마커들을 설정하고, initialCameraPosition
속성을 사용하여 지도 초기 화면을 설정합니다.
위 코드를 사용하여 지인들의 위치를 지도 상에 표시할 수 있습니다.
이제 플러터와 Geolocator 패키지를 사용하여 위치 기반 지인 찾기 애플리케이션을 개발할 준비가 되었습니다. 효율적인 위치 권한 요청, 사용자의 현재 위치 가져오기, 지인들의 위치 표시하기 등을 통해 애플리케이션의 기능을 완성할 수 있습니다!
더 자세한 내용은 아래의 링크를 참고하시기 바랍니다.
- Flutter: https://flutter.dev/
- Geolocator 패키지: https://pub.dev/packages/geolocator
- Permission Handler 패키지: https://pub.dev/packages/permission_handler
Happy coding and geo-locating!