FlutterとGeminiを使った英単語帳をリリースしました
つい先週、久しぶりに新しいアプリをリリースしました。
このアプリは、Flutter大学の共同開発15で企画して作ったものです。タオルさん、どんぐりさんと共に開発しました!
どんなアプリか
単語を検索して登録できて、その英単語をタップすると、GeminiのAPIを叩いて例文を作ってくれるアプリになっています。
僕は最近1日3時間くらい英語を勉強しているのですが、その中で使っているアプリの英二郎とChatGPT等の生成AIを組み合わせてシンプルにしたようなアプリです。
Flutter大学に入っている型であれば、GitHubリポジトリも見ることができます。
技術紹介と感想
Gemni API、Flutterから使いやすい
Flutterのgoogle_generative_aiというpackageを使うと、APIKeyさえ作っちゃえば、あとは以下のようなシンプルな形で、APIを叩けます。
final prompt = '''
以下の英語のフレーズを使った英語の例文を3つ教えてください。
---
$post
---
例文と例文の間は1行あけてください。
また、1. 2. 3. などの番号は不要です。
例文の下には日本語訳もつけてください
''';
final model = GenerativeModel(
model: 'gemini-pro',
apiKey: Const.geminiApiKey,
safetySettings: safetySettings,
);
final content = [
Content.text(prompt),
];
return model.generateContentStream(content).map((response) {
return response.text ?? 'No response because Gemini API went wrong.';
});
GPTのAPIもありますが、API Keyもすぐ作れたし、無料枠も結構あるし、Flutterから非常に使いやすいなと思いました。
Datamuse APIが便利
単語を検索するときは、Datamuseという一定回数無料のAPIを使っているのですが、これも非常に便利で、単語検索時に困ることはほぼありません。
OCRも簡単にできた
google_mlkit_text_recognitionというpackageを使っているのですが、非常に簡単に画像から文字を抽出できました。特に通信をすることもなく、このpackageだけで画像から文字を抽出できます。
ちなみに、OCR機能を入れた理由は、僕が英語でワンピースなどのアニメを見て楽しみながら勉強しているのですが、わからない単語が出てきた時に字幕をスクショで取ってインポートしたいなと思ったからです。
まとめ
ということで、単語帳の紹介でした。非常にシンプルなのですが、現代で使えるスマホ技術をふんだんに使って、packageもふんだんに使って、非常に短い時間で欲しいアプリが作れたので満足しています。
Discussion