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