LangJournalとは外国語で書いた日記を即座にAIが添削できるスマホアプリです。「日記習慣で語学を身につけよう」というコンセプトのアプリです。
私一人で、休日や仕事終わりに開発しております。この記事では、LangJournalの開発環境と開発言語を紹介していきます。
選定理由
私がReact Nativeエンジニアであるため、このアプリでもReact Nativeを採用しました。React Nativeの一番の魅力はやはり、AndroidとiOSを1コードで実装できることです。
選定理由
LangJournalの開発にはExpoを採用しています。React Nativeでアプリの実装を始める時、Expoを使うかどうか悩むと思います。私は絶対使うべきだと思います。
理由は、Expoのデメリットがほぼないからです。確かに、2020年くらいまでは、Expoでは実装できないとされていた機能が数多くありました。例えば、決済機能がない、YouTube動画の再生がうまくいかない、などなど。しかし、現在のExpo(Version48)でできないことはほぼないです。
そのほかのメリットとしては、下記があります。
・リリースが簡単にできる・・・EASという非常に便利な機能がある
・メンテナンスが簡単にできる・・・Expoのアップデートをすれば他のパッケージも合わせてアップデートされる
選定理由
React Nativeが書けるエンジニアならReactは抵抗なく書けるため、管理画面はReactを選ぶのが一番無難でしょう。LangJournalでもそうしました。
選定理由
LangJournalではAWSサーバーを立てて、MySQLを入れて、、、などということはしておりません。バックエンド機能はFirebaseに集約しております。
個人開発ではできる限り、ソース量を減らすことが大事だと私は思います。「日中に仕事をして、空いた時間でアプリを作る」となると、できる限りソース量は減らした方がいいです。
実際に使っているFirebaseの機能
・Authentication・・・ログイン関連
・Storage・・・ユーザーがアップする音声データ
・Analytics・・・データ解析
・Functions・・・バックエンド処理は全てここで実装
・Cloud Firestore・・・DB(NoSQL)
デメリット
データ量が多くなったときに、Cloud Firestoreだと速度が遅くなるのが懸念です。
過去にCloud Firestoreを使うアプリ開発のプロジェクトに参加したことがあります。その時は、規模が大きくなるにつれ速度が遅くなりました。最終的にはRDBに移行しました。移行後、速度は劇的に改善しました。
もちろんデータの持ち方やインデックスの設定でNoSQLでも速度改善できます。なので、まずはこのまま進めます。ただ、将来的にはCloud FirestoreからMySQLなどのRDBに移行すること検討しております。
外国語学習に興味がある方は、ぜひLangJournalをダウンロードしてご利用ください。
LangJournalのダウンロードはこちら
LangJournalは、日記を書くことで英語やフランス語などの外国語を学べるアプリです。英語学習に興味がある方や、私が開発したこのアプリに関心を持っている方は、ぜひインストールしてお試しください。
LangJournalのサイトはこちら