機雷がなんだ! 全速前進!

SEというかプログラマというか、日々のエンジニア生活の中で体験したことなどを中心に書き残しています。

日の出・日の入を計算する新WebアプリをStreamlitで作成して公開してみた🌞

2026年5月20日にこんなメールが届きました。

Mercury Cloud is moving to MLJAR Platform

(Mercury Cloud はMLJARプラットフォームに移行します)

Mercury Cloud はMLJARプラットフォームに移行します。Mercury Cloud は6月30日にサービスを終了します。アカウントの移行は行わず、Mercury Cloudに保存されているすべてのファイルとデータは削除されます。Mercuryデプロイメントを引き続き使用したい場合は、MLJARプラットフォーム https://platform.mljar.com )からご利用いただけます。

以前趣味でつくったWebアプリをMercury Cloudの無料プランで公開させてもらっていたのですが、サービスを終了するようです。MLJARプラットフォームをチラッと覗いてみたのですが、なんだか使いにくそうでした。他に良い移行先が無いかと調べた結果、Streamlitというサービスが良さげだったので、そちらに乗り換えることにしました。

Streamlit(ストリームリット)とは?

Pythonだけで簡単にWebアプリ(特にデータ可視化やAI用UI)を作れるオープンソースのフレームワークです。

特徴

  • HTML / JavaScript 不要。
    • PythonコードだけでWeb画面を作れる
  • データ分析・AI用途に強い
    • グラフ表示、機械学習モデルのUI化が簡単
  • すぐ動く
    • streamlit run app.py ですぐブラウザに表示
  • インタラクティブ
    • ボタン・スライダー・入力フォームなども簡単

できること

例えば以下のようなアプリがサクッと作れます。

  • データ分析ダッシュボード
  • 機械学習モデルのデモ画面
  • レポート可視化
  • ChatGPTのようなUI

Streamlit.io

Streamlitの公式プラットフォームです。使い方やドキュメント、サンプルコードなどの情報が公開されており、Streamlit Community Cloud で、作ったアプリを無料で公開できるクラウドサービスも提供されています。GitHubと連携した自動デプロイができるのが非常に便利です。

やったこと

Jupyter Notebookベースで開発した旧アプリをStreamlit用に改造しました。新旧のソースコードは以下のとおりです。
ちなみに、改造は殆ど生成AIが自動でやってくれたので超楽でした。こういうマイグレーション的な用途は、生成AIによるバイブコーディングは非常に有用ですね。

公開アプリ

https://calcdaytime.streamlit.app/

画面右下にある「< Manage app」というボタンをクリックすると簡単にアプリのログも確認できるので、エラーが発生した場合でも簡単にデバッグできます。

 あとは、今回初めて使用したのですが、GitHub Codespaces もなかなか便利でした。イメージとしては、AWS Cloud9 みたいな感じですが、VSCodeライクなUIなので、感覚的に使用しやすかったです。さすがに大規模な開発で使用するにはもっさりしててしんどそうですが、軽い作業なら必要十分という感触でした。 

この画面で生成AI(Copilot)とチャットしながらバイブコーディングができます。そして、ソースコードの変更はGithubリポジトリ連携を設定したWebアプリへすぐに反映されます。非常に便利ですね。

おわりに

旧アプリを公開していた Mercury Cloud は、無料プランではアプリが1つしか公開できませんでしたが、今回の Streamlit Community Cloud は公開アプリ数に制限はないようなので、新しいアイデアを思い付いたら、またふらっとWebアプリをつくって公開してみようと思います。一定時間が経過するとアプリは自動的にSleepして再度利用する際はコールドスタート(厳密には、手動でボタンをクリックする)になるので、その点だけご注意ください。