FlutterとGeminiを使った英単語帳をリリースしました

2024/04/09に公開

つい先週、久しぶりに新しいアプリをリリースしました。

https://apps.apple.com/jp/app/id6480291526

このアプリは、Flutter大学の共同開発15で企画して作ったものです。タオルさんどんぐりさんと共に開発しました!

どんなアプリか

単語を検索して登録できて、その英単語をタップすると、GeminiのAPIを叩いて例文を作ってくれるアプリになっています。

僕は最近1日3時間くらい英語を勉強しているのですが、その中で使っているアプリの英二郎とChatGPT等の生成AIを組み合わせてシンプルにしたようなアプリです。

Flutter大学に入っている型であれば、GitHubリポジトリも見ることができます。
https://github.com/flutteruniv/tango

技術紹介と感想

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を使っているのですが、これも非常に便利で、単語検索時に困ることはほぼありません。

https://www.datamuse.com/api/

OCRも簡単にできた

google_mlkit_text_recognitionというpackageを使っているのですが、非常に簡単に画像から文字を抽出できました。特に通信をすることもなく、このpackageだけで画像から文字を抽出できます。

ちなみに、OCR機能を入れた理由は、僕が英語でワンピースなどのアニメを見て楽しみながら勉強しているのですが、わからない単語が出てきた時に字幕をスクショで取ってインポートしたいなと思ったからです。

まとめ

ということで、単語帳の紹介でした。非常にシンプルなのですが、現代で使えるスマホ技術をふんだんに使って、packageもふんだんに使って、非常に短い時間で欲しいアプリが作れたので満足しています。

https://apps.apple.com/jp/app/id6480291526

Flutter大学

Discussion