[flutter] 플러터 Checkbox GPS 위치 정보 이용하기

플러터(Flutter)는 Google에서 개발한 UI 프레임워크로, 다양한 플랫폼에서 동작하는 앱을 손쉽게 개발할 수 있습니다. 이번 블로그 포스트에서는 플러터의 Checkbox 위젯과 GPS 위치 정보를 이용하는 방법을 알아보겠습니다.

Checkbox 위젯 추가하기

체크박스는 플러터에서 기본적으로 제공하는 위젯 중 하나로, 선택 여부를 나타내는데 사용됩니다. 아래 코드는 간단한 체크박스 위젯을 생성하는 예제입니다.

bool isChecked = false;

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text("Checkbox Example"),
    ),
    body: Center(
      child: Checkbox(
        value: isChecked,
        onChanged: (bool value) {
          setState(() {
            isChecked = value;
          });
        },
      ),
    ),
  );
}

이 코드에서 isChecked 변수는 체크박스의 선택 여부를 나타내고, setState 메소드를 이용하여 화면을 다시 그리도록 합니다. 위 코드를 실행하면 화면에 체크박스가 나타납니다. 사용자가 체크박스를 선택하거나 해제하면 isChecked 변수의 값이 변경되어 화면에 반영되는 것을 확인할 수 있습니다.

GPS 위치 정보 이용하기

플러터에서 GPS 위치 정보를 이용하려면 geolocator 패키지를 사용할 수 있습니다. 이 패키지를 사용하기 위해 pubspec.yaml 파일에 아래와 같은 의존성을 추가해주세요.

dependencies:
  geolocator: ^7.1.1

위치 정보를 이용하기 위해선 위치 권한이 필요합니다. Android에서는 android/app/src/main/AndroidManifest.xml 파일에 위치 권한을 추가해야 합니다.

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

다음으로, 위치 정보를 가져오는 코드를 작성해보겠습니다.

import 'package:geolocator/geolocator.dart';

Position? currentPosition;

void getLocation() async {
  Position position = await Geolocator.getCurrentPosition(
    desiredAccuracy: LocationAccuracy.high,
  );
  
  setState(() {
    currentPosition = position;
  });
}

@override
Widget build(BuildContext context) {
  return Scaffold(
    appBar: AppBar(
      title: Text("Location Example"),
    ),
    body: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          ElevatedButton(
            onPressed: () {
              getLocation();
            },
            child: Text("Get Location"),
          ),
          SizedBox(height: 16),
          Text(currentPosition != null
              ? "Latitude: ${currentPosition!.latitude}\nLongitude: ${currentPosition!.longitude}"
              : "Location not available"),
        ],
      ),
    ),
  );
}

위 코드에서 getLocation 메소드는 Geolocator.getCurrentPosition 함수를 이용하여 현재 위치 정보를 가져오고, currentPosition 변수에 저장합니다. 이후 ElevatedButton을 클릭하면 getLocation 메소드를 호출하여 위치 정보를 갱신하고, 화면에 위도와 경도를 표시합니다. 만약 위치 정보가 사용자에게 제공되지 않을 경우, “Location not available”라는 메시지가 표시됩니다.

위 코드를 실행하면 “Get Location”이라는 버튼이 나타나며, 버튼을 클릭하면 현재 위치 정보가 화면에 표시됩니다.

마무리

이번 포스트에서는 플러터의 Checkbox 위젯과 GPS 위치 정보를 사용하는 방법을 알아보았습니다. Checkbox 위젯을 이용하여 사용자의 선택 여부를 표시하고, geolocator 패키지를 이용하여 GPS 위치 정보를 가져올 수 있습니다. 이러한 기능들을 적절히 활용하여 플러터 앱을 개발해보세요.

더 자세한 정보는 다음 문서를 참고해주세요: