플러터(Flutter) 앱 개발 중에는 사용자의 인터넷 연결 상태를 확인하는 것이 중요합니다. 사용자가 오프라인 상태인 경우, 앱은 적절한 조치를 취하여 사용자 경험을 향상시킬 수 있습니다. 이 글에서는 플러터에서 인터넷 연결 상태를 확인하는 방법을 알아보겠습니다.
1. connectivity
패키지 사용하기
플러터에서는 connectivity
패키지를 사용하여 인터넷 연결 상태를 확인할 수 있습니다. 이 패키지는 앱이 인터넷에 연결되어 있는지 여부를 확인하고, 연결 유형(와이파이, 셀룰러 등)을 판별할 수 있습니다.
먼저, pubspec.yaml
파일의 dependencies
섹션에 connectivity
패키지를 추가합니다.
dependencies:
flutter:
sdk: flutter
connectivity: ^2.0.2
이제 패키지를 가져올 수 있습니다.
import 'package:connectivity/connectivity.dart';
2. 인터넷 연결 상태 확인하기
인터넷 연결 상태를 확인하기 위해서는 Connectivity
클래스의 checkConnectivity
메서드를 호출합니다.
var connectivityResult = await (Connectivity().checkConnectivity());
if (connectivityResult == ConnectivityResult.none) {
// 인터넷에 연결되어 있지 않음
} else if (connectivityResult == ConnectivityResult.mobile) {
// 모바일 데이터로 연결됨
} else if (connectivityResult == ConnectivityResult.wifi) {
// 와이파이로 연결됨
}
위의 코드에서는 connectivityResult
변수를 통해 연결 상태를 얻어옵니다. ConnectivityResult.none
은 인터넷 연결이 없음을 나타내고, ConnectivityResult.mobile
은 모바일 데이터로 연결되었음을 나타냅니다. 마지막으로, ConnectivityResult.wifi
는 와이파이로 연결되었음을 나타냅니다.
3. 인터넷 연결 상태 변화 감지하기
앱에서 인터넷 연결 상태의 변화를 감지하고 싶은 경우, Connectivity
클래스의 onConnectivityChanged
스트림을 사용할 수 있습니다. 이 스트림을 등록하면, 인터넷 연결 상태가 변경될 때마다 알림을 받을 수 있습니다.
import 'package:flutter/material.dart';
import 'package:connectivity/connectivity.dart';
class ConnectivityPage extends StatefulWidget {
@override
_ConnectivityPageState createState() => _ConnectivityPageState();
}
class _ConnectivityPageState extends State<ConnectivityPage> {
StreamSubscription<ConnectivityResult> subscription;
@override
void initState() {
super.initState();
subscription = Connectivity().onConnectivityChanged.listen((ConnectivityResult result) {
if (result == ConnectivityResult.none) {
// 인터넷에 연결되어 있지 않음
} else if (result == ConnectivityResult.mobile) {
// 모바일 데이터로 연결됨
} else if (result == ConnectivityResult.wifi) {
// 와이파이로 연결됨
}
});
}
@override
void dispose() {
subscription.cancel();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold();
}
}
위의 예제 코드는 ConnectivityPage
클래스에서 인터넷 연결 상태를 감지하는 기능을 구현한 것입니다. initState
메서드에서 onConnectivityChanged
스트림을 등록하고, dispose
메서드에서 등록된 스트림을 해지하도록 하였습니다.
이제 앱에서 인터넷 연결 상태를 실시간으로 감지할 수 있습니다.
마무리
플러터에서 인터넷 연결 상태를 확인하는 방법에 대해 알아보았습니다. connectivity
패키지를 이용하여 간편하게 인터넷 연결 상태를 확인할 수 있고, 변화감지를 통해 사용자 경험을 더욱 개선할 수 있습니다. 플러터 앱 개발 중에는 항상 사용자의 인터넷 연결 상태를 고려하고 적절히 처리해야 합니다.
참조: