카테고리 없음

Flutter dart 네이티브 기능

devfinger 2025. 2. 2. 17:51

Flutter는 플러그인을 통해 네이티브 기능을 사용할 수 있다.

기능             패키지                          설명
푸시 알림         firebase_messaging            Firebase 푸시 알림 지원
로컬 알림         flutter_local_notifications   앱 내부에서 로컬 알림
진동             vibration                     휴대폰 진동 기능
전화 걸기         url_launcher                  전화 앱 실행 및 다이얼 기능
위치 정보         geolocator                    GPS를 사용한 위치 정보 가져오기
카메라            camera                       카메라 촬영 및 사진 저장
파일 저장         path_provider                 내부/외부 저장소 접근
오디오 재생        just_audio                   오디오 파일 재생
센서 데이터        sensors_plus                 가속도계, 자이로스코프 등 센서 값 읽기
블루투스          flutter_blue_plus             블루투스 기기와 연결
네트워크 상태 확인  connectivity_plus             네트워크 연결 상태 확인

 

1) 푸시 알림 받기 (Firebase Messaging)

dependencies:
  firebase_messaging: latest_version

 

import 'package:firebase_messaging/firebase_messaging.dart';

void main() async {
  FirebaseMessaging messaging = FirebaseMessaging.instance;

  NotificationSettings settings = await messaging.requestPermission();
  
  FirebaseMessaging.onMessage.listen((RemoteMessage message) {
    print("푸시 알림 수신: ${message.notification?.title}");
  });
}

 

2) 진동 기능

dependencies:
  vibration: latest_version

 

import 'package:vibration/vibration.dart';

void vibrate() {
  Vibration.vibrate(duration: 500);
}

 

3) 전화 걸기 (다이얼 기능)

dependencies:
  url_launcher: latest_version

 

import 'package:url_launcher/url_launcher.dart';

void makeCall() async {
  final Uri tel = Uri.parse("tel:123456789");
  if (await canLaunchUrl(tel)) {
    await launchUrl(tel);
  } else {
    print("전화 걸기 실패");
  }
}

 

4) 현재 위치 가져오기

dependencies:
  geolocator: latest_version

 

import 'package:geolocator/geolocator.dart';

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

 

5) 카메라 촬영

dependencies:
  camera: latest_version

 

import 'package:camera/camera.dart';

Future<void> initializeCamera() async {
  final cameras = await availableCameras();
  final firstCamera = cameras.first;
  CameraController controller = CameraController(firstCamera, ResolutionPreset.high);
  await controller.initialize();
}