図書館入荷おしらせアプリを作ってみた

TECH PLAY女子部 Advent Calendar 2017の24日目の記事です。
運営メンバーのたんたんです。よろしくお願いします。
今回は、私が最近作ったものをご紹介したいと思います。

作ったもの(まだ開発途中)はこちらです。
『図書館入荷おしらせアプリ』

f:id:ayayayo1009:20171223163028p:plain:w150

自分の行きつけの図書館の蔵書状態を定期的にチェックし、自分が読みたい本が入荷したらスマホにpush通知を飛ばしてくれるアプリです。

■なぜ作ろうと思ったか

地域の図書館によって異なりますが、実は図書館にも比較的新しい本や技術書が置かれていたりします。 また、図書館のホームページから読みたい本を予約して、あとは近所の図書館に本が届いたら受け取りに行くだけという素晴らしいサービスもあり、よく利用しているのですが人気の本の場合はすぐに予約待ちになります。

例えば、こちらの本。直木賞本屋大賞を受賞した『蜜蜂と遠雷

蜜蜂と遠雷

蜜蜂と遠雷


この本を図書館で予約しようとしたところ、なんと745人待ち!!
f:id:ayayayo1009:20171223163715p:plain:w400

一人が借りられる期間は2週間なので、計算すると31年待ち。。
さすがに31年は待てないので予約待ちが多い本は自分で買っちゃうこともあるのですが、せっかくなのでエンジニアらしい解決方法はないかと考えアプリを作ることにしました。
Push通知で誰よりも早く図書館の入荷に気づき、一番に本の予約ができるのではという計画です。

■アプリの仕様

簡単な仕様は以下になります。

  1. 図書館の入荷お知らせを受け取りたい本のタイトルとISBNをアプリから登録する(サーバーDBに保存する)※ISBN…本を一意管理するためのIDです。
    f:id:ayayayo1009:20171223163039p:plain:w200
  2. 登録されている本が入荷したかを1日一回カーリルAPIで調べ、入荷済みの本があればアプリへPush通知を送る
    f:id:ayayayo1009:20171223163112p:plain:w200

  3. Push通知からアプリ起動し、「うん」押下で図書館サイトの予約ページへ遷移
    f:id:ayayayo1009:20171223163035p:plain:w200

■アプリの作り方

大まかな手順はこんな感じです。

  1. Railsでデータ登録用APIを作成する
  2. Railsでタスク(バッチ処理)を作成する
    【タスク内容 】
    • DBに保存されている本が図書館に蔵書されているかをカーリルAPIで調べる
    • 入荷していた場合、firebaseを使ってプッシュ通知を送る
  3. 1.2で作成したプロジェクトをherokuにデプロイする
  4. heroku スケジューラーでタスクを登録する
  5. iOSアプリを作成し、firebaseの設定をする
  6. 完成!

作り方の詳細はこちらにまとめました。

fluflufluffy.hatenablog.com

■アプリを使ってみた

ちなみにこの記事を書いている時にちょうど図書館に入荷があったようでPush通知が届き、予約することができました!
こちらの本を予約してみたところ。。

意識のリボン

意識のリボン

f:id:ayayayo1009:20171223175446p:plain うーん。。13人目の予約となってしまいました。。

で、こちらの本は。。。

本の本: 夢眠書店、はじめます

本の本: 夢眠書店、はじめます

f:id:ayayayo1009:20171223175451p:plain 無事に1番に予約することができました!!やったー!!
(画像の「予約1人」は私ですw)

■まとめ

「こういうのがあったらいいな」を初めて形にしました。
普段はswiftしか使ってないため、簡単なRailsを書くのも悪戦苦闘しましたが、サーバーサイドからフロントまでの一連の流れを知るのにとても良い機会になりました。
Railsを書くのに我が部の部長りほやんに助けてもらいました、ありがとう!)

スキルは手段であって目的ではないですし、エンジニアは自分の中の「こういうのがあったらいいな」を調べながらでも何かしら形にしやすいと思うので、目的をもって何かを作るのは面白いです。

今回は本の登録とpush通知しか実装しませんでしたが、今後より良い読書ライフを送るために追加機能を随時実装していきたいなと思います!