プログラミング

LINEチャットボットとGASでダイエット記録アプリを作ってみた

GASとLineボットでアプリ制作
ぐり主任
最近、太ってきた。。でも、体重記録するのめんどくさい。。
ぐり主任
・・・GASでアプリを作ってダイエット記録を効率化しよう!

 

本記事では、コロナで太ってきた筆者がGASとLineを使ってダイエット記録アプリを制作した流れを解説します。

・・・痩せたかどうかは別です('ω')

 

想定読者

・現役SEの開発の流れが知りたい人

・Google Apps ScriptとLineの連携に興味がある人【初心者向け】

・GASが好きな人(単純にどんなアプリか興味がある人)

 

本記事の内容

  1. アプリ開発の背景と目的
  2. 【要件定義】アプリの要件
  3. 【基本設計】アプリの全体設計
  4. 【製造・試験】アプリの実装
  5. 【運用】実際に使ってみた
  6. アプリ制作の感想

 

記事の本編に入る前に簡単な自己紹介です。

執筆者について

この記事を書いている僕は大手IT企業勤務の30代のシステムエンジニアです。

・システム開発歴7年以上、プロジェクトマネジメント歴5年以上

・プログラミング歴8年(c++,java,bash,pythonなど)

・プログラミングのコーチングアシスタント経験あり

・情報処理試験(応用情報、DBSP)を保有

・AIを活用したシステムの特許3つ認可済

 

システム開発は本業ですが、Google Apps ScriptやLineを利用したプログラミング経験がなかったため、今回の取り組みでチャレンジした!という形です

 

実際に仕事でやっているよりは簡易的ですが、要件定義~運用までのシステム開発の流れに合わせて紹介していきます。

 

アプリ開発の背景と目的

ダイエット実施の背景

冒頭でもお話しましたが、コロナによって体重が5kgほど増えました。

 

見た目としては、完全にお腹が出ている状態です。

 

そこで、ダイエットをするために体重を記録することから始めよう!と考えました。

※食事制限や運動など、ダイエット自体の取り組みは並行して実施しています。

アプリ開発しようと思った理由

毎日体重を記録するなんて余裕!と思っていた時期が僕にもありましたが、

①毎日体重計に乗る

②スマホでダイエットアプリを開く

③体重を打ち込む

この流れが面倒になってきました。

 

楽になる方法を調べたところ、最近の体重計は測定した情報(体重、体脂肪率など)を自動でスマホへ連携し、管理できることが分かりました

 

↓最近の体重計はこんなやつです。

※僕の家の体重計は旧型で、搭載機能は「体重を記録する!」という1機能のみ

 

新しく体重計を購入して、「諸々のデータを管理する方が良い」というのは分かっていたのですが、せっかくデータを収集するなら自分でデータを管理したいし、何ならアプリみたいなの作ってみたい!と思いました。

 

特に、以下の思いが強かったです。

・GASを勉強して何か作ってみたかった

・Lineのチャットボットの仕組みに興味があった

そんなわけで、Google Apps ScriptとLineのMessage APIを使ったプログラミングで簡単なアプリを作ってみようと思いました。

(ぶっちゃけ自己満足に近いですね笑)

目標

そんなわけで、以下の目標をたててアプリを開発することにしました。

目標

①ダイエット時の記録効率化

②Google Apps Scriptの知識向上

③Line の開発知識の取得

 

体重を減らすこと!というのが目的ではあるのですが、今回のプログラミング・開発では効率化&知識習得がメインの目的です。

 

なお、僕が利用したおすすめの参考書を以下の記事で解説しています。

GAS完全入門
GAS学習で必読の書籍!たった1時間でアプリ開発【詳解! GoogleAppsScript完全入門】

悩む人Google Apps Scriptを勉強したいけど、どんな書籍を購入すればよいだろう? 悩む人Google Apps Scriptは便利って聞いたけど、何から始めればよいのだろう? 本記事では ...

続きを見る

 

【要件定義】アプリの要件

今回のアプリの要件は以下です。

・体重計に乗った後、簡単に記録したい。

・記録したい項目は「日時」「体重」の2つ(初期開発時はこの2つ)

 

業務フローの改善

要件定義工程では現状の業務フローと改善後の業務フローを整理します。

 

業務フロー① 体重の記録を行う

gasアプリの業務フロー01

業務フロー①は体重を測定して記録をするという業務フローです。

 

今回の開発では、劇的な業務フローの改善はできませんが、入力項目を少なくする!という改善をしたいと思います。

業務フロー② 記録内容を可視化する

gasアプリの業務フロー02

業務フロー②は記録した体重をグラフ化する部分です。

 

僕がもともと使っていたアプリだと体重の増減をグラフ化(日/月単位)するだけでした。また、アプリで管理している項目しかグラフ化できませんでした。

 

そこで、今回のプログラミングで、BMIや体重(日、週、月単位)を管理し、平均〇kg体重が増減している。などもグラフ化できるようにしたいと考えています。

 

今回のプログラミング開発による業務的なメリットは、基礎情報を自分で管理できるようになることだと考えています

利用環境

今回の開発で利用する環境は以下です。

・iphone SE2(Lineが使えればOK)

・Googleアカウント(Google Apps Scriptを使える環境)

・Line開発アカウント

スマホ以外は無料で用意できる環境になります。

 

【基本設計】アプリの全体設計

今回の基本設計は以下のような図になります。

gasアプリの設計書_01

 

本業では①~⑥までの処理をどのような方式・APIで実現するか?なども記載するのですが、今回は規模も小さく、既存APIを利用するので、このレベルでも十分かな。と考えています。

 

【製造・試験】アプリの実装

実装のステップは大きく分けて2ステップに分けました。

STEP1 メッセージに対して返事をするLine ボット作成

GASとLineAPIを利用するのは初めてだったので、STEP1ではLineのメッセージを受け取ったら、返事を返すLineのチャットボットを作成します。

 

イメージとしては、以下の部分を実装します。

gasアプリの設計書_02

 

一気に開発しても不具合が発生した際にエラーの原因特定が難しいため、部分的に実装しながら進めます。

 

STEP1の実装についての詳細は以下の記事をご参照ください。

GASとLineの初回登録方法
GASでLineチャットボットの作り方【初心者向け手順解説】

本記事ではLine Message APIとGASを使って、Lineチャットボットを1から作る方法を解説します。   手順を画面キャプチャしながら説明しているので、Lineチャットボットに興 ...

続きを見る

 

STEP2 Google Spread Sheetへの追記機能の追加

STEP1が開発できたので、STEP2の部分を追加開発します。

 

機能としては以下を追加

・受け取ったメッセージを解読する機能

・メッセージをGoogle Spread Sheetに記入する機能

【補足】例外処理などの対応について

今回のアプリは以下の理由から異常系やエラー処理などは簡易的なものとしました。

・利用者が自分自身

※Lineでエラーメッセージの返事があれば、エラーに気づけるため

※API呼び出し時のエラーなどはリトライを自分で実施すればよいから

 

GASやLineの実行制約を上回るほど、APIをコールしたり、高負荷となるアプリではないので、そこまで問題ないと考えています。

 

実際の動作確認時もシステムエラーのパターンは問題なさそうでした。

【運用】実際に使ってみた

個人的には満足のいく出来栄えです。

Lineの入力画面

体重計に乗った後、すぐにチャットすることで簡単に記録できたことが通知されます。

 

 

Lineボット入力

 

Googleスプレッドシートの記載

Lineでチャットした内容はスプレッドシートに記載されます。

google スプレッドシートへの入力結果

 

簡単に記録できるようになりました!

 

アプリ制作の感想

今回のアプリ制作でGoogle Apps Scriptの使い方(基礎)とLine Message APIの使い方(基礎)を学ぶことができました。

 

GASやLineAPIなどはプログラミングをがっつり触っていない人でも簡単に始められる要素が多いので、おすすめできます。

 

そんな感じで当初の目標は達成できました!あとは痩せるだけですね笑

 

【エンジニアのスキルアップ】Udemyのお得なクーポン

最後に、少しだけ宣伝です。

私はUdemyでエンジニアとしてスキルアップするための講師をしています。

以下のページにお得なクーポンページを設置しているので、ご興味がある方は覗いてみてください。

Udemyでエンジニアのスキルアップ!【お得なクーポン】

 

以上!

スポンサーリンク

-プログラミング