개요
이번 프로젝트에서는 플러터(Flutter)의 geolocator 패키지를 사용하여 위치 기반 실시간 프로모션 정보를 보여주는 애플리케이션을 개발할 것입니다. geolocator 패키지는 휴대폰의 GPS 기능을 사용하여 사용자의 위치를 가져오는 기능을 제공합니다.
준비물
- flutter SDK 설치
- 안드로이드 또는 iOS 기기
- 에디터 (예: Visual Studio Code)
단계별 개발 진행
1. 프로젝트 생성
먼저 flutter 프로젝트를 생성합니다. 터미널에서 다음 명령어를 실행하여 프로젝트를 생성합니다.
flutter create promotion_app
2. geolocator 패키지 추가
pubspec.yaml
파일을 열고 dependencies 항목에 geolocator 패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
geolocator: ^6.0.0
저장 후, 터미널에서 다음 명령어를 실행하여 패키지를 다운로드합니다.
flutter pub get
3. 위치 권한 설정
프로모션 정보를 가져오기 위해서는 사용자의 위치 권한이 필요합니다. 안드로이드의 경우 AndroidManifest.xml
파일을 열고 다음 코드를 <manifest>
태그 안에 추가합니다.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
iOS의 경우 Info.plist
파일을 열고 다음 코드를 <dict>
태그 안에 추가합니다.
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>We need your location to provide real-time promotion information</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>We need your location to provide real-time promotion information</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>We need your location to provide real-time promotion information</string>
4. 위치 가져오기
main.dart
파일을 열고 다음 코드를 추가합니다. 이 코드는 앱이 시작될 때 위치를 가져오는 기능을 구현합니다.
import 'package:geolocator/geolocator.dart';
void main() {
runApp(PromotionApp());
}
class PromotionApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Promotion App'),
),
body: Center(
child: RaisedButton(
onPressed: () async {
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied || permission == LocationPermission.deniedForever) {
permission = await Geolocator.requestPermission();
}
if (permission == LocationPermission.whileInUse || permission == LocationPermission.always) {
Position position = await Geolocator.getCurrentPosition();
print('Latitude: ${position.latitude}');
print('Longitude: ${position.longitude}');
} else {
print('Location permission denied');
}
},
child: Text('Get Location'),
),
),
),
);
}
}
5. 프로모션 정보 표시
위치를 가져오는 기능이 동작하면, 해당 위치 기반의 프로모션 정보를 가져와서 화면에 표시할 수 있습니다. 이 부분은 본인의 프로젝트에 맞게 추가하시면 됩니다.
결론
위에서 설명한 단계를 따라가면서 플러터의 geolocator 패키지를 이용하여 위치 기반 실시간 프로모션 정보 애플리케이션을 개발할 수 있습니다. 사용자의 위치를 가져오고 해당 위치에 맞는 프로모션 정보를 가져와서 화면에 표시하는 기능을 구현할 수 있습니다.