본문 바로가기

06. 앱

00013. [APP-00002] 사진 기반 식물/동물 인식 앱 개발기 #4

반응형

#4. 이미지 전송 및 AI API 연동 준비하기

이번 편에서는 선택한 이미지를 AI API로 전송할 준비를 해볼게. 그 첫 단계로는 이미지를 Base64 형식으로 변환하는 것부터 시작하자.


🧩 1단계: 이미지 Base64 인코딩하기

Flutter에서는 dart:convertbase64Encode()를 이용해서 파일 데이터를 인코딩할 수 있어.

lib/services/image_encoder.dart 파일 생성:

import 'dart:convert';
import 'dart:io';

Future<String> encodeImageToBase64(File imageFile) async {
  final bytes = await imageFile.readAsBytes();
  return base64Encode(bytes);
}

🔐 Base64는 이미지 파일을 문자열로 바꿔서 API 요청 시에 본문에 넣을 수 있게 도와줘.


🌱 2단계: Plant.id API 구조 파악하기

API 문서:

요청 예시 (요약):

POST /identify HTTP/1.1
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
{
  "images": ["base64_encoded_image"],
  "organs": ["leaf"],
  "similar_images": true
}

📦 3단계: http 패키지 설치

pubspec.yaml에 다음 추가:

dependencies:
  http: ^0.13.5

그리고 flutter pub get을 잊지 말자!


🔐 4단계: API 키 보안 관리

API 키는 민감한 정보니까 직접 코드에 쓰지 않고 .env 파일이나 별도 보관이 필요해. 여기선 간단하게 lib/secrets.dart 파일로 따로 관리하자.

lib/secrets.dart

const String plantIdApiKey = 'YOUR_API_KEY_HERE';

실제 릴리즈 시에는 .env 또는 secure storage 적용을 고려해봐.


다음 에피소드 예고

#5. 식물 인식 결과 받아오기 (Plant.id 연동 실전)

  • API 요청 보내기
  • 결과 파싱해서 표시하기
  • 로딩 상태 및 오류 처리
반응형