13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Nuxt.js】リングフィットアドベンチャーの運動記録を入力してグラフ化するアプリケーションを作った

Last updated at Posted at 2020-08-19

はじめに

みなさんリングフィットアドベンチャーはやっておられますか?
コロナ禍の影響であまり外出ができず、特にリモートワークの場合運動不足に陥りがちです。
そんな中、自室で楽しく運動することができるリングフィットフィットアドベンチャーはとても重宝しています。💪
このような状況も相まって現在も品薄状態が続いているようですね。

さて、そんなリングフィットアドベンチャーですが、プレイしていた以下のようなことを感じました。

  • 日々の運動記録は見れるが、そのためにゲームを起動するのがめんどくさい
  • switch本体の時間操作をしていると正しく記録されない(これは人によりますが...)
  • 運動記録をグラフにして見たい!

というわけで、よくあるフィットネスアプリのように運動記録を入力してグラフで見れるようにしました。
製作期間は2ヶ月くらいです。

リングフィットログ

GitHub

機能

記録入力画面

スクリーンショット 2020-08-19 16.43.34.png

下記画像の、リングフィットアドベンチャーの運動終了後に表示される本日の運動結果の項目を入力できるようにしています。
EfxnX-TUMAAKn-n.jpeg

カレンダー

スクリーンショット 2020-08-19 16.43.48.png

カレンダー表示で月の運動記録を視覚的に表示します。どの日にサボっちゃったかわかっちゃいますね...

グラフ

スクリーンショット 2020-08-19 16.44.01.png

グラフで日々の運動量の変化を見ることができます。
グラフの作成にはvue-chartjsを使用しています。

使用技術

フロントエンド

Nuxt.js + TypeScript + Vuetify

使い慣れていたVue.jsのフレームワークのNuxt.jsをSSRモードで使用しています。
UIフレームワークも使ったことがあったVuetifyにしました。

Nuxt.js(Vue.js)をTypeScriptで書いたことはありませんでしたが、一度開発時の快適さを味わってしまうともうJavaScriptを使うことは考えられないほどでした。

また、Nuxt.jsのPWAモジュールを使用すれば簡単にPWA化できるので取り入れています。

バックエンド

Express + TypeScript

バックエンドはNuxt.jsのserverMiddleWareとして実装し、BFFのように扱っています。
Nuxt.jsの他に外部サーバーを必要としないのが嬉しいですね。言語としてNode.jsしか選択できない欠点はあります...

ExpressはNode.jsのフレームワークです。比較的自由度が高いので、MVCフレームワークに沿って構築しています。

データベース

MongoDB

以下の点からデータベースとしてMongoDBを採用しています。

  • アプリケーションの性質上データの整合性が重要ではない
  • 利用者が多いので、情報を得やすい
  • NoSQLではあるが、合計や平均などの集約操作が可能

MongoDBのODMとして、mongooseが有名ですが、これをTypeScriptで記述する場合拡張しなければいいけないことが多くて大変でした...

テストフレームワーク

Jest

サーバー

heroku

デプロイ先としては小さなアプリケーションであるためherokuを選択しました。

おわりに

制作にそんなに時間がかからないと考えていましたが、思ったよりも時間がかかってしまいました。
個人開発だとやるもやらないも自由なんで、その日の気分で開発を勧めていたのでダラダラと進んでいってしまいました。
明確なスケジュールを設定して進めるべきでしたね...

13
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?