[flutter] get_it을 활용한 앱 키오스크 모드
본 게시물에서는 Flutter 앱에서 Kiosk 모드(Kiosk mode)로 전환하는 방법을 소개합니다. Kiosk 모드란 사용자가 특정 앱을 사용하는 동안 다른 앱으로 전환되지 않도록 하는 모드를 말합니다.
get_it 패키지 소개
get_it은 Flutter 앱에서 서비스 locator를 관리할 수 있게 해주는 패키지입니다. 이를 통해 각각의 화면 또는 클래스에서 직접적으로 서비스를 생성하거나 호출하지 않고, get_it을 통해 필요한 서비스를 가져와 사용할 수 있습니다.
Kiosk 모드 작성
Kiosk 모드를 작성하기 위해서는, 다음과 같은 단계를 따릅니다.
- get_it 패키지를 설치합니다.
pubspec.yaml
파일에 다음을 추가합니다.dependencies: get_it: <latest_version>
-
get_it
을 초기화한 후, 앱이 Kiosk 모드로 실행되는지 여부를 판단하는 플래그를 설정해야 합니다.import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; final getIt = GetIt.instance; void main() { WidgetsFlutterBinding.ensureInitialized(); // ... 다른 초기 설정 getIt.registerLazySingleton(() => KioskService()); // Kiosk 모드 여부를 저장하는 플래그 getIt.registerSingleton<KioskMode>(KioskMode()); runApp(MyApp()); }
-
다음으로, Kiosk 모드 여부를 관리할
KioskMode
클래스를 생성합니다.import 'package:flutter/material.dart'; class KioskMode with ChangeNotifier { bool _isInKioskMode = false; bool get isInKioskMode => _isInKioskMode; void enableKioskMode() { _isInKioskMode = true; notifyListeners(); } void disableKioskMode() { _isInKioskMode = false; notifyListeners(); } }
-
마지막으로, 앱의 각 화면에서 Kiosk 모드 설정을 관리합니다.
import 'package:flutter/material.dart'; import 'package:get_it/get_it.dart'; class HomeScreen extends StatelessWidget { final KioskMode _kioskMode = getIt.get<KioskMode>(); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Home'), ), body: Center( child: ElevatedButton( onPressed: () { _kioskMode.enableKioskMode(); // Kiosk 모드 활성화 }, child: Text('Enable Kiosk Mode'), ), ), ); } }
위의 단계를 따라서 get_it
패키지를 활용하여 Flutter 앱에서 Kiosk 모드를 구현할 수 있습니다. Kiosk 모드는 특정 업무나 이벤트에서 사용자가 특정한 기능만을 사용할 수 있도록 하는 등 다양한 상황에서 유용하게 활용될 수 있습니다.
더 많은 기능과 설정을 살펴보려면 get_it 공식 문서를 참고하세요.