この記事について
これは2018年に投稿した記事の、2026年時点でのリライトです。当時の記事では、「PHPによる電車情報発信アプリ」を開発中だとお伝えし、「具体的な実装はいずれ技術解説記事として公開する」と書きました。しかしその記事は結局公開されないまま、8年が経ちました。
このアプリは、東京メトロの運行情報をPHPで取得・発信する仕組みを、実際に手を動かしてPHPを学ぶために作ったものです。当時の記録をもとに、何を作り、なぜ公開に至らなかったのかを、あらためてまとめ直します。
なぜ東京メトロAPIだったのか
PHPを使って、東京メトロの運行情報をリアルタイムに取得・発信するWebアプリを作りました。
使ったのは「東京メトロオープンデータAPI」です。このAPIを叩くことで、列車の現在位置や運行状況などのデータを取得し、ユーザーに届ける仕組みを構築しました。
PHPを選んだ理由は、当時の業務でPHPを使う機会があり、実務で通用するレベルまでスキルを上げておきたかったからです。とくに学びたかったのはLaravelというフレームワークの使い方でした。ゼロからLaravelでアプリを組み立てる練習として、実際に使えるテーマを探していたときに、東京メトロの運行情報という題材にたどり着きました。
実際に使ってみて一番苦労したのは、ドキュメントの分かりにくさでした。どのエンドポイントがどんなデータを返すのか、説明を読むだけでは分からない部分が多く、実際にAPIを叩いてレスポンスを確認しながら手探りで実装を進める場面が何度もありました。
こだわったのは、一目でわかるシンプルなUI
通勤中に慌ただしく確認することが多いアプリだからこそ、乗換案内アプリのように情報を詰め込むのではなく、「一目で状況がわかるシンプルさ」を目指しました。複雑な操作を排除し、必要な時にすぐ電車情報を確認できるインターフェースです。

Slack通知も、Incoming Webhookで実装していました
画面表示に加えて、Slackへの通知も作っていました。使ったのは Slack の Incoming Webhook です。特定のチャンネル用に発行される Webhook URL に対して、通知したい内容を JSON で POST するだけで、Bot を作らずにメッセージを投稿できる仕組みです。
運行情報を取得した後、画面への表示とSlackへの通知、両方に同じデータを流す構成にしていました。具体的なコードは残念ながら手元に残っていません(GitHubには置かず、ローカル環境だけで開発していたため)。ただ、「APIから取得したデータを、表示と通知の両方に使い回す」という構成自体は、今見返しても妥当な設計だったと思います。
実際に、通勤で使っていました
作って終わりではなく、実際に自分の通勤時間帯にこのアプリを使っていました。乗り換える路線の運行状況をアプリを開いてすぐ確認できるのは、素直に便利でした。遅延情報をいち早くつかめるだけで、駅に着いてから慌てることが減りました。
誰かに公開するところまでは至りませんでしたが、「自分が欲しかったものを、自分のために作って、実際に使えた」というのは、個人開発の一番シンプルな成功体験だったと思います。
結局、公開しなかった理由
ここまで動くものは作っていたのに、なぜ技術解説記事も、アプリ自体も公開しなかったのか。
一番の理由は、このプロジェクトがPHPを学ぶための個人的な題材だったからです。動くところまで作って学びたかったことは学べてしまい、そこから先、他の人に使ってもらう形に整えたり、記事として仕上げたりするところまでのモチベーションが続きませんでした。
目的だったLaravelの基本的な使い方は、このプロジェクトを通じて一通り体験できました。API連携・データ取得・画面表示・外部サービスへの通知という一連の流れを、実務で使う前に一度自分で組み上げられたのは収穫でした。
「近日公開」と書いた記事を放置してしまった読者の方には、申し訳なかったと思っています。それでも、動かして・使って・学ぶところまではやり切れたプロジェクトだったので、8年越しにはなりましたが、正直に経緯を書いてこの記事を一区切りにします。
検証環境
2018年当時の開発環境で、具体的なPHP・Laravelのバージョンなどの記録は残っていません。コードはGitHubなどには置かず、ローカル環境だけで開発していました。
参考
- Incoming Webhooks(Slack 公式ドキュメント) — Webhook URL へのPOSTでメッセージを投稿する仕組み
- Laravel(公式ドキュメント) — このアプリの開発を通じて学んだPHPフレームワーク