[flutter] get_it을 사용한 OCR(광학 문자 인식)

이번 글에서는 OCR(광학 문자 인식)을 구현하기 위해 Flutter 앱에서 get_it을 사용하는 방법에 대해 알아보겠습니다.

1. get_it이란?

get_it의존성 관리 패키지로, Flutter 애플리케이션에서 객체를 쉽게 관리하고 검색할 수 있게 해줍니다. 이를 통해 의존성 주입(Dependency Injection)을 구현할 수 있고, 객체 간의 느슨한 결합을 유지할 수 있습니다.

2. OCR 기능 구현

OCR(광학 문자 인식)을 구현하기 위해 google_ml_kit 패키지를 사용할 것입니다. 그리고 이를 통해 이미지에서 텍스트를 추출합니다.

// main.dart
import 'package:flutter/material.dart';
import 'package:google_ml_kit/google_ml_kit.dart';
import 'package:get_it/get_it.dart';

void main() {
  GetIt.I.registerLazySingleton(() => TextDetector.instance);
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'OCR App',
      home: MyHomePage(),
    );
  }
}

3. OCR 서비스 사용

이제 OCR 서비스를 사용하여 이미지에서 텍스트를 추출하는 코드를 작성해보겠습니다.

// ocr_service.dart
import 'package:google_ml_kit/google_ml_kit.dart';
import 'package:get_it/get_it.dart';

class OCRService {
  final TextDetector _textDetector = GetIt.instance<TextDetector>();

  Future<String> extractTextFromImage(InputImage inputImage) async {
    final RecognisedText recognisedText = await _textDetector.processImage(inputImage);
    return recognisedText.text;
  }
}

4. get_it을 이용한 의존성 주입

get_it을 사용하여 OCRService 객체를 주입하고, 이를 활용하여 OCR 기능을 활성화합니다.

// main.dart
import 'ocr_service.dart';

void main() {
  GetIt.I.registerLazySingleton(() => OCRService());
  runApp(MyApp());
}

5. 결론

이제 Flutter 앱에서 get_it을 사용하여 OCR(광학 문자 인식) 기능을 구현할 수 있습니다. get_it을 통해 의존성을 쉽게 관리하고 객체 간의 느슨한 결합을 유지할 수 있습니다.

google_ml_kit 패키지의 강력한 기능과 get_it을 통해 관리되는 OCR 서비스 객체를 활용하여 더 나은 사용자 경험을 제공할 수 있을 것입니다.

6. 참고 자료