LoginSignup
11
3

More than 1 year has passed since last update.

日常生活を支える技術

Last updated at Posted at 2021-12-11

この記事はラクスAdvent Calendar 2021 11日目の記事です。

はじめに

日々、生活をしていると、面倒に感じることってたくさんありますよね。

私は怠惰なので1、少しでも楽をしたいです。

ということで、この記事では、日々の生活をエンジニアリングを用いて少し楽にしたことについてお話したいと思います。

何を楽にしたのか

  • ゴミ収集日の通知
    • ゴミ出しってついつい忘れちゃいますよね
  • 帰宅予定の通知
    • いちいち聞くのもめんどくさいけど、予定がわからないのも困る

どうやって楽にしたのか

LINE Messaging APIとFirebaseを使いました。
LINEをUIとして使うことで、アカウントを友だちに追加するだけで、プッシュ通知などの機能を実現することができました。
Firebaseについてはある程度触ったことがあり2、ちょっとしたプロトタイピングにはもってこいのBaasとして採用しました。

構成図

Untitled Diagram (1).png

動作

image.png

人類を幸せにすることを生業とするスカイネットくん3です。

  • 予め設定された時刻になると、Cloud SchedulerによってCloud Functionsが実行され、Messaging API経由で各種通知が届きます。

    • 7時:ゴミ収集日通知
      • 曜日に応じてメッセージを送ってくれます。
    • 16時:帰宅予定登録通知
      • 今日の帰宅時間登録を促すメッセージを送ってくれます。
      • Messaging APIのクイックリプライという機能を使用しており、自分で値を入力しなくても、予め用意した選択肢がメッセージと共に表示されるため、タップするだけで予定を登録できます。ここで登録した値をCloud Firestoreに保存しています。
      • image.png
    • 18時:上記で登録した時間に応じて、その日の帰宅予定が通知されます。

良い点

  • メッセージが届くとプッシュ通知が来るので、返信を忘れない
  • 返信が簡単(通知をタップしてトーク画面に遷移したらリプライをタップするだけ、文書を書く必要がない)

自動化すると想像以上にノンストレス

苦労したこと

  • Cloud FirestoreのAPIに慣れてなくて、クエリできるようになるまで半日かかった。
  • Cloud Functionsのデプロイに思いの外時間がかかるので、動作確認のリードタイムが長かった。4

今後の展望

  • GoogleカレンダーAPIで予定を引っ張ってきて、今週の予定一覧とか通知できると便利そう
  • 日々の帰宅予定データを貯めているので、逆に帰宅予想とか通知できると面白いかも

おわりに

ちょっとした個人開発は、生活が楽になるだけでなく、技術力も磨けて一石二鳥!


  1. プログラマの三大美徳 

  2. とはいえFirebase Functions、Cloud Firestoreは触ったことがなかったのでめっちゃ苦戦した 

  3. 名前の由来は某サイボーグがサムズアップしながら溶鉱炉に沈んでいく映画 

  4. jestを使ったローカルでのテストができるように後からリファクタリングしました。TypeScriptとmodule周りの環境設定で大苦戦しました。 

11
3
0

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
11
3