見出し画像

iOS開発でClaude活用とその限界

ChatGPTの盛り上がりはちょっと冷ややかな目で見てたんですが、Claudeとの出会いで一気に生活の中に生成AIが入りこみました。

今年の春頃、たまたま会社の集まりで「Claudeええで」「クロ……何?」「クロード」「クロード……」というやりとりがあって、今や毎日使うサービスとなったClaude。

「Swiftで配列の要素挿入ってどう書くんでしたっけ?」

「ピッチングで上半身と下半身の連動が上手くいかないんですがどうしたらいいですか?」

「このYouTubeサムネイルどう思いますか?」

「この英文でxxxという単語が使われていますが、なぜこの意味になるんですか?」

「これはブログ記事の下書きです。誤字脱字を教えてください」

「今日の晩御飯何が良いと思います?」

などなど、多種多様な質問をしています。

以前にClaudeを個人開発に使ったら良かったという記事書いたのですが、本業のiOS開発でどこまで使えるのかを書いていきます。半年ほど試行錯誤してました。


アドベントカレンダーについて

※ この記事はnote株式会社 Advent Calendar 2024の7日目の記事です。

▼noteエンジニアアドベントカレンダーはこちら

▼さらにnoteの技術記事が読みたい方はこちら

ざっくり感想

仕事で使ってみたClaudeの回答は、「新卒3年目の後輩エンジニア」という感じです。標準的なエンジニアなら当然わかるという質問は答えてくれます。そして標準的な人でも回答に悩む難易度までいくと、微妙な回答が来るという感じです。

具体的には、「Swiftの基礎的な配列操作を教えてください」という質問を投げると、100点の回答が来ます。Xcodeのエラー文をコピペして貼ると、なんらかの解決策を提示してくれます。

回答が微妙になったのは、「UICollectionViewDiffableDataSourceの定義の中でselfへの強参照が発生しているっぽいけど、どこで発生しているのかわからない」みたいな質問を投げかけたときです。

さすがに僕もiOS開発入って年季入ってきたので、Claudeよりはまだ詳しい自信があるので、AIに仕事を食われる日はまだ遠いと思っています。

ただ自分で10分あれば実装できる内容を、Claudeが5秒で出してくれたりするので、それは助かります。

あと自分で思いつかなかった方法を提案してくれるときもあるので、それも助かります。

Claude使うメリットをまとめるとこんなとこですかね。

  • 自分でもできるタスクの時短

  • 調べたらわかるレベルのことを質問で解決できる

    • 最近のWeb検索の質だと、Claudeに答えてもらった方が良い回答が来るときが多い

    • 特にiOS開発は自分の専門分野なので、回答の正誤はある程度見抜ける

  • 自分では思いつかなかったアイディアを提案してくれる

個人開発と違って、会社の仕事だとソースコード丸コピペして雑に投げると、あんま良くないかなと思って、サンプルコードっぽく変えたりしてるんですが、これが地味にめんどくさいなとは思っています。

便利だったユースケース

こっからTips集みたいにユースケースを紹介できたらと思います。

テストデータ作成

よくテストで何かテキスト表示を試すとき、「あ」とか入れて表示されたオッケーみたいなことやりがちですが、なるべく本番環境に近いテストデータがあった方が、不具合が発見しやすかったりしますよね?

仕事柄、テキスト記事のテストをすることが多いんですが、そういうときにClaudeに

「テスト用のブログ記事を書いてください。4000字程度で、Markdown記法でお願いします」

みたいな質問すると、良い感じのテキストを生成してくれます。

テスト用のブログ記事を4000字程度で作成させていただきます。

# デジタル時代のワークライフバランス:効率と充実の両立を目指して

## はじめに

私たちの生活は、テクノロジーの進化とともに大きく変化してきました。特に、新型コロナウイルスのパンデミックを経て、働き方や生活様式は劇的な転換を迎えました。この記事では、デジタル技術を活用しながら、いかにして充実したワークライフバランスを実現できるのかについて、具体的な方法と考察を共有したいと思います。

## 変わりゆく「働く」という概念
(以下略)

Claudeの回答。読めば読むほど中身のない文章
高校の授業で書かされた作文を思い出す

SQL / 正規表現 / HTML / CSS

頻繁にはないですけど、iOS開発でもSQL / 正規表現 / HTML / CSSを読み書きする機会が発生します。

Claudeはこの辺の出力めちゃくちゃ強いです!

ソースコードってある程度人間のセンスが出ますが、この辺は理詰めで答えが出るので、生成AIの得意分野みたいです。

ラバーダックとしてのClaude

出典: https://www.ac-illust.com/main/detail.php?id=2452707

「ラバーダック・デバッグ」というデバッグ法が存在しまして、「アヒルのぬいぐるみにソースコードの説明してるうちにコードの不備に気づく」というやつです。

アヒルちゃんに話す人はあんまいないと思いますが、「一人で悩んで答え出なかった問題が、人に説明しているうちに自己解決した」というのは多くの人が経験あるかと思います。

Claudeに質問を投げてる段階で、問題が整理されるという効果があります。質問が言語化できてる時点で、その問題をちゃんと把握できているということで、一人で悩んでいるときというのは案外この段階にいけてなかったりします。

「何もしてないのに壊れた」「なんかわからないけど動かない」という段階だと、問題解決にはいけません。

本当に行き詰まったら有識者に相談だと思いますが、有識者も世の中そんなにいるわけでもないですし、雑に質問投げるわけにはいきません。

Claudeはいくら雑に質問しても怒りませんし、何回でも質問できます。

公式ドキュメント読解のお供

公式ドキュメントをコピペして、Claudeに貼り付けて、「これどういう意味ですか?」と聞くと、解説してくれます。

公式ドキュメント、英語がわからないこともありますが、そのさきの記述されてる内容がわからないことが多いので、一人で読んでスッと入ってこなかったらClaudeに質問して深掘っていく、ということをやったら勉強になりました。

Appleへの連絡の英作文

Appleに何か連絡しなければいけないとき、今までだったら自分でがんばって書くとか、機械翻訳かけるとかしてましたが、Claudeのおかげでめちゃくちゃ自然な問い合わせメールが書けるようになりました。

iOS開発特有のめんどくささ

ここからネガを書きたいですが、正直半年でClaude利用に慣れたので、特段大きなネガはないと思います。

iOS開発特有だなと思うのは、UIに関する質問をしたとき、回答がStoryboard前提で返ってきたりします。 コードのみのUIKit or SwiftUIで回答してもらうように指定する必要があります。

これはGoogle検索したときもよく感じるめんどくささですね。

まあでも「こんな感じで書いてますよ」というサンプルを渡して、この雰囲気で書いてくださいという指定で、そこそこの質のサンプルが返ってくるようになりました。

ハルシネーション(AIが存在しないものを存在しているかのようにとらえている現象)も時々あります。ChatGPT何回か試したときはもっと頻繁にハルシねってた気するんですが、Claudeは本当にたまにという感じです。

(昔のChatGPTの印象なので、今のモデルだったら改善しているのかも?)

AIのつく嘘に関しては、利用者の責任で、見抜くしかないですね。

Claude Pro

前提を書いてませんでしたが、わたくしは毎月20ドル払って、Claude Proを使っています。

割と早い段階で課金したので、もはや無課金のときの記憶が薄れていますが、確か回答のクオリティは大差なくて、一日の利用制限がヘビーに使うとつらかった気がします。

ゴールデンウィークに個人開発に使ったときは、割と利用上限を頻繁に食らっていました。ただ上限解除も半日以内でされて、早かった気がするので、趣味で使う分には無課金で十分かもしれません。

ありがたいことに会社が20ドル/月を負担してくれているので、上限を気にせずに質問しまくっています。

↑この制度です。テックチャレンジ。

終わりに

終わりです。

noteはAIフレンドリーな会社なので、そんな感じで開発したいiOSエンジニアは↓の募集をチェックしてみてください!

カジュアル面談もやってますので、転職をお考えの方はお声がけください。

(了)

いいなと思ったら応援しよう!