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();
}