[flutter] 플러터에서 위치 정보를 이용한 근처 병원 검색 앱 만들기

플러터는 Google에서 개발한 크로스 플랫폼 모바일 애플리케이션 프레임워크로, 단일 코드베이스로 안드로이드 및 iOS 애플리케이션을 개발할 수 있습니다. 이번 블로그에서는 플러터를 사용하여 사용자의 위치 정보를 활용하여 근처 병원을 검색하는 앱을 만들어보겠습니다.

필수 요소

이 프로젝트를 만들기 위해선 몇 가지 필수 요소가 필요합니다.

  1. 플러터 SDK: 플러터 프레임워크와 도구를 설치하고 설정합니다.
  2. Google 지도 API 키: Google Cloud Platform에서 API 키를 생성하고 설정합니다.
  3. 위치 액세스 권한: 사용자의 위치 정보를 가져오기 위해 앱에서 위치 액세스 권한을 요청해야 합니다.

프로젝트 설정

우선, 새로운 플러터 프로젝트를 생성합니다. 그리고, google_maps_flutter 패키지를 pubspec.yaml에 추가하여 Google 지도를 사용할 수 있도록 합니다.

dependencies:
  flutter:
    sdk: flutter
  google_maps_flutter: ^2.0.5

그리고, Google 지도 API 키를 가져와 AndroidManifest.xmlInfo.plist 파일에 설정합니다.

위치 정보 가져오기

사용자의 위치 정보를 가져오기 위해, geolocator 패키지를 사용합니다. 이 패키지를 pubspec.yaml에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  google_maps_flutter: ^2.0.5
  geolocator: ^7.6.2

그리고 사용자의 위치를 가져오는 기능을 구현합니다.

import 'package:geolocator/geolocator.dart';

void getLocation() async {
  Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);
  print(position.latitude);
  print(position.longitude);
}

주변 병원 검색

Google Places API를 사용하여 주변 병원을 검색합니다. google_place 패키지를 pubspec.yaml에 추가합니다.

dependencies:
  flutter:
    sdk: flutter
  google_maps_flutter: ^2.0.5
  geolocator: ^7.6.2
  google_place: ^2.2.0

그리고 아래와 같이 사용자의 위치를 기준으로 주변 병원을 검색합니다.

import 'package:google_place/google_place.dart';

void searchNearbyHospitals(double lat, double lng) async {
  GooglePlace googlePlace = GooglePlace(apiKey: 'YOUR_API_KEY');
  var result = await googlePlace.search.getNearBySearch(
      Location(lat: lat, lng: lng), 
      Radius: 5000,
      type: 'hospital'
  );
  print(result);
}

이제 위의 단계를 따라하면 사용자의 위치 정보를 활용하여 근처 병원을 검색하는 플러터 앱을 만들 수 있습니다. 다양한 기능을 추가하여 사용자가 병원을 검색하고 예약할 수 있도록 확장할 수 있습니다.

Happy coding! 🚀


참고 문헌: