[flutter] 플러터에서 위치 정보를 이용한 가까운 공원 찾기 앱 만들기

플러터는 구글에서 개발한 크로스 플랫폼 모바일 앱 개발 프레임워크로, 단일 코드베이스로 안드로이드와 iOS 양쪽 플랫폼에서 동작하는 앱을 만들 수 있습니다. 이번 튜토리얼에서는 플러터와 위치 정보 서비스를 결합하여 사용자의 현재 위치를 기반으로 가까운 공원을 찾는 앱을 만들어보겠습니다.

목차

  1. 프로젝트 설정
  2. 플러터 위치 정보 서비스
  3. Google Maps API 연동
  4. 주변 공원 검색
  5. 결론

프로젝트 설정

먼저, 플러터 프로젝트를 생성하고 위치 정보를 사용할 수 있는 권한을 설정합니다. AndroidManifest.xml 파일에는 다음과 같이 위치 권한을 추가해야 합니다.

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

그리고 pubspec.yaml 파일에 다음과 같이 위치 서비스에 관한 의존성을 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  location: ^4.2.0

위치 권한을 관리하기 위해 location 패키지를 사용할 것입니다.

플러터 위치 정보 서비스

플러터에서 위치 정보를 사용하기 위해서는 location 패키지를 import하고, 사용자의 현재 위치를 가져오는 기능을 구현해야 합니다. 다음은 간단한 예제 코드입니다.

import 'package:flutter/material.dart';
import 'package:location/location.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: LocationScreen(),
    );
  }
}

class LocationScreen extends StatefulWidget {
  @override
  _LocationScreenState createState() => _LocationScreenState();
}

class _LocationScreenState extends State<LocationScreen> {
  Location location = Location();

  @override
  void initState() {
    super.initState();
    _getLocation();
  }

  Future<void> _getLocation() async {
    try {
      var userLocation = await location.getLocation();
      print(userLocation.latitude);
      print(userLocation.longitude);
    } catch (e) {
      print("Error: $e");
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Location Example'),
      ),
      body: Center(
        child: Text('Fetching location...'),
      ),
    );
  }
}

위 코드는 사용자의 현재 위치를 가져와 콘솔에 출력하는 간단한 앱입니다.

Google Maps API 연동

사용자의 위치를 기반으로 주변 공원을 표시하려면 Google Maps API를 통해 지도를 표시해야 합니다. Google Cloud Console에서 API 키를 생성하고, google_maps_flutter 패키지를 사용하여 플러터 앱에 지도를 표시할 수 있습니다.

dependencies:
  google_maps_flutter: ^2.0.6

위치 검색 및 마커를 추가하여 지도에 주변 공원을 표시할 수 있습니다.

주변 공원 검색

위치 정보 및 Google Maps API를 이용하여 주변 공원 검색 기능을 추가할 수 있습니다. 사용자의 위치를 기반으로 공원을 검색하고 지도에 표시하는 기능을 구현할 수 있습니다.

결론

플러터와 위치 정보 서비스, Google Maps API를 활용하여 사용자의 위치를 기반으로 가까운 공원을 찾는 앱을 만들 수 있습니다. 이를 통해 사용자들은 손쉽게 주변의 공원을 찾아 즐거운 시간을 보낼 수 있을 것입니다.