10.1インチ Raspberry Pi用 IPS タッチモニターとRaspberry Pi5 を購入したのは、リアル波形描画を Qt で作成し直すことだけでなく、仕事机の脇において Googleカレンダー を表示させる目的もあった。
仕事用に34インチのLCDディスプレイを使っているので、GoogleカレンダーはLCDディスプレイのどこかに表示させておけばいいのだが、大抵、いろいろなファイルを広げているので、カレンダーを見るにはいちいち再表示させないといけない。
そのため、机の脇に10インチのディスプレイでGoogleカレンダーが常時表示されている状態にしたかった。そういう商品も売っているようだが、ラズパイで自分用にカスタマイズしたものが欲しかった。
そこで、今回、Raspberry Pi5で10インチのモニターに google カレンダーを表示させるアプリを作ってみた。
| Googleカレンダーを表示させた様子(完成系) |
作ってみたといっても、自分では一行もコードを書いていない。最近、流行りのコード生成に優れているといわれている Anthropic 社の Claude を使った。
ChatGPTでもできたかもしれないが、この動画を見て Claudeの実力が見てみたくなった。
プロジェクトの概要
本プロジェクトでは、Raspberry Pi 5 上にGoogleカレンダーとGoogle Tasksを表示するウォールダッシュボードを構築した。ダッシュボードはGoogleカレンダーのUIに近いデザインで、月間カレンダービューにイベントをリアルタイム表示する。
システム構成
|
項目 |
内容 |
|
ハードウェア |
Raspberry Pi 5 |
|
OS |
Raspberry Pi OS (Debian 12, Linux
6.12.62) |
|
リモートアクセス |
RealVNC Viewer (Windows PC から接続) |
|
バックエンド |
Python 3.13 + FastAPI + Uvicorn |
|
フロントエンド |
HTML/CSS/JavaScript (シングルページ) |
|
認証 |
Google OAuth2 (デスクトップアプリ) |
|
API |
Google Calendar API + Google
Tasks API |
大まかな仕組みとしては、Google OAuth で 仕事用の Googleアカウントを認証し、バックエンドのソフトウェアで Googleカレンダー情報を取得する。取得した情報を html でカレンダーとして表示する。これが可能なのは、Google が Google Calendar API と Google Tasks API を提供しているからだ。
最近のアプリは、このようにクラウドサービスが提供するAPIとエンドポイント側のPCや組み込み機器が連携して価値を生み出すものが多い。これまでスタンドアロンで動いていた組み込み機器もネット接続して、このようなクラウド上のAPIと連携して新しい価値を提供するサービスが増えてきている。そううった傾向もあり、サイバーセキュリティも重要度が増している。
ChatGPTで医療機器ソフトウェア規制にこたえるチャットボットを作ったときは、壁打ちしながら約1週間かかった。
| MSC Chat(医療機器ソフトウェアQ&A) |
Claude での Googleカレンダーアプリ作成は約5時間。Claude がすごいと思ったのは、問題が起こったときのリカバリーの良さだ。今回のサービスでは、ラズパイにPython のインストールが必要で、Python 3.13 のインストール作業の過程でつまずいた。Python 3.13 と pydantic==2.7.1 の互換性問題が発生した。
pydantic:**Pydantic(パイダンティック)**は、Pythonで「データの型チェック」と「データ検証」を簡単・安全に行うためのライブラリです。特に、API開発(FastAPIなど)や設定ファイル、JSONデータの扱いで広く使われています。「Pythonの型ヒントを使って、データの正しさを自動で検証・変換してくれるライブラリ」
pydantic-core のビルドにRustコンパイラが必要なためインストールに失敗した。pydantic==2.11.0 にバージョンを変更することで解決した。
|
パッケージ |
バージョン |
用途 |
|
FastAPI |
0.111.0 |
WebAPIフレームワーク |
|
Uvicorn |
0.29.0 |
ASGIサーバー |
|
pydantic |
2.11.0 |
データバリデーション |
|
google-auth |
2.29.0 |
Google認証 |
|
google-auth-oauthlib |
1.2.0 |
OAuth2フロー |
|
google-api-python-client |
2.127.0 |
Google API クライアント |
こういう互換性の問題は、スクラッチで作っているときに発生すると原因がわからず 、暗い気持ちになりストレスが溜まる。ヒントをインターネット検索で探すのだが、解決した経験を誰かがアップしてくれていればラッキーで、そこにたどり着くまでにはそれなりの時間がかかる。
しかし、Claude は問題の状況をスクリーンショットで伝えると一発で原因を分析し、代替え手段を提示してくる。こんな感じで Claudeと壁打ちしながら、試行錯誤を繰り返していって、Googleカレンダーをラズパイで表示することができた。
完成した機能
|
機能 |
詳細 |
|
Googleカレンダー表示 |
月間カレンダービューでイベントをリアルタイム表示 |
|
カレンダー色分け |
カレンダーごとの色でイベントを色分け表示 |
|
今日のハイライト |
今日のセルを水色背景で強調表示 |
|
日時表示 |
右上に現在日時をリアルタイム表示 |
|
自動更新 |
5分ごとに自動リフレッシュ |
|
Pi起動時自動起動 |
電源投入後に自動でダッシュボードが表示される |
|
全画面キオスクモード |
ブラウザのUI非表示で純粋なダッシュボード表示 |
ちなみに、ChatGPTは Pro の契約をしており、ChatBotを一週間かけて作ったときは、追加料金はかからなかったが、Claude はインプット、アウトプット量に対して、えげつないほどの従量課金になっており、結局 Googleカレンダーアプリ作成に6481円かかった。
使用料は毎日リセットされるので、一日の使用量まで達したら、翌日続きを行うようにすれば、月額使用料の中で完結できたのだが、一日で仕上げたいとなると、追加請求される。
前述の動画でも解説されているが、ChatGPTはオールラウンドプレイヤーで Claudeはビジネス用途の実績主義に特化しているとのこと。確かに判断が的確で試行錯誤が少ないが、効率がよいぶん、費用の請求もえげつない。
AIを使ったコード生成の感想
多くの識者が語っているように、今後ソフトウェアのコーディングは劇的に変わっていくことを実感した。経験の少ないソフトウェアエンジニアを一から教育する投資がもったいないというか、そこに疑問を持たずに続けていく企業はいずれ滅びてしまうのではないかという感覚がある。
現実に米国ではすでにソフトウェアエンジニアのリストラが始まっていると聞く。AIに置き換えられた分の人件費をカットする判断を経営層が下ししている。日本では簡単に社員をクビにはできないが、ソフトウェアエンジニアの採用が徐々に減っていく予感さえある。
何を作りたいか、何を提供すれば顧客に価値をもたらすことができるかさえ想定できれば、AIがアプリを作ってくれるところまで来ている。仮に作ったサービスが期待通りの実績を上げられなくても、ユーザーの使用状況のデータなどを収集してAIに分析させることで、どう改変すればよいのかも教えてくれる。
もちろんそのための費用もかかるが圧倒的に人件費より安い。
今後、生身のエンジニアに求めらるのは、コーディング力ではなく、価値創造の企画力や、人間同士のコミュニケーション能力ではないだろうか。それと、AIが出してきたアウトプットの是非を判断できる経験。
今回、Raspberry Pi 5 Google カレンダーダッシュボード プロジェクトが完成したところで、Claude に詳細なレポートを作ってもらった。
これをしっかり読み込むことで、AIが何を考え試行錯誤したのかがよく分かった。昔ならベテランの先輩に年単位で教えてもらっていたことが、数日で学習できる。
今後の技術者教育は、自分で企画してAIに作ってもらい、その開発過程をAIに説明してもらうことで、自分の経験として取り込むという教育が有効な感じがした。
どっちにしても、従来と同じようなソフトウェアエンジニアの採用や教育を行っていると、グローバルな競争に負けていく予感がしている。
便利だけど、生身のソフトウェアエンジニアには受難の時代になってきたかもしれない。

0 件のコメント:
コメントを投稿