2025.06.02 (月)

Gemini 2.5 Proによる要約  

今日は「Flutterアプリ開発基礎」講座の23講実習編を勉強していて、かなり大きく現実を突きつけられる経験をした。

原文

今日は「Flutterアプリ開発基礎」講座の23講実習編を勉強していて、かなり大きく現実を突きつけられる経験をした。

僕が開発を勉強するとき、どんなふうにAIを活用していて現実を突きつけられたのかについて、簡単なサンプル写真と一緒に説明してみたい。

(追加で、AIを開発/勉強にどう活用すればいいのか感覚がつかめない方に、よいインスピレーションを与える例になればと思う。)

naver-140-001

naver-140-002

僕に与えられた課題は、左の空ページを右の青いページにすることだった。

naver-140-003

これが最初に与えられた空っぽのページだ。

ところがふと気になった。Gemini 2.5 Proにスクリーンショットを添付し、サンプルコードを添付したら、果たしてどれほど絵に一致するように実装してくれるのだろうか?

naver-140-004

naver-140-005

naver-140-006

naver-140-007

naver-140-008

www

いや… まじかwww

性能がいいことは知っていた。知ってはいたのだが… こうして数秒でさくっと完成してしまうのを見ると、あきれるしかなかったwww

しかし、ここで僕は性能に対する疑いを捨てなかった。

こいつが提供したコードはStackやPositionedなど「強制的な位置固定」ウィジェットを多く使っていたのだが、僕はそういう方式は小手先のやり方ではないかと疑った。まさに僕が要求した絵にだけ合うコードを提供した感じ?

だから聞いてみた。

naver-140-009

naver-140-010

やはり、定石っぽい感じでは僕の方式が合っていたらしい。

ここまで来たなら、一度講師のソリューション(解答)コードを分析せずにはいられなかった。

講師は果たして二つのうちどちらの方式で実装したのだろうか?

naver-140-011

naver-140-012

naver-140-013

naver-140-014

naver-140-015

?????

え?

本当に…?

ありえない…

講師もStackとPositionedを使うの?うわ…

まあ、それでも講師のコードのほうが当然よさそうだけど。

naver-140-016

naver-140-017

何だこれ…

講師のコードとGeminiのワンクリックコードの違いが、せいぜい透明度を入れる関数の「種類」の違いだけだって??

naver-140-018

これは僕がVSCodeのエラーメッセージを読んで、すでに知っていた知識だ。

withOpacityはバージョンアップに伴ってwithValuesに置き換えられ、最近では使用が推奨されない関数だ。

naver-140-019

うわ。プロンプトインジェクション攻撃(簡単に言えば、AIに偽情報をガスライティングして注入すること)をしようとしていると誤解したらしい。急に回答を拒否する。

naver-140-020

「検索」して「お前が」判断してみろと言ったら、幸い回答を再開した。

検索してみたら認めるんだな。

やっぱり賢いな、うちのジェミン。

naver-140-021

わあ… 本気で現実を突きつけられた。

結局、講師のコードとGeminiのコードは、一文字「だけ」違って、ほとんど全部同じだった。

naver-140-022

この部分が本当にぞっとした。

ここで勉強意欲がもう一度ぐしゃっと崩れそうになった。

今の時代に、時代遅れの古い勉強方法を頑固に続ける理由があるのか…?

一瞬カッとなって、講義も何もかも全部投げ出し、Vibe Codingに移ってMVPアプリでも狂ったように量産してみようかという衝動が一気に湧いた。本当に分からないではないか。それがもっと賢い選択なのかもしれない…

しかし、すぐ落ち着き、僕に与えられた課題にもう一度集中することにした。

僕は6月までにFlutterアプリ開発の基礎/実戦講座を全部終える。

MVPアプリを作る間、今日の例のように「AI」から「助け」は受けられるかもしれないが、「AI Agent」から「成果物」は受け取らないつもりだ。

そうなるとプロジェクト規模が大きくなるほど、僕には抱えきれない技術的負債が山のように積み上がってしまい、結局AIにすべてを依存するしかなくなるからだ。

… たぶん。AI技術の発展が僕の予想よりさらに速くないという前提での話だけど…

コメントする