最近、新人エンジニアの方の「AIに頼りすぎてハリボテ人間(実力がない状態)になっていないか不安」という記事を拝見しました。
現在、自分は個人でiOSアプリを複数運用・開発していますが、正直に言うと僕自身も毎日 Cursor や ChatGPT を使い倒しています。もう AI なしの solo-dev に戻る気はありません。
ただ、AIをフル活用していても「ハリボテのエンジニア」になる人と「爆速で価値を生み出すエンジニア」には明確な違いがあると感じています。
今回は、独立アプリ開発者の視点から、AI時代に「自分の思考力」を落とさないために意識していることを短くまとめます。
👨💻 AIは「優秀だけど仕様を知らないJr.エンジニア」
エラーが出た時や実装方針で迷った時、すぐにAIに頼る行為自体は全く悪くありません。
重要なのは「指示を出す側(自分)が何を理解しているか」です。
僕が作業する時は、AIを「指示通り爆速で書いてくれるJr.エンジニア」だと思っています。
❌ ダメな使い方: 「動かないから直して(丸投げ)」
⭕️ 良い使い方: 「〇〇の設計思想で、△△の例外処理を含めてコードを書いて(仕様の提示)」
例えば:SwiftUIで画面を作る場合
丸投げすると、動作はするものの、パフォーマンスや保守性に欠けるコードが返ってくることがあります。
Swift
// AIがパッと出してきたコード(動くけど…)
struct UserProfileView: View {
@State var user: User?
var body: some View {
VStack {
if let user = user {
Text(user.name)
}
}
.onAppear {
// 画面が表示されるたびにAPIを叩いてしまう
fetchUserData()
}
}
}
これをただコピペして終わりにするのではなく、「あれ?これ画面が再描画されるたびにリクエスト飛ぶのでは?」と疑問を持てるかどうかが境界線です。
💡 コピペする前に「10秒」だけ自分に問いかけること
AIが提示してきたコードをプロジェクトに貼り付ける前に、必ず次のことを意識しています。
「このコードの意図を、他人に1行ずつ説明できるか?」
完全に理解できなくても構いません。大切なのは「ブラックボックスをゼロにする」という姿勢です。
もし分からない構文や処理があれば、AIにこう追加質問すればいいだけです。
「この処理、なぜ .onAppear ではなく .task を使っているの?」
この「10秒の確認」を挟むだけで、AIが出したただの文字列が、あなたの血肉となる技術知識に変わります。
📝 まとめ
個人開発において、AIは開発スピードを10倍にしてくれる最高のパートナーです。
AIを使うこと自体に罪悪感を持つ必要はない
ただし「なぜそのコードで動くのか」の思考を放棄しないこと
自分がプロダクトの責任者(テックリード)である意識を持つこと
AIに使われるのではなく、AIを使い倒して、自分が作りたいアプリをどんどん世に出していきましょう!