この記事はラクスAdvent Calendar 2021 11日目の記事です。
はじめに
日々、生活をしていると、面倒に感じることってたくさんありますよね。
私は怠惰なので1、少しでも楽をしたいです。
ということで、この記事では、日々の生活をエンジニアリングを用いて少し楽にしたことについてお話したいと思います。
何を楽にしたのか
- ゴミ収集日の通知
- ゴミ出しってついつい忘れちゃいますよね
- 帰宅予定の通知
- いちいち聞くのもめんどくさいけど、予定がわからないのも困る
どうやって楽にしたのか
LINE Messaging APIとFirebaseを使いました。
LINEをUIとして使うことで、アカウントを友だちに追加するだけで、プッシュ通知などの機能を実現することができました。
Firebaseについてはある程度触ったことがあり2、ちょっとしたプロトタイピングにはもってこいのBaasとして採用しました。
構成図
動作
人類を幸せにすることを生業とするスカイネットくん3です。
- 予め設定された時刻になると、Cloud SchedulerによってCloud Functionsが実行され、Messaging API経由で各種通知が届きます。
良い点
- メッセージが届くとプッシュ通知が来るので、返信を忘れない
- 返信が簡単(通知をタップしてトーク画面に遷移したらリプライをタップするだけ、文書を書く必要がない)
自動化すると想像以上にノンストレス
苦労したこと
- Cloud FirestoreのAPIに慣れてなくて、クエリできるようになるまで半日かかった。
- Cloud Functionsのデプロイに思いの外時間がかかるので、動作確認のリードタイムが長かった。4
今後の展望
- GoogleカレンダーAPIで予定を引っ張ってきて、今週の予定一覧とか通知できると便利そう
- 日々の帰宅予定データを貯めているので、逆に帰宅予想とか通知できると面白いかも
おわりに
ちょっとした個人開発は、生活が楽になるだけでなく、技術力も磨けて一石二鳥!
-
[プログラマの三大美徳] (https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E#%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AE%E4%B8%89%E5%A4%A7%E7%BE%8E%E5%BE%B3) ↩
-
とはいえFirebase Functions、Cloud Firestoreは触ったことがなかったのでめっちゃ苦戦した ↩
-
名前の由来は某サイボーグがサムズアップしながら溶鉱炉に沈んでいく映画 ↩
-
jestを使ったローカルでのテストができるように後からリファクタリングしました。TypeScriptとmodule周りの環境設定で大苦戦しました。 ↩