釣りに行くたびに「この魚、何センチだったっけ」「あの日の潮回りどうだったかな」と記憶が曖昧になることはありませんか。今回、Google Apps Script(GAS)だけで、釣った魚の記録をその場でスマホから残せるアプリを作ってみました。プログラミング不要でコピーするだけで使えるようにしてあるので、興味のある方はぜひ試してみてください。
どんなアプリか
スマホでこのアプリを開き、釣れた魚の写真を撮るだけで、以下の情報が自動的に記録されます。
- 撮影した写真
- 撮影日時
- GPS位置(地図上にピン表示)
- 潮の状況(上げ潮/下げ潮/満潮/干潮)と潮名(大潮/中潮/小潮)
- 天気・気温・風向風速
- 日の出・日の入り時刻
- 月齢
魚の種類やサイズは自動計測ではなく備考欄への手入力にしていますが、それ以外の環境データはすべてワンタップで自動取得されます。記録した内容はカレンダー画面から振り返ることができ、備考の編集や削除も可能です。
なぜGASで作ったか
普段の業務改善ツールと同じく、今回もGoogleスプレッドシート+Google Apps Scriptの組み合わせで実装しました。理由はシンプルで、
- 無料で完結する
- スプレッドシートがそのままデータベースになる
- Webアプリとして公開でき、スマホのホーム画面に追加すればアプリのように使える
- 何より、Googleアカウントさえあれば誰でもコピーしてすぐ使い始められる
からです。特に最後の「誰でもコピーして使える」という点は、外部のサーバーやAPIキーの管理を極力減らす方向で設計する動機にもなりました。
実装で苦労したポイント
今回、地味に時間がかかったのが「潮汐データの取得」でした。当初、全国736港をカバーする無料の潮汐APIを使う予定だったのですが、いざスマホの本番環境からアクセスしてみると、なぜかエラーが返ってくる。調べてみると、そのAPIを提供しているサーバー側のセキュリティ機能が、Google Apps Scriptからの通信をブロックしていることが判明しました。ブラウザからは普通にアクセスできるのに、GASからだけ弾かれる、というのはなかなか気づきにくい落とし穴です。
最終的には、気象庁が公式に公開している潮位表データ(地点別・年別のテキストファイル)に切り替えることで解決しました。データ提供地点数は減りましたが(約190地点)、公式データなので長期的な安定性は増したと思います。潮名や日の出日の入り、月齢は気象庁データに含まれていなかったので、天文計算式を使って自前で算出するようにしています。
もう一つハマったのが、写真の保存方法です。最初はスプレッドシートのセルに写真データを直接埋め込む方式にしていたのですが、スマホのカメラで撮った高画質の写真だと、1セルあたりの文字数上限(5万文字)にすぐ引っかかってしまうことが判明しました。最終的にはGoogle Driveに写真を保存し、スプレッドシートにはリンクだけを残す方式に変更しています。
使ってみたい方へ
スプレッドシートを「コピーを作成」するだけで、ご自身のGoogleアカウント上にすぐ環境が整います。詳しいセットアップ手順は、別途まとめた取扱説明書をご覧ください。
おわりに
魚のサイズを自動計測する、という当初のアイデアは今回見送りましたが、備考欄への手入力だけでも十分に実用的なアプリに仕上がったと感じています。潮汐データの取得方法一つとっても、「無料で使えるAPI」が必ずしも安定して使えるとは限らないという、業務システム作りにも通じる教訓を得られた開発でした。


