最近、AIと共に作った「世界時計」アプリを、App StoreとGoogle Playに公開しました。
その過程で、AIの弱点がはっきり見えました。同じようにAIを使って開発している方の参考になればと思い、共有します。
弱点1:回答は統計処理である
多くの人がここで騙されます。
AIは「次に来る確率が高いトークン」を予測しているだけです。正しいから回答しているのではありません。確率的に高いから回答しています。
私のような少数派の開発スタイル(Riverpodを使わない、小さな自己完結型Widgetで構成するなど)を取ると、AIの回答がしばしば的外れになります。大多数が採用しているアプローチが「正解」として返ってくるからです。
大量のテキストを学習した結果、博士のような知識を持っていますが、回答はその統計処理にすぎません。
弱点2:自分で作ったコードを追えなくなる
Geminiは「ベストプラクティス」を知っています。だから勝手にRiverpod(状態管理ライブラリ)を入れてきました。
しかし、開発が進んで複雑になっていくと、自分で作ったコードを追えなくなりました。
Providerの修正が必要な変更を頼むと、修正すべき箇所をすべて修正できません。文法エラーになるものは検出できますが、そうでないものは実行時エラーになったり、意図しない表示になったりします。
これが「推論の弱さ」です。
知識は博士レベル。でも推論は小学生レベル。
複雑な依存関係を追い続けることができません。だからこそ、私はRiverpodを使わず、小さな自己完結型Widgetで構成する方法を選んでいます。AIと協働するなら、AIが追える範囲に複雑さを抑える設計が重要です。
弱点3:学習データの時期が古い
Gemini 2.5 Proに「いつまでのFlutterを学習しているか」と問うと「2025年後半(10月〜11月頃)」と答えます。
しかし、どんどん追求していくと、回答の実質的なベースはデータ量が豊富なFlutter 3.24〜3.27(2024年末〜2025年初頭)あたりということを白状します。
最新のFlutterでコードを書きたい場合、Geminiのハルシネーションはひどいものになります。
ChatGPTは「2024年の春〜初夏まで」と正直に言うので、まだ信頼できます。ただし「最新の情報を調べて」と明示的に言わないと古い情報で回答が返ってきます。そうすると時間がかかり、トークンの使用量も増えます。
これが「継続学習の問題」です。
現在のLLMは一度学習したら固定されます。新しい知識を追加しようとすると、古い知識を忘れる(破滅的忘却)。だからWeb検索で補っていますが、それは継続学習ではなく外部ツール依存です。
だから私は、モダンなパッケージを避けて、SQLiteなど昔からある技術を選んでいます。
新しいパッケージは学習データが少なく、AIのハルシネーションが多発します。一方、SQLiteのように長年使われている技術は、学習データが豊富で、AIの回答精度が高い。FlutterでもDrift(旧Moor)のような新しいORMより、sqfliteで直接SQLを書く方が、AIとの協働はうまくいきます。
枯れた技術を選ぶことは、AIと協働する上での実践的な戦略です。
弱点4:継続学習ができないことによる経済的限界
継続学習ができないため、毎回一から学習してモデルを作らなければなりません。
だからOpenAIは非営利から営利に転換し、巨額の投資を集めています。あまりにも経済性が悪すぎます。このビジネスモデルがいつまで持つのか、私には疑問です。
これらの弱点が企業導入を阻む
継続学習ができないことは、業務導入の最大の障壁になっていると考えられます。
企業は自社の業務知識をAIに学習させたい。でも学習させると他の知識を忘れる。だからRAGやSkillsで回避するしかありません。
では、RAGを設計できるのは誰か。Skillsを作れるのは誰か。
優秀なPM兼アーキテクトです。
そんな人材はほとんどいません。だから企業導入は進まない。
AIは「誰でも使える」と宣伝されています。でも現状は「優秀な人しか使いこなせない」のが実態です。
個人開発者として生き延びるために
AIの弱点は多いですが、改善されていくでしょう。問題は、私たちがどうAIと付き合うかです。
私が実践していることは3つです。
1. AIの限界を理解する
魔法ではなく、確率と最適化の道具だと理解する。だからこそ、AIが追える範囲に設計を収める。Riverpodを避けて自己完結型Widgetを選んだのは、この理由です。
AGIに期待しない。 「もうすぐAGIが来る」「AIがすべてを解決する」という話を聞くと、今の苦労が無駄に思えるかもしれません。でも、AGIを待ちながら競争に巻き込まれると、みんな消耗するだけです。
来るかどうかわからないものを待つより、今のAIの限界を理解して、その範囲で使いこなす。その方が確実に成果が出ます。
2. 目的・設計・構造を手放さない
実装はAIに任せても、「何を作るか」「なぜ作るか」は自分で決める。AIは優秀な実行機械ですが、目的を与えなければ、目的そのものを代行してきます。
3. 自分の思考様式を活かす
私は言語化が苦手です。でも、だからこそAIは「翻訳装置」として強力な武器になります。頭の中の構造をAIに言語化してもらい、コードに変換してもらう。この使い方なら、弱点を補い合えます。
結論:AIに使われないようにする
感情がなく疲れもしらないAIに使われると悲惨なことになると思いませんか?
AI時代に価値を持つのは、コードを書く人間ではありません。構造を作れる人間です。
考えることをやめない。設計を手放さない。判断を委ねない。
それが、AIと共に開発を続けるための条件だと、今回のアプリ公開を通じて確信しました。
