Slide 1

Slide 1 text

iOS開発における Copilot For XcodeとCode Completion 株式会社ZOZO ブランドソリューション開発本部 / WEARフロントエンド部 iOSブロック 山田 楓也 | Fuya Copyright © ZOZO, Inc.

Slide 2

Slide 2 text

© ZOZO, Inc. Today’s Goal Copilot For XcodeとXcode16のCode Completionの コード補完機能を比較し、現時点の補完力の報告

Slide 3

Slide 3 text

© ZOZO, Inc. アジェンダ ● 各ツールの説明 ○ Copilot for Xcode ○ Xcode16のCode Completion ● iOS開発における補完力 3番勝負 ○ 新規でコードを追加するケース ○ テストコードを追加するケース ○ AppleのSDKを扱うケース 3

Slide 4

Slide 4 text

© ZOZO, Inc. ● 主な機能 ○ コード補完 ○ Swift や Objective-Cに対応 ○ 複数行の候補 GitHub Copilot for Xcode(GitHub Copilot) 4 GitHub Copilot code completion in Xcode is now available in public

Slide 5

Slide 5 text

© ZOZO, Inc. Xcode16のCode Completion(Code Completion) ● SwiftとApple SDK専用の補完モデル ○ macOS Sequoiaにする必要 5 Apple empowers developers and fuels innovation with new tools and

Slide 6

Slide 6 text

© ZOZO, Inc. 前提 - 業務PCだとSequoiaにできない都合上 新規でアプリを作るシチュエーションを想定 - 優劣を決めるわけではありません iOS開発における補完力 3番勝負 6 ● 新規でコードを追加するケース ● テストコードを追加するケース ● AppleのSDKを扱うケース

Slide 7

Slide 7 text

© ZOZO, Inc. ● ViewとStoreで構成されるアプリを実装するケース 1.新規コード追加 7 アイドルグループのリスト View:アイドルグループ名を表示 Store:状態を管理

Slide 8

Slide 8 text

© ZOZO, Inc. ● Store内で下記のメソッドを加えたい ○ 追加 ○ 削除 ○ 更新 1.新規コード追加 8 現状のStoreの実装 実現したい実装を コメントして提案してもらう

Slide 9

Slide 9 text

© ZOZO, Inc. 1.新規コード追加 ● 追加メソッドの結果:ほぼ同じ実装 ○ 一部冗長な実装が含まれている(Code Completion) 9 GitHub Copilot Code Completion

Slide 10

Slide 10 text

© ZOZO, Inc. 1.新規コード追加 ● 削除、更新メソッドの結果:差が出た ○ コメントしなくても、文脈を読んで勝手に提案(両者) ○ 正しく記述されていない(Code Completion) 10 GitHub Copilot Code Completion

Slide 11

Slide 11 text

© ZOZO, Inc. 1. 新規でコードを追加するケース 11 ※ 個人差 / バージョン影響あり GitHub Copilot

Slide 12

Slide 12 text

© ZOZO, Inc. ● プレゼンテーションロジックのテストコードを追加 2. テストコードを追加するケース 12 アイドルグループのリスト Formatter:アイドル名を大文字変換

Slide 13

Slide 13 text

© ZOZO, Inc. 1.新規コード追加 ● テストコードの結果:差が出た ○ Formatterの実装内容をうまく汲み取れていない (Code Completion) 13 GitHub Copilot Code Completion

Slide 14

Slide 14 text

© ZOZO, Inc. 2. テストコードを追加するケース 14 ※ 個人差 / バージョン影響あり GitHub Copilot

Slide 15

Slide 15 text

© ZOZO, Inc. ● URLSessionでHTTPリクエストを非同期で送信するケース ○ URLRequestを作成するところから開始 3. Apple特有のSDKを扱うケース 15 GitHub Copilot

Slide 16

Slide 16 text

© ZOZO, Inc. ● HTTPリクエストの実装結果:ほぼ同じように実装 ○ 一発で提案してくれた(Code Completion) 3. Apple特有のSDKを扱うケース 16 GitHub Copilot Code Completion

Slide 17

Slide 17 text

© ZOZO, Inc. ● ボタンの実装結果:両者とも期待していない提案 ○ 間違いではないがモダンな実装ではない(GitHub Copilot) ○ 近いが文法的に間違い(Code Completion) 3. Apple特有のSDKを扱うケース 17 GitHub Copilot Code Completion ※ UIButton.Configurationで詳細を設定する必要がある

Slide 18

Slide 18 text

© ZOZO, Inc. ● 新規でコードを追加するケース ● テストコードを追加するケース ● AppleのSDKを扱うケース 3番勝負の結果 18 GitHub Copilot GitHub Copilot 引き分け ※ 個人差 / バージョン影響あり

Slide 19

Slide 19 text

© ZOZO, Inc. 株式会社ZOZO ブランドソリューション開発本部 / WEARフロントエンド部 / iOSブロック 山田 楓也 | Fuya AIに全て任せられる 時代が来ないかな

Slide 20

Slide 20 text

© ZOZO, Inc. https://wear.jp/ 20 ● あなたの「似合う」が探せるファッションコーディネートアプリ ● 1,700万ダウンロード突破、コーディネート投稿総数は1,400万 件以上(2024年9月末時点) ● コーディネートや最新トレンド、メイクなど豊富なファッション 情報をチェック ● AIを活用したファッションジャンル診断や、フルメイクをARで試 せる「WEARお試しメイク」を提供 ● コーディネート着用アイテムを公式サイトで購入可能 ● WEAR公認の人気ユーザーをWEARISTAと認定。モデル・タレン ト・デザイナー・インフルエンサーといった各界著名人も参加

Slide 21

Slide 21 text

© ZOZO, Inc. ● Xcodeでも生成AIを活用したCopilotが利用可能 ● 現時点では、GitHub Copilotの方が補完力は優勢 ● 今後、業務で積極的に活用して効率を上げたい Conclusion 21

Slide 22

Slide 22 text

No content