メインコンテンツへスキップ
【flutter×AI】AIを使い倒し2週間でAndroidアプリをリリースしてみた【個人開発】
  1. Posts/

【flutter×AI】AIを使い倒し2週間でAndroidアプリをリリースしてみた【個人開発】

loading · loading ·

時々訪れる「アプリ開発欲」に駆られ、この度個人開発したAndroidアプリをGoogle Play Storeにリリースしました。

その名もベトナム語 漢越語検定アプリです。

Alt text

ベトナム語の中には漢越語と呼ばれる「日本語」に近い読み方をする単語が多数存在します。

そんなベトナム漢越語の単語のみを集めたクイズアプリです。

ベトナム語を勉強している方やベトナム語に馴染みのない方も楽しく学習ができるアプリを開発しました。

上記リンクから無料でダウンロードできますので、ご興味のある方はぜひ一度ダウンロードして遊んでみてください。

前置きはそのくらいにして、本記事ではそんな「ベトナム語 漢越語検定」アプリを2週間で開発した際に苦労した点をご紹介できればと思います。

この記事は以下のような方を対象者としています。

  • flutterでアプリ開発をしたい方
  • 個人のアプリ開発でどのようにAIを使うのか知りたい方
  • アプリ開発自体に興味がある方

前置き:愛用しているAIサービス
#

今回開発期間を短縮するため、大部分のソースコードをMerlin AIのGPT3.5で生成してもらっていました。

Merlin AIはChatGPT連携サービスの一つで、私はGoogle拡張を入れて使っています。

Macの場合はブラウザにいる状態でCmd+Mを押下するとMerlin AIの呼び出しが簡単にできて、かつ1日100回(GPT3.5の場合)質問ができるので愛用しています。

今回のアプリ開発でも何度も質問しコードの生成をしてもらいました。

個人アプリ開発でflutterを採用した理由
#

今回Androidアプリを開発するにあたって、kotlinではなくflutterを選んだ理由は以下の通りです。

  • flutterの実務経験があり、開発知見があること
  • 将来的にiOS/Android両方への展開を考えているため
  • flutterのライブラリが豊富
  • flutterが単純に好き

flutterの個人開発で苦労した点
#

flutterでアプリを開発するにあたって苦労した点は下記の通りです。

  • 以前開発したアプリのコード再利用が難しい
  • どうやって直感的なアプリを実現するか
  • flutterの各ライブラリ間のバージョン依存問題

flutterアプリ開発で苦労した点その1 : コードの再利用が難しい
#

当初の計画では、以前開発したflutterアプリのコードをベースコードとして利用し実装工数の削減を考えていました。

以前のコードでは2系(2.x)のflutterバージョンを利用していたため、3系(3.x)へflutterのバージョン更新を行う必要がありました。

しかし、公式の通りに実装してもflutterバージョン更新がうまくいきませんでした。

そのため、コードの再利用は諦めflutterプロジェクトを3系で作り直し作業をすることにしました。

結果として、古いコードの再利用をするよりも3系でflutterのプロジェクトを作成し、Merlin AIにガシガシコード生成した方が断然早かったです。

なので、コードの再利用を諦める判断をしてよかったと思います。

flutterアプリ開発で苦労した点その2 : 直感的なデザイン
#

直感的なアプリのデザインを実現する上で大事なのは「説明がなくても使い方がわかる」ことだと思います。

逆に説明ばかり(テキストばかり)にしてしまうと、画面上の情報量が増えてみづらくなってしまいます。

そのため、なるべくテキストを減らしアイコンで表現することを心がけました。

今回ベトナム語漢越語検定アプリを開発する上でデザイン関連のことで気をつけた点は次のとおりです。

  • テキストではなくアイコンで伝える(例:ハートアイコン = 残りライフ)
  • ずっと使っても疲れない色をテーマカラーにする
  • 色は使いすぎない(Maxで2種類の色のみ利用する)
  • 文字入力はユーザにさせない(入力はユーザにとって手間のかかる操作なので)

特にデザインについてのアイデアは、AIに聞いても納得できる回答が得られないことが多かった印象です。(自分のプロンプトが良くないのもありますが。。)

そのため、デザインについてはAI頼みにせず自分で調査し決める方が良いと思いました。

flutterアプリ開発で苦労した点その3 : flutterライブラリ間の依存関係
#

flutterでは基本的にさまざまなライブラリをインストールしアプリを作っていくのですが、ライブラリ間の依存関係がすごく複雑です。

例えば、ライブラリAを最新の状態に上げると、ライブラリBやCのバージョンと依存関係が合わなくなりエラーになるといったことが多かったです。

そのため、いくつかのライブラリは最新版ではなく安定版(新しくも古くもない中間あたりのバージョン)で利用しています。

flutterのライブラリの更新周期も短いです。

そのため、なるべく最新版にして更新の手間を後ろに倒したかったのですが叶いませんでした。

おそらく、近い将来で各ライブラリのバージョン調整が必要になると思います。

さいごに
#

ここまでお読みいただきありがとうございました。

私のブログ記事を読んでいる方の中には海外転職・海外移住への興味がある方もいらっしゃるかと思います。

私自身ダナンで働き始めて7年目になりますが、海外就職を実現するために大事なのは英語力と開発現場で働いた経験だと感じました。

もし今後海外移住・海外就職を本気で実現させたい方はぜひこれらのサービスを活用してみてください。

レアジョブ - 実務で使える英語力を身につけよう
#

レアジョブ英会話は英会話力の向上に特化したサービスです。 私の友人もレアジョブを通じて0から学習を続け、現在はベトナム人のエンジニアとも英語でコミュニケーションが取れるレベルまで英会話力を伸ばすことができました。

レアジョブが選ばれる理由は多岐にわたりますが、主な理由としては下記3点が考えられます。

  • 優秀な講師陣:公用語が英語であるフィリピン人の方が講師となり、生きた英語を身につけることができる
  • 豊富な教材: 5,000以上の教材を提供しており、学習者のレベルや目的に応じて最適な教材を選べます。
  • 安心のサポート体制:初心者でも安心して始められるように、日本人カウンセラーが学習のサポートをしてくれます。

海外移住計画の第一歩として、スピーキング力を身につけたいと考えている方は、ぜひこちらの無料体験を試してみてはいかがでしょうか。

Related

【Flutter】リリースビルドで画面がグレー(灰色)になる現象の解決方法をわかりやすく解説
loading · loading
【アプリ開発】個人開発で広告収益を上げるための6つのポイントを解説
loading · loading
【Flutter】リワード広告をアプリ内に表示するやり方をわかりやすく解説【Admob】
loading · loading