[flutter] 플러터에서 위치 정보를 이용한 가까운 은행 검색 앱 만들기

이번 글에서는 Flutter를 사용하여 위치 정보를 이용해서 가까운 은행을 검색하는 앱을 만드는 방법에 대해 알아보겠습니다. 이 앱은 사용자의 현재 위치를 기반으로 주변 은행을 찾아주고 보기 좋은 리스트로 표시해 줄 것입니다.

내용

  1. 필요한 라이브러리 및 API 설정
  2. 위치 정보 권한 설정 및 사용
  3. 가까운 은행 데이터 가져오기
  4. 화면에 은행 정보 표시하기
  5. 추가 기능 구현하기

필요한 라이브러리 및 API 설정

우선, 위치 기반 검색을 위해 Google Maps Geocoding API 및 Places API를 사용할 예정입니다. Flutter 앱에서 위치 정보를 다루기 위해 geolocator 라이브러리를 사용하고 HTTP 요청을 보내기 위해 http 라이브러리를 사용할 것입니다.

dependencies:
  flutter:
    sdk: flutter
  geolocator: ^7.0.3
  http: ^0.13.3

위와 같이 pubspec.yaml 파일에 라이브러리를 추가해 줍니다.

위치 정보 권한 설정 및 사용

사용자의 현재 위치를 가져오기 위해선 위치 정보 권한 설정이 필요합니다. 이를 위해 geolocator 라이브러리를 사용하여 위치 정보 권한을 확인하고 권한이 없을 시 사용자에게 권한을 요청해야 합니다.

import 'package:geolocator/geolocator.dart';

Position position = await Geolocator.getCurrentPosition(desiredAccuracy: LocationAccuracy.high);

위와 같이 코드를 사용하여 현재 위치를 가져올 수 있습니다.

가까운 은행 데이터 가져오기

위치 정보를 획득한 후에는 해당 위치 근처의 은행 데이터를 가져와야 합니다. 이를 위해 Places API를 사용하여 주변 은행을 검색할 수 있습니다.

import 'package:http/http.dart' as http;

final String apiUrl = 'https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=$latitude,$longitude&type=bank&radius=5000&key=[YOUR_API_KEY]';

http.Response response = await http.get(apiUrl);

위 코드는 Places API를 사용하여 사용자의 위치를 기반으로 반경 5km 이내의 은행을 검색하는 방법을 보여줍니다.

화면에 은행 정보 표시하기

가져온 은행 데이터를 사용해 Flutter 앱의 화면에 정보를 표시해야 합니다. 이를 위해 ListView나 GridView 등을 사용하여 은행 정보를 리스트로 표시할 수 있습니다.

ListView.builder(
  itemCount: banks.length,
  itemBuilder: (BuildContext context, int index) {
    return ListTile(
      title: Text(banks[index]['name']),
      subtitle: Text(banks[index]['vicinity']),
    );
  },
)

위와 같이 코드를 사용하여 은행 정보를 리스트 형태로 화면에 표시할 수 있습니다.

추가 기능 구현하기

위와 같이 위치 정보를 이용한 가까운 은행 검색 기능은 기본적인 기능일 뿐만 아니라 추가적으로 은행 별 상세 정보를 보여주거나 길 안내 기능 등을 추가할 수 있습니다.

결론

이처럼 Flutter를 사용하여 위치 정보를 활용한 가까운 은행 검색 앱을 만들 수 있습니다. 이를 바탕으로 다양한 추가 기능을 추가하거나 UI/UX를 개선하여 완성도 있는 앱을 만들어보시기 바랍니다.