🕰️

アプリ開発初心者がFlutterを使って1ヶ月でアプリを開発した話

2024/06/08に公開

こんにちは!
普段RailsやNext.jsを使ってWebアプリを開発しているhigakijinです

今回は、アプリ開発が未経験だった私が、Flutterを使ってたったの1ヶ月で単語学習アプリを開発し、リリースするまでをご紹介したいと思います!

どんなアプリを作った?

韓国語の単語学習アプリを開発しました!

https://apps.apple.com/jp/app/アルダ-圧倒的に覚えられる韓国語単語/id6502430478




最近、韓国語の勉強をしています。
なので、特に単語を学習できるアプリを探したのですが、なかなかピッタリのものが見つからず、さらに資格勉強となるとほとんどなかったため、自分で開発することにしました。

アプリのUI/UXは、英語の単語学習アプリで有名な「mikan」を参考にさせていただきました(だからオレンジ色を多用している)

どんな技術を使っている?

Flutterを使いました!あとは特に使用していません。

アプリの内容が、単語を表示させて正誤判定をするだけなので、バックエンドが不要でした
単語は、CSVファイルをflutterプロジェクト内に設置し、それをJSON形式に変換することで、Dart(flutter)の変数に持たせることができました。

サーバー代がかからないのがWebと違って嬉しいところですね!

また、Flutterのフレームワークに「Nylo」を採用しました
https://nylo.dev/
https://github.com/nylo-core/nylo

スター数が500弱(執筆時)というマイナーなフレームワークですが、余計なことを考えずにflutterの開発をできる点で非常に優れています。

例えば、

  • 状態管理
  • ページの作成
  • ファイル構造(アーキテクチャ)
  • カラー
  • フォント
  • フォームのバリデーション
  • ストレージ
  • ログイン機能

などが設定されており、他のライブラリを入れることなくスムーズに開発がスタートできます

なのでRiverpodなどの学習にコストをかけることなく、最低限のFlutterの知識とNyloのドキュメントを理解していれば、問題なく開発をすることができました!
(Chat GPTにもたくさん助けてもらった)

なぜReact Nativeを使わなかった?

実はFlutterを採用する前に、React Nativeと迷っていました。
Next.jsに慣れているためTypescriptをモバイル開発でも使用できるメリットがあるのですが、Expoのビルド時間が長すぎて、結局採用しませんでした。

Expoの無料プランでは、apkファイルを作成するまでに30分ほどかかり、実機で動作検証をするのに膨大な時間がかかります。
個人開発者にとってはモチベーション維持が一番重要ですので、そういったつまらない弊害は避けるべく、React Native案はボツにしました。

ちなみにDart言語は全く難しくなかったです!慣れって重要ですね

失敗したことは?

1つ目は、Android版のリリースです。
Playストアの審査自体は厳しくないのですが、2023年11月からアプリをリリースする前に20名以上の方にテストを実施しなければいけなくなったため、断念しました。
https://xtech.nikkei.com/atcl/nxt/column/18/00086/00290/

この規約は、個人開発者には本当に辛いです
(周りに20人もAndroidユーザーがいないし、かといって集客を頑張ったり、報酬を用意してまでテストしてもらうモチベもなかった)

2つ目は、iPadを非対応にしておかなかったことです。
Appleストアでストア画像を提出する際に、「iPadのストア画像でiPhoneの画像を使用しないでください」と指摘され、困ってしまいました。
今度から、Flutterプロジェクトを作成した段階で、iPadは非対応にしておきます

逆に成功したことは?

とにかくリリースできたことです!iOS版だけですが、自分の開発したアプリがストアに並んだ嬉しさは一生忘れられないと思います!
まだまだバグだらけで、使いにくいところもたくさんあるのですが、「とにかくリリースしないことには始まらない!」の精神で進めてきたので、リリースできただけでも自分の中では大きな一歩です!

今後の展望

現在大学四年生の私ですが、将来は起業したいなーとぼんやり思っています
今までWebアプリを中心に開発してきたので、ネイティブアプリを開発した経験が増えると、それに付随してアイディアの幅が広くなった気がします!

将来ビジネスをする上で、今回のFlutterでアプリを開発した経験は必ず生きると確信しているので、今後も様々な領域の技術に手を出していこうと改めて思いました!

ということでみなさん、アルダ、使ってください!
https://apps.apple.com/jp/app/アルダ-圧倒的に覚えられる韓国語単語/id6502430478

(あといいねもください!)

Discussion