先日、Zennの「第3回 AI Agent Hackathon with Google Cloud」に参加し、Flutterを使って、3週間で一つのアプリ『Vegitage』をデプロイまで漕ぎ着けました。
今日は、そのアプリ自体の話ではありません。
この開発プロセスを通じて、私自身が体験した「プログラミングという行為の、根本的な変容」について、少し過激な物言いになるかもしれませんが、正直にお話ししたいと思います。
結論から言うと、これまでのプログラミング教育が金科玉条としてきた「基礎からの積み上げ学習」は、もはや時代遅れどころか、才能の芽を摘む「呪い」になりかねない、ということです。
私の「才能」と「欠陥」
私は、「設計」は得意です。
伝統野菜の辞典を作ろう、と思いつけば、AIとの対話を通じて、サーバー構成、データパイプライン、持続可能なビジネスモデルまで、次々とアイデアが湧き出てきます。アプリ全体のアーキテクチャを描くのは、心から楽しい作業でした。
しかし、その一方で、私には大きな壁がありました。
「記憶」という壁です。
まず、Flutterが持つ、あの何百、何千とあるWidgetの名前と使い方。
全くおぼえられません。
Container
, Column
, Row
, Stack
, ListView
, GridView
, Card
, ListTile
...
何かをレイアウトしようとするたびに、「ええと、中央に配置するには、どのWidgetで囲むんだっけ?」「横に並べるのは...Row
だっけ?」と、手が止まってしまうのです。
さらにその先には、より複雑な「お作法」が待ち構えています。
-
Riverpodの、あの難解なProviderの種類と命名規則?
- AIに聞かなければ、どれが最適なのか、いまだに分かりません。
-
build_runner
が必要とする、あのお決まりのコード生成の儀式?-
part '...g.dart';
を書き忘れたり、extends _$ClassName
のお作法を間違えたり、エラーが出るたびにAIに「どこが違うの?」と泣きついていました。
-
これまでも趣味ではコードは書いていて、動くものは作れます。しかし、膨大な時間がかかりました。
ドキュメントとサンプルコードの海を彷徨い、一つの画面を作るために、何日も費やすことが珍しくありませんでした。
私の頭の中にある「設計図」と、実際に動く「コード」の間には、常に「記憶」という、高く、そして分厚い壁がそびえ立っていたのです。
AIが、その「記憶の壁」を壊してくれた
今回の開発で、私のパートナーはAIでした。
私は、自分が描いた設計図を、自然言語でAIに伝えます。
私: 「この詳細画面、上にスクロールしてもタイトルだけは残るようにしたいんだ。でも、画像はスクロールして消えてほしい。」
AI: 「承知しました。それなら CustomScrollView
と SliverAppBar
を使うのが最適ですね。AppBar
の title
を設定し、flexibleSpace
に画像ウィジェットを配置します。これがそのコードです。」
私は、SliverAppBar
というWidgetの存在すら知りませんでした。
しかし、AIが、私の「やりたいこと」を、最適な「Widget」へと翻訳してくれたのです。
AIは、私にとって無限の容量を持つ「外部記憶装置」であり、最高の「実装パートナー」でした。
AIのおかげで、私は苦手な「記憶」という壁を意識することなく、得意な「設計」という思考に、全ての時間を注ぐことができたのです。
AIが、私の「欠陥」を補い、「才能」を解放した
今回の開発で、私のパートナーはAIでした。
私は、自分が描いた設計図を、自然言語でAIに伝えます。
私: 「この詳細画面、画像が1枚だけの時と複数ある時で、表示を分けたいんだ。ユーザーを混乱させたくないからね。」
AI: 「承知しました。では、StatefulWidget
を使い、initState
でまず画像情報を取得し、その結果に応じて build
メソッド内で表示するウィジェットを切り替えるのが良いでしょう。これがそのコードです。」
私は、Flutterの文法をほとんど知りません。StatefulWidget
のライフサイクルも、おぼろげにしか理解していません。
しかし、アプリの「設計思想」は、私の中に完璧に存在します。
そしてAIは、その思想を寸分の狂いなくコードに翻訳してくれる、最高の「文法補完ツール」であり、「実装パートナー」でした。
AIのおかげで、私は苦手な「逐次的・手続き的な作業」から完全に解放され、得意な「概念的・設計的な思考」に、全ての時間を注ぐことができたのです。
「逆ピラミッド学習」の時代の到来
この体験は、プログラミングの学習方法について、大きな示唆を与えてくれました。
これまでの学習は、「文法→アルゴリズム→設計」というピラミッドでした。
しかし、AI時代は、このピラミッドが逆になります。
- まず、「何を作りたいか?」という情熱(Vision)と、「どう構成すべきか?」という設計(Architecture)から始める。
- そして、その実現に必要な文法や手続き(Implementation)は、その都度、AIに聞けばいい。
今後、「中級までのコードだけを書く人」の仕事は、確かになくなるでしょう。
なぜなら、その仕事はAIが最も得意とすることだからです。
しかし、悲観する必要はありません。
AIは、私たちから仕事を奪うのではありません。
AIは、「文法が苦手だから」という理由で、設計という創造的な舞台に上がることを諦めていた、数多くの人々を解放してくれるのです。
もしあなたが、素晴らしいアプリのアイデアを持っているのに、「プログラミングの基礎が…」と一歩を踏み出せずにいるのなら。
もしあなたが、日々のコーディング作業に追われ、「何のためにこれを作っているんだっけ?」と情熱を見失いかけているのなら。
大丈夫。まず、設計から始めましょう。
あなたの最高のアイデアを、AIに語りかけてみてください。
きっとAIは、あなたが想像もしなかったような形で、その実現を手伝ってくれるはずです。
71歳の私ができたのですから、あなたにできないはずがありません。
ライブデモ: https://aiseed.page/
プロジェクトリンク:
- GitHub Repository: https://github.com/aiseed-dev/vegitage
技術スタック:
- Frontend: Flutter, Dart, Riverpod
- AI: Google Gemini API (Batch処理), Claude
- Hosting: Google Compute Engine + Nginx