

Block, Line, Element로 Text를 분류해서 확인해서 볼 수 있다.
먼저 google_mlkit_text-recognition 라이브러리를 다운받아야한다.

의존성에 얘네 설치한다.
android > app> build.gradle > deafultConfig의 minSdkVersion을 21로 변경한다.
그리고 텍스트인식에 사용하려는 언어도 android > app > build.gradle > dependencies 안에 implementation 해줘야한다.

텍스트 인식할 때 빨간 겉줄 canvas에 좀 그려줘야하는 작업이 있는데 나중에 강의보고 해야할듯. 만약 필요하다면
Flutter와 네이티브(Android, IOS) 코드 간의 통신을 가능하게 해주는 기능.
채널 이름을 통해 Flutter와 네이티브 코드가 서로 연결.
Android는 android/app/src/main/kotlin/com/example/프로젝트명/MainActivity.kt
IOS는 ios/Runner/AppDelegate.swift
위 위치에서 네이티브 코드를 짜줌.
import UIKit
import Flutter
import AVFoundation
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
private let CHANNEL = "com.example.camera/native"
var flutterResult: FlutterResult?
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
let controller = window?.rootViewController as! FlutterViewController
let methodChannel = FlutterMethodChannel(name: CHANNEL, binaryMessenger: controller.binaryMessenger)
methodChannel.setMethodCallHandler { (call: FlutterMethodCall, result: @escaping FlutterResult) in
if call.method == "openCamera" {
self.flutterResult = result
self.openCamera(controller: controller)
} else {
result(FlutterMethodNotImplemented)
}
}
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
func openCamera(controller: FlutterViewController) {
if UIImagePickerController.isSourceTypeAvailable(.camera) {
let picker = UIImagePickerController()
picker.sourceType = .camera
picker.delegate = self
controller.present(picker, animated: true, completion: nil)
} else {
flutterResult?("카메라를 사용할 수 없습니다.")
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
flutterResult?("사진이 성공적으로 촬영되었습니다!")
picker.dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
flutterResult?("카메라 촬영이 취소되었습니다.")
picker.dismiss(animated: true, completion: nil)
}
}
IOS의 경우 이렇게 짜는거라함. < 기선님께 확인받기.