Firestoreを使ってチャットアプリを作りました。Firestoreを使ってチャットアプリを作りました。長い正月期間、だらだら過ごさないためにも「気になってた技術全部キャッチアップしてやる!!」と意気込んで取り組みました。正月で家族が集合する中、場の空気を壊さぬよう早起きしたり、夜更かししたり、抜け出したりしながら何とか完走しました。(大いに便宜を図ってくれた妻に感謝。面白くも何ともないただのチャットアプリです。技術のキャッチアップが目的なのでアプリとしてのクオリティはめちゃ低いです。Hostingを使って公開してます。開発環境MacOS上にvagrantで立ち上げた仮想マシン(ubuntu16.04)で開発しました。prettierこの記事で書いてること各種ライブラリの導入手順(主にコマンド)や細かい設定。あと、開発してみての所感など。コードなどは記事の中には書いてません。(実装部分についてはgithubにあげてるのでそちらを参照してください。redux-sagaがすごく大変でした。VuexでのSPA開発でFluxの概念には触れているので、その概念や思想の部分についてはよくわかるし理解できるのですが、実際に実装するとなると考えることが多くて。「技術のキャッチアップ」が目的だったので、妥協せずに公式ドキュメントを読み込んでアンチパターンを踏まないように実装しました。Firestoreについては、無料でdatabase機能やイベントのPub/Sub機能を享受出来るし、ドキュメントも充実してるので、プロトタイプや勉強目的であれば最高に使いやすいなと思いました。SDKなるものを使う必要があるので案外簡単ではないと感じます。巷では「超お手軽簡単」のイメージが強いので、この辺のセキュリティ意識が乏しい人が安易に使うと危ないかもと思いました。TypeScriptについては、最初は「いちいち型定義するのめんどくさい。こんな調子だと日が暮れちまうよ。コンパイルも全然通らんし。慣れるし、思えば指摘がリアルタイムで丁寧だし、何よりコンパイル通りさえすればだいたいバグなく動いてくれるので、トータルで見ると開発効率上がってるんだと思います。「普段はネチネチと小言のうるさい頭カチコチめんどくさ真面目野郎だと思われてるけど、卒業間際になってそのありがたみに気づいた生徒達にめっちゃ感謝されるタイプの教師」みたいだなと思いました。あとは副次的な効果として、1ヶ月前くらいから習得に励んでるVimがだいぶ板につきました。今後の課題reducerやsagaなど、肥大化しがちな箇所を適切な粒度で分割reduxのconnectをcontainerに切り離すTypeScriptの書き方を覚える(定義した型の再利用とかしたい。firebaseとか)まあ、ディレクトリ構成とか設計の部分になると、チーム毎プロジェクト毎に最適解が変わるのでベースの考え方だけ押さえておけるように引き続き勉強したいと思います。build.localhostの3000ポートにアクセスするとデフォルトページが確認できる。※このコマンド一発でサーバ起動だけじゃなくビルドもやってくれてるぽい。ブラウザで確認すると、material-uiが適用されたボタンが表示される。これでやれば一発だったぽい。既存のプロジェクトに導入すると移行大変そうだし、typeScript使うなら最初に入れるのが良さそう。index.jsしかファイルないし、コーディングもしてなかったので助かった。eslintはreactプロジェクトにデフォルトで含まれているらしくprettierのインストールだけでいいらしい。(確かにpackage.json見るとそれっぽいのある。この3行を削除して、eslintrc.jsonに切り出す。}}これでlinterが動くようになる。eslintが静的解析、prettierがコード整形をやってくれる。firebaseあとはドキュメントに従ってfirebase側のセットアップを色々やる。firestoreしか使わないので、firestore()をexportして、使う先でimportする感じに実装した。});}~~~以上、有意義な正月だったな〜。Firestoreを使ってチャットアプリを作りました。実行時のエラー、仮想マシンを再起動したら直りました。Firestoreを使ってチャットアプリを作りました。規則的なリモートワーカーの1日リモートワークを始めて2週間が経ちましたPHPerKaigi2019の振り返り月別アーカイブはてなブログをはじめよう!hide0721yanaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。