表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
1/1

第一章 種を植える

 午前二時。研究室のモニターだけが青白い光を放っていた。

 佐藤蓮は、キーボードの前で動けなくなっていた。画面には論文の草稿が表示されている。しかし彼の目は、もうその文字を追っていなかった。指が、キーボードの上に乗ったまま、何も打てずにいた。

 二十五歳。東京都内の大学院で認知科学を専攻する修士二年生。来年には就職活動が本格化する。修士論文の提出期限も迫っている。指導教官との関係は、この半年でじわじわと冷え込んでいた。研究室の同期たちとは、いつからか昼食を別々に食べるようになっていた。

 いつから、こんなに重くなったのだろう。

 蓮はため息をついて、椅子にもたれた。天井を見上げる。蛍光灯の白さが目に刺さった。スマートフォンを手に取り、なんとなくアプリストアを開いた。検索バーに「メンタルヘルス」と入力する。いくつかのアプリがずらりと並んだ。

 評価の高いものを三つダウンロードして、順番に試してみた。

 最初のアプリは、起動するなり「今日の気分を五段階で評価してください」と聞いてきた。蓮は少し考えてから、三を選んだ。するとアプリは「まあまあですね。ポジティブな出来事を三つ記録しましょう」と返してきた。蓮は画面を閉じた。

 二つ目のアプリは、目標設定から始まった。「今月の目標を入力してください」。蓮は何も入力せずにアプリを閉じた。

 三つ目は、達成率がグラフで表示される仕組みだった。「昨日より二十パーセント達成率が下がっています」という通知が来た瞬間、蓮はそのアプリも削除した。

 静かなアプリストアの画面を見つめながら、蓮は自分が何を求めているのかを考えた。評価されたくない。比較されたくない。達成率を見たくない。ただ、今日どんな気分だったかを、誰にも採点されることなく残しておきたい。ただそれだけなのに、そういうアプリが見当たらない。

 「なければ、作ればいい」

 その言葉が、頭の中でぽつりと灯った。

 蓮はしばらくその言葉を転がしていた。作る、か。自分が?プログラミングの授業は学部時代に少し受けたことがあるが、簡単なPythonのコードを書いた程度だ。Androidアプリを作ったことなど、一度もない。

 しかし、と蓮は思った。今は二〇二五年だ。

 蓮はノートパソコンを引き寄せ、ブラウザを開いた。向かった先はClaude、Anthropicが提供するAIアシスタントだ。論文の参考文献を調べるときや、英語の文章を確認するときに使っていた。しかし今夜は、全く違う目的で開く。チャット画面に、おそるおそる最初の一文を打ち込んだ。

 「Androidアプリを作ってみたいのですが、プログラミングはほぼ初心者です。何から始めればいいですか?」

 数秒後、返事が来た。丁寧で、しかし簡潔な説明だった。まず開発言語を選ぶこと。次に開発環境を整えること。そしてアプリの設計を考えること。箇条書きではなく、まるで隣に座った先輩が話しかけてくれるような文体だった。

 蓮は続けて質問した。「AndroidはKotlinとJavaどちらの言語で書けばいいですか?」

 Claudeの答えは明快だった。現在のAndroid開発ではKotlinが標準で、Googleも公式に推奨している。コードが簡潔に書けて、プログラミングの落とし穴のひとつである「nullエラー」——変数に何も入っていない状態を誤って使ってしまうエラー——を未然に防ぐ仕組みが言語に組み込まれている、とのことだった。蓮にはまだ完全には理解できなかったが、「新しくて安全な言語」という理解でKotlinに決めた。

 次にUIの作り方を聞いた。UIとはUser Interface、つまりアプリの画面のことだ。Claudeは「Jetpack Compose」という選択肢を薦めてきた。

 「Jetpack Composeは、画面の見た目と動作を同じ場所に書ける、新しい書き方です」とClaudeは説明した。「たとえると、料理のレシピで材料と手順が別々のページに書かれているより、同じページにまとまっている方が分かりやすいですよね。Composeはそういう考え方で作られています」

 その例えが、蓮には妙に響いた。認知科学の観点から見ても、関連する情報が近くにある方が人間の理解を助ける、というのは正しい。蓮はJetpack Composeを選んだ。

 深夜三時を過ぎていた。しかし蓮の眠気は、不思議なほど消えていた。

 翌日の午後、蓮は大学の図書館カフェに陣取り、ノートパソコンを開いた。昨夜の続きだ。今日はアプリの「骨格」を考える段階だと、Claudeに言われていた。

 「アプリのアーキテクチャについて教えてください。どう設計すればいいですか?」

 Claudeが答えた。アーキテクチャとは、コードをどのように整理するかの設計思想のことだ。これを決めずに作り始めると、後から修正するたびにあちこちが壊れる、ぐちゃぐちゃなコードになる、と説明してくれた。

 「Android開発では、MVVMというパターンが広く使われています。Model、View、ViewModelの三つの層に役割を分けます」

 蓮はノートにメモを取りながら聞いた。Modelはデータを扱う部分。アプリの中でユーザーが記録した気分のデータを保存したり取り出したりする。Viewは画面を描く部分。ユーザーが目にするボタンやテキストがここだ。そしてViewModelは、その二つの橋渡し役。画面からの操作をデータ層に伝え、データの変化を画面に知らせる。

 「画面は絶対に、データベースに直接触りません。必ずViewModelを経由する。この原則を守ることで、どこで何が起きているかが追いやすくなります」

 蓮はその説明を聞きながら、研究室のことをふと思った。指導教官と学生が直接衝突する前に、間に入って調整してくれる人がいれば、どれだけ楽だっただろう。ViewModelとは、そういう存在なのかもしれない。

 概念を掴んだところで、蓮はいよいよ「Android Studio」のインストールに取りかかった。Android Studioとは、Androidアプリを作るための専用ソフトウェアだ。コードを書いて、動かして、エラーを確認する作業を全てこのソフトの中で行う。いわば、アプリ開発のためのアトリエだ。

 インストール自体は難しくなかった。しかしダウンロードに思いのほか時間がかかった。本体のプログラムに加え、Androidアプリを動かすための道具一式も自動的にダウンロードされるため、合計で数GBになる。蓮は待ちながら、コーヒーを二杯飲んだ。

 インストールが完了し、最初のプロジェクトを作成した。いくつかの設定を入力し「完了」を押すと、Android Studioが自動的にファイルの雛形を生成してくれた。

 そして、最初のエラーが来た。

 画面の下部に赤い文字が並んでいた。英語の長い文章が、蓮には呪文のように見えた。しかし蓮は、もう怖くはなかった。エラーメッセージをそのままコピーして、Claudeのチャット画面に貼り付けた。

 「このエラーは、Kotlin 2.0以降でComposeを使うために必要なプラグインが追加されていないことを示しています。設定ファイルに一行追加するだけで解決します」

 Claudeが具体的なコードを示してくれた。蓮はそれをコピーして、指定されたファイルに貼り付けた。再ビルドを実行する。今度は赤い文字が消えた。

 「エラーは敵じゃない」と蓮は小さく呟いた。「エラーは、Claudeへの質問文だ」

 概念の理解と環境の準備が整ったところで、蓮はいよいよ本格的なコードの生成に取りかかった。ここで登場するのが「Codex」だ。OpenAIが提供するこのツールは、コードの生成に特化している。Claudeが「何を作るか・どう設計するか」を一緒に考えてくれる相談相手だとすれば、Codexは「その設計図を元に実際に建てる職人」に近い。

 蓮はClaudeとの対話を通じて固めたアプリの設計を、Codexへの指示文としてまとめた。この指示文のことを「プロンプト」と呼ぶ。どんな役割のAIとして動いてほしいか、どんなアプリを作りたいか、どんな技術を使うか、どんな思想を反映してほしいか。それらを整理して、ひとつの文章にまとめる作業だ。

 蓮は一時間かけて書き上げた。「あなたは優秀なAndroidエンジニアです」という書き出しから始め、アプリの目的、機能の一覧、使う技術、そして最後に「評価しない、比較しない、強制しない」という思想を添えた。Claudeに何度も相談しながら、言葉を選んだ。

 そしてCodexに送信した。

 数秒後、Codexが応答を始めた。Kotlinのコードが、滝のように画面に流れてくる。蓮にはまだその全てを理解できなかったが、それが確かに「アプリの骨格」として意味を持っていることは、なんとなく分かった。Claudeに教わったMVVMの三層が、実際のコードとして目の前に存在していた。

 蓮はそのコードをAndroid Studioにコピーし、ビルドを実行した。しばらく待つ。画面の右側に、スマートフォンを模した画面が現れた。エミュレーターと呼ばれる、パソコンの中で動く仮想のスマートフォンだ。

 そこに、アプリが起動した。

 緑色を基調とした、シンプルな画面。上部に「Forest Mood」という文字と、小さな葉のアイコン。タブが四つ並んでいる。「軌跡」「暦」「きろく」「設定」。

 蓮は、その画面をしばらく眺めていた。

 笑いが込み上げてきた。声を出さないように口を押さえたが、それでも肩が震えた。隣のテーブルにいた学生が、怪訝そうにこちらを見た。蓮は会釈して、また画面に向き直った。

 「できた」

 たったそれだけの言葉だったが、それは蓮にとって、ここ数ヶ月で初めて「自分の力で何かを作った」という感覚だった。論文は指導教官に方向を決められる。就職活動は企業の基準で評価される。しかしこのアプリは、蓮が「必要だ」と思って、蓮が作り始めたものだった。

 窓の外は、もう夕暮れだった。空が橙色に染まっていた。蓮はコーヒーカップを持ち上げたが、とっくに冷めていた。それでも、一口飲んだ。

 今日、蓮が学んだことを振り返った。Claudeは、分からないことを教えてくれる先生だった。Codexは、設計を形にしてくれる職人だった。Android Studioは、それを動かすアトリエだった。そしてエラーは、次への問いかけだった。

 この三つを使いこなすことが、これからの開発の基本になる。蓮はそう確信した。

 種は、土に触れた。

 芽が出るかどうかは、まだ分からない。しかし蓮は、水をやり続けることを決めた。

 次にやるべきことは、Gitの設定だ。Claudeがそう言っていた。「コードを書き始めたら、最初にやるべきことがあります。変更の履歴を記録する仕組みを整えることです」と。それが何なのか、蓮はまだ完全には理解していなかった。しかし、それを知る日は、もうすぐそこに来ていた。


評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

↑ページトップへ