[flutter] 플러터에서 device_info 패키지를 이용하여 디바이스의 소프트웨어 키보드 지원 여부 확인하기

플러터(Flutter)는 크로스 플랫폼 앱 개발을 위한 아주 강력하고 유연한 프레임워크입니다. 이러한 플러터를 사용하면 안드로이드와 iOS 앱을 동시에 개발할 수 있고, 한 번의 코딩으로 다양한 디바이스에서 실행할 수 있습니다.

플러터에서는 device_info 패키지를 통해 현재 실행 중인 디바이스의 정보를 확인할 수 있습니다. 디바이스의 소프트웨어 키보드 지원 여부는 앱의 사용자 인터페이스(UI)를 구성하는데 중요한 요소 중 하나입니다. 따라서 이를 확인하기 위해 device_info 패키지를 사용해 보겠습니다.

1. device_info 패키지 추가하기

pubspec.yaml 파일에 device_info 패키지를 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  device_info: ^2.0.0

패키지를 추가한 후 flutter packages get 명령어를 실행하여 패키지를 다운로드 받습니다.

2. device_info 패키지 사용하기

device_info 패키지를 사용하려면 먼저 해당 패키지를 가져와야 합니다.

import 'package:device_info/device_info.dart';

이제 디바이스의 소프트웨어 키보드 지원 여부를 확인해 보겠습니다. 다음 코드를 사용하여 현재 디바이스의 키보드 지원 여부를 알 수 있습니다.

DeviceInfoPlugin deviceInfo = DeviceInfoPlugin();
AndroidDeviceInfo androidInfo = await deviceInfo.androidInfo;
bool isKeyboardSupported = androidInfo.isPhysicalDevice;

위 코드는 안드로이드 디바이스에서 소프트웨어 키보드를 지원하는 경우 isPhysicalDevicefalse를 반환하고, 하드웨어 키보드를 지원하는 경우 true를 반환합니다.

iOS에서는 다른 방법을 사용해야합니다.

3. iOS에서 소프트웨어 키보드 지원 여부 확인하기

iOS에서는 device_info 패키지 대신에 system_info 패키지를 사용하여 소프트웨어 키보드 지원 여부를 확인할 수 있습니다. 따라서 먼저 system_info 패키지를 추가해야 합니다.

dependencies:
  system_info: ^2.1.0

패키지를 추가한 후 flutter packages get 명령어를 실행하여 패키지를 다운로드 받습니다.

system_info 패키지를 가져옵니다.

import 'package:system_info/system_info.dart';

이제 iOS 디바이스의 소프트웨어 키보드 지원 여부를 확인해 보겠습니다.

bool isKeyboardSupported = !SysInfo.isIOS;

위 코드는 iOS 디바이스에서 소프트웨어 키보드를 지원하지 않는 경우 isKeyboardSupportedfalse를 반환하고, 지원하는 경우 true를 반환합니다.

결론

플러터의 device_info 패키지와 system_info 패키지를 사용하여 소프트웨어 키보드 지원 여부를 확인하는 방법을 알아보았습니다. 이를 통해 다양한 디바이스에서 앱을 구동할 때, 디바이스의 키보드 지원 여부에 따라 사용자 경험을 개선할 수 있습니다.

References