[flutter] 플러터 geolocator를 이용한 위치 기반 소셜 네트워킹 애플리케이션 개발

지금은 위치 기반 서비스가 매우 인기 있는데요, 이번 예제에서는 플러터의 geolocator 패키지를 이용하여 위치 기반 소셜 네트워킹 애플리케이션을 개발해보겠습니다. 사용자들은 자신의 위치를 공유하고 주변 사람들과 커뮤니케이션할 수 있는 기능을 제공하는 앱을 만들어볼 예정입니다.

개발 환경 설정

먼저 Flutter 개발 환경이 설치되어 있어야 합니다. 개발을 시작하기 위해 다음 단계를 따라주세요:

  1. Flutter SDK 설치
  2. 터미널에서 flutter doctor 명령어를 실행하여 개발 환경이 올바로 설치되었는지 확인합니다.

geolocator 패키지 추가하기

위치 기반 기능을 사용하기 위해 geolocator 패키지를 추가해야 합니다. pubspec.yaml 파일에 다음 코드를 추가하세요:

dependencies:
  geolocator: ^7.0.1

그리고 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드 받아주세요.

위치 정보 가져오기

먼저 앱을 실행하기 전에 위치 권한을 확인해야 합니다. AndroidManifest.xml 파일에 다음 코드를 추가하세요:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">
    
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
        ...
    </application>

</manifest>

이제 main.dart 파일을 열고 다음 코드를 추가하세요:

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Location App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Location App'),
        ),
        body: Center(
          child: ElevatedButton(
            child: Text('Get Location'),
            onPressed: () async {
              Position position = await Geolocator.getCurrentPosition(
                desiredAccuracy: LocationAccuracy.high,
              );
              print('Latitude: ${position.latitude}');
              print('Longitude: ${position.longitude}');
            },
          ),
        ),
      ),
    );
  }
}

이 코드는 간단한 앱을 생성하고, ‘Get Location’ 버튼을 누를 때 현재 위치 정보를 가져와서 출력합니다.

실행 및 테스트

이제 앱을 실행해보겠습니다. 터미널에서 flutter run 명령어를 실행하여 앱을 실행하세요. 앱이 정상적으로 실행되면 ‘Get Location’ 버튼을 눌러 위치 정보를 확인해보세요.

결론

위치 기반 소셜 네트워킹 애플리케이션을 개발하기 위해 플러터의 geolocator 패키지를 활용하는 방법을 배웠습니다. 이를 바탕으로 더 많은 기능을 추가하여 원하는 앱을 개발할 수 있습니다. 더 자세한 내용은 geolocator 패키지 공식 문서를 참조하세요.