[flutter] 플러터에서의 device_info 패키지를 이용한 언어 설정 정보 확인하기

안녕하세요! 이번 게시물에서는 Flutter 앱에서 현재 사용자의 언어 설정 정보를 확인하는 방법에 대해 알아보겠습니다. 이를 위해 device_info 패키지를 사용할 것입니다.

device_info 패키지란?

device_info 패키지는 Flutter 앱에서 현재 장치의 정보를 얻을 수 있도록 도와주는 패키지입니다. 이 패키지를 사용하면 사용자의 언어 설정 정보뿐만 아니라 다양한 장치 정보를 확인할 수 있습니다.

패키지 설치하기

먼저, device_info 패키지를 설치해야 합니다. pubspec.yaml 파일에 다음과 같이 패키지를 추가해주세요:

dependencies:
  device_info: ^2.0.0

설치를 완료하려면 프로젝트 루트 디렉토리에서 다음 명령어를 실행하세요:

flutter pub get

언어 설정 정보 확인하기

이제 device_info 패키지를 사용하여 언어 설정 정보를 확인해보겠습니다. 다음은 해당 코드 예시입니다:

import 'package:flutter/material.dart';
import 'package:device_info/device_info.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Language Info',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: LanguageInfoPage(),
    );
  }
}

class LanguageInfoPage extends StatefulWidget {
  @override
  _LanguageInfoPageState createState() => _LanguageInfoPageState();
}

class _LanguageInfoPageState extends State<LanguageInfoPage> {
  final DeviceInfoPlugin deviceInfoPlugin = DeviceInfoPlugin();
  String language = '';

  @override
  void initState() {
    super.initState();
    getLanguageInfo();
  }

  Future<void> getLanguageInfo() async {
    try {
      if (Theme.of(context).platform == TargetPlatform.android) {
        AndroidDeviceInfo androidInfo = await deviceInfoPlugin.androidInfo;
        setState(() {
          language = androidInfo.deviceLocale.toString();
        });
      } else if (Theme.of(context).platform == TargetPlatform.iOS) {
        IosDeviceInfo iosInfo = await deviceInfoPlugin.iosInfo;
        setState(() {
          language = iosInfo.locale.toString().substring(0, 2);
        });
      }
    } catch (e) {
      print('Error: $e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Language Info'),
      ),
      body: Center(
        child: Text(
          'Current language: $language',
          style: TextStyle(fontSize: 24),
        ),
      ),
    );
  }
}

위의 코드는 Flutter 앱에서 device_info 패키지를 사용하여 언어 설정 정보를 확인하는 예제입니다. DeviceInfoPlugin 인스턴스를 생성하고, 해당 장치의 정보를 가져오는 getLanguageInfo() 함수를 정의합니다. Android와 iOS 플랫폼에 따라 다른 방식으로 언어 설정 정보를 가져옵니다.

메인 화면에서는 현재 언어 설정 정보를 보여주는 텍스트 위젯을 출력합니다.

결론

device_info 패키지를 사용하면 Flutter 앱에서 현재 장치의 언어 설정 정보를 손쉽게 확인할 수 있습니다. 위의 예제를 참고하여 앱에 필요한 정보를 활용하시기 바랍니다.

더 자세한 내용은 device_info 패키지의 공식 문서를 참고하세요.

감사합니다!