[flutter] get_it를 사용하여 플러터 앱에서 SMS 및 전화 기능을 어떻게 사용하는가?

이번 글에서는 Flutter 앱에서 get_it 패키지를 사용하여 SMS 및 전화 기능을 어떻게 사용하는지 알아보겠습니다.

get_it 패키지란?

get_it은 의존성 주입을 위한 패키지로, Flutter 앱에서 객체 인스턴스를 관리하고 공유할 수 있도록 도와줍니다. 의존성 주입은 코드를 더 모듈화하고 테스트 가능한 앱을 작성하는데 도움을 줍니다.

SMS 및 전화 기능 사용을 위한 패키지 설치

SMS 및 전화 기능을 사용하기 위해서는 해당 기능을 제공하는 Flutter 패키지를 설치해야 합니다.

SMS 기능 사용을 위해 sms 패키지를 설치합니다:

dependencies:
  sms: ^4.0.0

전화 기능 사용을 위해 flutter_phone_direct_caller 패키지를 설치합니다:

dependencies:
  flutter_phone_direct_caller: ^2.0.0

위의 패키지들을 pubspec.yaml 파일에 추가하고 flutter pub get 명령어를 실행하여 패키지들을 가져옵니다.

get_it 패키지를 사용하여 SMS 및 전화 기능 사용하기

  1. get_it 패키지를 프로젝트에 추가합니다:
dependencies:
  get_it: ^7.1.3
  1. main.dart 파일에서 get_it을 초기화합니다:
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

void main() {
  setupLocator();
  runApp(MyApp());
}

void setupLocator() {
  GetIt.I.registerSingleton<SmsService>(SmsService());
  GetIt.I.registerSingleton<PhoneCallService>(PhoneCallService());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // 앱 코드 작성
  }
}
  1. SMS 및 전화 서비스를 제공하는 클래스를 작성합니다:
class SmsService {
  void sendMessage(String text, String recipient) {
    // SMS 전송 코드 작성
  }
}

class PhoneCallService {
  void makeCall(String phoneNumber) {
    // 전화 걸기 코드 작성
  }
}
  1. 필요한 곳에서 get_it을 사용하여 SMS 및 전화 기능을 호출합니다:
import 'package:flutter/material.dart';
import 'package:get_it/get_it.dart';

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SMS & 전화 기능 사용하기'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: () {
                SmsService smsService = GetIt.I.get<SmsService>();
                smsService.sendMessage("안녕하세요", "010-1234-5678");
              },
              child: Text("SMS 보내기"),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: () {
                PhoneCallService phoneCallService = GetIt.I.get<PhoneCallService>();
                phoneCallService.makeCall("010-1234-5678");
              },
              child: Text("전화 걸기"),
            ),
          ],
        ),
      ),
    );
  }
}

위의 코드에서는 GetIt.I.get<T>()를 사용하여 SMS 및 전화 서비스 객체의 인스턴스를 가져옵니다. 그러면 해당 객체의 메소드를 호출하여 SMS를 보내거나 전화를 걸 수 있습니다.

이제 Flutter 앱에서 get_it를 사용하여 SMS 및 전화 기능을 쉽게 사용할 수 있습니다. 의존성 주입을 통해 코드를 더욱 모듈화하고 유연하게 개발할 수 있습니다.