- アプリイメージ画像
- コンセプト
- なぜ作ったのか?
- 実装機能(できること)
- 使用技術
- (★)技術的なこだわり
- 難しかったこと
- 技術的に学んだこと
- (★)マインド的なこだわり
- ユーザーフィードバックにより改善したこと
- アプリの改善点(ユーザーからのフィードバックを元に)
- 今後学びたい技術
- 従来の単語帳の様な「英語⇄日本語」で記憶するのではなく、「英語⇄イメージ」で記憶することで英語脳を作ろう
参考画像(出典:https://fun-english.net/what-is-eigonou/ )
- 現在中国語を学習しており、その学習の質を向上させるため
(中国に向けたサービス開発に興味がある。) - ユーザーが付くアプリに必須な、リッチなUIを実装できるようになるため
(ReactのUIコンポーネントライブラリを試す中で、TypeScriptやFirebaseについても理解を深めようと考えた。)
- ログイン機能
- ゲストorメアドでログインできる
- クイズ機能
- クイズができる
- 結果は自動で保存される
- 復習機能
- 覚えた単語の数を確認できる
- 覚えた単語にチェックができる
- 単語ごとにイメージ画像が確認できる
| 項目 | 詳細 |
|---|---|
| フロントエンド | TypeScript, React |
| デプロイ先 | Firebase Hosting |
| DB | Cloud Firestore |
| 認証 | Firebase Authentication |
| API作成 | Cloud Functions |
| CD | GitHub Actions |
| Formatter | Prettier |
| UIライブラリ | Chakra UI |
- 単語の数や種類を拡張できる構造にしたこと
- クイズを最初にロードすることでUXの向上を図ったこと
- 「再利用するコンポーネント」と「1度のみ利用するコンポーネント」をフォルダで分ける設計にしたこと
- 知識が少ない中でも、ドキュメントを読み解く必要があったこと(Qiitaなどに逃げない)
- stateの管理場所を間違え、コードをほどき直す必要がでたこと
- TypeScript
- 名前補完が効くこと
- 型を使い回すことができること
- 型定義で堅牢なアプリが作れること
- React
- コンポーネント単位でUIを構築できること
- stateで状態管理ができること
- Firebase
- アプリが公開しやすいこと
- サーバー管理が不要であること
- 多様な機能があるので拡張性があること
- ミニマムな機能でも、デプロイして使ってもらうこと
- チーム開発のように、プルリク/レビュー/マージまでを擬似的に実践したこと
- アドバイスをしてもらっていた先輩の時間を奪わないように、質問仕方を意識したこと
- 学んだことをZennで発信し、知識定着を狙ったこと*Zennアカウントへ
- クイズの表示速度を向上させた
- テスト結果を単語帳に保存できるようにした
- Firestoreとの通信速度の改善(必要な部分だけ取得・更新する)
- クイズをプリロードをする検討
- ゲスト会員から正規会員へ変更する導線を作る
- 音で正誤を判定できるようにする
- 間違えた問題のみのクイズ機能を作る
- フロントエンド
- GitHub Actions(CI&CD)
- Redux
- Next.js
- Sass
- 自然言語処理 API(GCP)
- Cloud Natural Language
- Cloud Speech-to-Text




