NomadTimeは、ノマドワークに最適な場所を簡単に探せるWEBアプリケーションです。具体的には、現在地や駅名などの位置情報から、その近隣に存在するコーヒーチェーン(またはそれ以外のノマドに適した場所)を探しだします。
※いろいろあって、「lunchtime」という名前から、現時点では「NomadTime」という名前に変更しております。
- React
- Firebase
- Ruby on Rails
- PostgreSQL
- PostGIS
- Heroku
フロントエンドにはReactを採用しています。Googleの提供しているBaaSであるFirebase上にデプロイされており、CSSの管理にはaphroditeを使っています。
Rails5のAPIモードを使って、店舗情報を返すAPIを作成しています。
緯度経度情報を扱うことが多いため、PostgreSQLの拡張モジュールであるPostGISを使って、データベースにGeography型を導入しており、それによりReact側で指定された緯度経度に近いデータを返すことが可能となっています。それをHeroku上で稼働させています。
サーバーサイドのソースコードはこちらよりご確認ください。
まずデザインの草案をFigmaを使用して作成し、それを参考にしつつ作っています。 タスクの管理ツールはTrelloを使用、JavascriptのパッケージマネージャーツールはYarnを使っています。
また、Reactでアプリをビルドする際にはモジュールバンドラとしてwebpackを使っています。これは、Reactの環境構築の手間を省くためcreate-react-app
を使用したからであり、いずれはこの環境から脱し、webpackの設定等も最適化する予定です。
とりあえずデプロイさせたかった事情もありアプリ自体はWEB上に上げてしまいましたが、デザインもUXもかなりお粗末なのが現状です。
特にUXに関しては酷く、データの取得が上手くいっていない場合の挙動やデータのロード中に遷移すると正しく表示されないなど、アプリとして使う上で重大な支障をきたす箇所が多く残っています。
またコード自体もシンプルでなく、重複している箇所が存在していたり無駄に複雑な処理が発生していたりなどの問題が散見されています。
そのためまずは、React内の処理を見直しつつ、複雑かつ肥大化してしまったcomponentやstateたちをReduxでの管理などを導入することでシンプルかつスケール可能な状態に持っていきたいと考えています。