React Native Tips

React Nativeの実務で役立つサイト。私自身が実際に実装するとき、情報が少なくて困ったものを中心に記事にしていきます。

名称未設定のデザイン-25.png

LangJournalの開発環境

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

外国語の勉強をしたい人はぜひこちらをダウンロードして試しみてください。

LangJournalのダウンロードはこちら

日記習慣で語学を身につけよう!

このブログで取り上げている、私が開発・運営しているアプリ名は「LangJourunal」です。一般的な日記機能に加えて、添削AIがついております。日記で語学を習得したい人向けアプリです。

英語、ドイツ語、スペイン語、フランス語、ポルトガル語、オランダ語 に対応しております。React Nativeだけでなく、語学もぜひ勉強しましょう!

アプリの詳細はこちら
DaikiLangJournalの開発環境
Share this post

Join the conversation