現役高校教員がバイブコーディングで業務アプリを5つ作った話
現役高校教員がバイブコーディングで業務アプリを5つ作った話
11 min read
— views
目次

朝7時に出勤して、授業の準備。1限目から6限目まで教壇に立って、放課後は部活動の顧問。職員室に戻ったら成績処理と保護者への連絡、出張の書類整理。帰宅は20時過ぎ。

これが僕の日常だ。高校教員として、毎日こんな生活を送っている。

そんな僕が、3ヶ月で5つのアプリを作った。プログラミングの経験はほぼゼロ。大学でCを少し触ったくらいで、実務経験は一切ない。(最初の4つはポートフォリオ記事で紹介した。)

きっかけは「バイブコーディング」との出会いだった。

バイブコーディングとは何か

バイブコーディング(Vibe Coding)とは、コードを自分で書くのではなく、AIに「こういうものが作りたい」と自然言語で伝えて開発する手法のことだ。AIの研究者であるAndrej Karpathyが名付けた概念で、2025年にはCollins Dictionaryの「Word of the Year」にも選出された。

僕が使っているのはClaude Codeというツール。ターミナルでAIと対話しながら、アプリケーションを構築していく。(以前、占いアプリを3日で作った記録も書いている。)自分が書いたコードの量はほぼゼロ。でも、「何を作りたいか」「誰のために作るのか」「どう動いてほしいか」——そういう言葉は何千行も書いた。

バイブコーディングの本質は、プログラミング言語を習得することではなく、自分の困りごとを言語化する力だと思う。そしてこれは、教員が毎日やっていることでもある。

従来のコーディングとバイブコーディングの違い — コードを書くのではなく、AIと会話して作る

5つのアプリ、全部「困っていた」から始まった

ここから、3ヶ月で作った5つのアプリを紹介する。共通しているのは、どれも自分が現場で困っていたことがスタート地点だということ。誰かに頼まれたわけでもなく、市場調査をしたわけでもない。「これ、もうちょっと楽にならないかな」という素朴な不満が、全ての出発点だった。

5つのアプリの開発タイムライン — 1日で作れるものから、数ヶ月かけて育てるものまで

1. 席替えツール — 1日で作った最初のアプリ

困っていたこと

席替え。地味だけど、担任にとっては結構なストレス源だ。

くじ引きで決めれば公平だし、生徒も盛り上がる。でも現実はそう単純じゃない。視力が弱い生徒は前の方がいい。特定の組み合わせを避けたい場合もある。教室の構造上、車椅子のスペースが必要なこともある。こういう配慮事項を頭の中で管理しながら、Excelで手作業で座席表を作っていた。

作ったもの

Vanilla JavaScriptでブラウザ上で動く席替えツール。名前を入力して、ドラッグ&ドロップで座席を配置できる。配慮事項を設定すれば、ランダム配置の際に自動で反映される。サーバー不要、ブラウザだけで完結する。

席替えツールの画面 — ドラッグ&ドロップで直感的に操作

開発期間は1日。 これが最初に作ったアプリだった。

変わったこと

今では、担任を持っているほとんどの教員がこのツールを使ってくれている。「先生、あのツールのURL教えて」と聞かれることが増えた。

実は、くじ引き機能もそろそろ実装しようかと思っている。ランダム配置はアルゴリズムだが、生徒の前でくじ引きをやるライブ感も捨てがたい。配慮が必要な席だけ事前に固定しておいて、残りをくじ引き——そういうハイブリッドな運用が理想かもしれない。

2. 授業進度管理アプリ — 3日で形になったPWA

困っていたこと

僕は週に複数コマの授業を担当している。各クラスで「今日どこまで進んだか」を記録して、年間計画と照らし合わせる必要がある。

これをExcelで管理していたのだが、関数が壊れる。シートが増えて重くなる。スマホから入力できない。教室を移動するたびにノートPCを開く時間もない。

作ったもの

React + Vite で構築したPWA(Progressive Web App)。スマホのホーム画面から起動して、授業が終わったらその場でサッと記録できる。

自分の学校に最適化したのがポイントだ。存在する授業をあらかじめ登録しておき、選択するだけで記録が始まる。単位数や、専門教科であれば必要時間数も設定済み。「今日の進度を入力してください」ではなく、「今日はどの授業をやりましたか?」と聞いてくる。

授業進度管理アプリの画面 — スマホから教室でサッと記録

開発期間は3日。 その後もUIの調整は続けているが、基本機能は3日で動いた。

変わったこと

教室でスマホをサッと出して、10秒で記録が終わる。職員室に戻ってからExcelを開く必要がなくなった。年間計画との進度差も一目でわかるので、「このクラスちょっと遅れてるから次の授業で調整しよう」という判断が素早くなった。

3. PDF分割ツール — 毎日使う地味な必需品

困っていたこと

学校には大量のPDFが届く。求人票、成績関連の書類、研修資料。これらを生徒ごと、クラスごとに分割したり、逆に統合したりする作業が日常的に発生する。

オンラインのPDF分割サービスは山ほどある。でも、生徒の個人情報が含まれたPDFを外部のサーバーにアップロードするわけにはいかない。学校の情報セキュリティポリシー的にもアウトだ。

作ったもの

Vanilla JavaScript + pdf.js + pdf-lib で作った、完全ローカル処理のPDF分割・統合ツール。ブラウザ上で動き、ファイルは一切サーバーに送信されない。選択したページだけを切り出したり、複数のPDFを1つにまとめたりできる。

PDF分割ツールの画面 — ローカル完結で個人情報も安心

開発期間は1日。 シンプルだけど、これが一番使用頻度が高い。

変わったこと

毎日使っている。誇張ではなく、本当に毎日だ。

求人票が大量に届く時期は特に威力を発揮する。教材の管理にも使える。大事な文書を安全に扱えるという安心感が大きい。同僚からも「ローカルで完結するのがいい」と評価してもらっている。

4. 旅費精算アプリ — 20分が5分になった

困っていたこと

教員の出張は意外と多い。研修、大会引率、他校訪問。そのたびに旅費精算の書類を提出する必要がある。

紙ベースの申請だと、2枚の書類を手書きで作成する。経路を調べて、運賃を記入して、日当を計算して、上長の印鑑をもらって——1回の精算にだいたい20分はかかっていた。

紙とハンコの山から、ノートPCとスマホだけのスッキリしたデスクへ

作ったもの

React PWA で作った旅費精算アプリ。スマホで経路を検索して、そのまま申請書を生成できる。どこにいてもスマホから入力可能。

旅費精算アプリの画面 — スマホから経路検索→即申請書生成

これは他のアプリと違い、1ヶ月以上かけて作り込んだ。というより、今でも3ヶ月にわたってアップデートを続けている。旅費精算は法規やルールが複雑で、エッジケースが次々と出てくる。「この経路の場合は?」「宿泊が絡むと?」——使えば使うほど改善点が見つかる。保守運用の大変さと楽しさを教えてくれたアプリだ。

変わったこと

20分かかっていた精算が、5分未満で終わる。 これは体感ではなく、実測値だ。しかも場所を選ばない。出張先の電車の中で精算を済ませて、職員室に戻ったら印刷するだけ。

5. 担任手帳 — 全部入りの集大成

困っていたこと

担任の仕事は多岐にわたる。生徒の情報管理、席替え、出欠記録、メモ、面談記録。これらが全部バラバラのファイルやノートに散らばっていた。Excelファイルが3つ、紙のノートが1冊、頭の中の記憶が無数。

しかも生徒の個人情報だ。クラウドに上げるわけにはいかない。USBメモリに入れて持ち歩くのもリスクがある。

作ったもの

Tauri 2.0で構築したデスクトップアプリ。完全ローカル動作で、データは暗号化バックアップ(AES-256-GCM)に対応。生徒管理、席替え(ドラッグ&ドロップ)、班分け、出欠管理、メモ機能を1つのアプリに統合した。

担任手帳の画面 — 担任業務を一元管理、完全ローカルで安心

基本機能は4日で完成。 ただし、ここに今まで作ったアプリの経験を全部注ぎ込んだ。席替えツールのドラッグ&ドロップ、PDF管理の知見、UIの設計思想。4つのアプリを作ってきたからこそ、「担任に本当に必要な機能は何か」が見えていた。

今も調整を続けている。印刷機能の最適化、教壇視点での座席表表示、ふりがな対応——現場で使いながら磨いていく開発スタイルが定着した。

変わったこと

担任業務が1つのアプリに集約された。「あのファイルどこだっけ」がなくなった。個人情報の管理も、暗号化バックアップのおかげで安心感が段違いだ。

バイブコーディングで見えた景色

3ヶ月間、仕事の後に1日3時間ほどの開発を続けてきた。5つのアプリが形になった今、振り返って思うことがいくつかある。

「ユーザーが隣にいる」強み

僕のアプリのユーザーは、同僚の教員だ。廊下で「あの機能さ、こうなったら嬉しいんだけど」と言われたら、その日の夜に直せる。マーケティングリサーチも、ユーザーインタビューも要らない。困っている人が隣にいて、解決策を翌日には届けられる。これはプロの開発者にはない、現場にいる人間だけの特権だと思う。

廊下での何気ない会話が、アプリ改善のきっかけになる

完璧を目指さない

最初から完璧なアプリを作ろうとしたら、何も完成しなかったと思う。席替えツールは1日で作って、翌日から使い始めた。バグはあった。見た目も荒かった。でも、Excelよりはマシだった。「Excelよりマシ」——この基準で十分だった。

使いながら直す。現場の声を聞いて足す。旅費精算アプリは3ヶ月経った今でもアップデートしている。バイブコーディングは「完成」ではなく「改善の連続」と相性がいい。

作る側に回って初めてわかること

アプリを使う側から作る側に回ると、見える景色がまるで変わる。「なんでこのアプリはこんな仕様なんだ」と思っていたことに、ちゃんと理由があることがわかる。セキュリティの重さ、エッジケースの多さ、UIの難しさ。全部、作ってみて初めて実感した。

これは教員としての視野も広げてくれた。生徒に「プログラミングって何ですか」と聞かれたとき、教科書の定義ではなく、自分の言葉で答えられるようになった。(このあたりの話は「AIが怖い」と思っているあなたへにも書いた。)

まとめ:「困っている」は、プロダクトの種になる

バイブコーディングは、プログラミングの参入障壁を劇的に下げた。コードが書けなくても、「何を作りたいか」を言葉にできれば、動くものが生まれる時代になった。

僕の5つのアプリは、全て「困っている」から始まった。席替えが面倒、進度管理が大変、PDFの処理が不安、旅費精算が面倒、担任業務がバラバラ。どれも特別な困りごとではない。教員なら誰でも抱えている、ありふれた不満だ。

でも、その「ありふれた不満」をアプリという形にできる時代が来た。必要なのは、プログラミングスキルではなく、自分の困りごとを言葉にする力だ。

もし同じように「現場をもっと良くしたい」と思っている方がいれば、ぜひバイブコーディングを試してみてほしい。最初の一歩は、AIに「こういうのが欲しいんだけど」と話しかけるだけでいい。

日常の困りごとが、会話を通じてアプリになる


学校向けアプリ開発の詳しいノウハウに興味がある方は、shop.imkisyou.com もぜひ覗いてみてください。

Share: 𝕏