Swift Assistの概要
WWDC24の "Platforms State of the Union" から、Swift Assistのパートを抜粋し、要約します。
以下、文章、画像はWWDCの基本的に同セッションからの引用です。(適宜要約したり、見出しを追加したりしています。)
おまけ:Predictive Code Completion
私たちはAppleの基盤モデルをもとに、Appleだけが提供できる知識をとらえた専門的なコーディングモデルを作りました。
その知識とは、最新のAPIや言語機能、資料やサンプルコード、そしてすべてのAppleプラットフォーム向けにソフトウェアを開発してきた数十年で得た事例などです。
まずは、みなさんが毎日使う主な機能の大きな飛躍です。みなさんが必要とするコードを予測できる、革新的な新エンジンを備えたコード補完です。
このエンジンはSwiftとApple SDK用に学習させたユニークなモデルを使用しています。これはみなさんのプロジェクトシンボルで提案をカスタマイズします。また、Macでローカルに動くのでコードを外部に漏らさず、超高速で結果が得られ、さらにオフラインでも動きます。見てみましょう。
世界中の楽しい動画を使ったアプリに取り組んでいます。
次の課題は、動画のコレクションを示すコードを追加することです。このコレクションに名前が必要です。入力を始めるとすぐ、素晴らしい候補が表示されます。tabキーで承認します。
また、様々な動画を保持するプロパティも必要です。ここでもXcodeが私のプロジェクトのタイプで行を仕上げます。
次に、動画のソートされたリストを返す関数が必要です。名前の入力を始めると、公開日順にソートされたビデオを返す関数が提案されます。
承認すると、実装についても提案されます。
Xcodeは私のプロジェクトのコードに加え、コンテクストとして書いたコメントも利用できます。
指定された監督の動画のリストを返す関数のために、コメントを追加します。
数文字書いただけで、まさに思っていた通りの提案が得られます。
次に、動画のサムネイルキャッシュを取得するために関数の冒頭を加えます。
入力して提案の一つを選択すると、それに応じてすべてのパラメータが自動入力されます。
最後に、ビューのためにボディを加えます。
Optionキーを長押しすると、予測された複数行のコードが表示されます。
tabキーですべてを承認できます。
Xcodeの補完モデルはAppleシリコンとmacOS Sequoiaの機械学習の強化を使用しています。
また、Xcodeはモデルを自動でダウンロードし、最新のSDKと言語の変更で更新します。
アプリを作るということは、単なるコードの入力だけではなく、アイデア全体をコードに変換することです。その最も簡単な方法は、自然言語を使うことです。
そこで私たちはクラウド上で動く、より大規模でパワフルなモデルを作り、Appleだけが提供できるユニークな体験をXcodeで作り上げました。みなさんのコード作業すべてを支援するSwift Assistです。
具体的な狙いがある時も、最良のSwiftコードを書く手助けが欲しい時も、Swift Assistはコーディングの質問に答え、新しいAPIを試すなどのタスクを支援します。
デモ(ライブコーディング)
Swift Assistは、コードを書く優れた新しい方法です。お見せしましょう。ガレージにある昔のMacの目録を作成するアプリを作りたいと思っていました。
空白のプロジェクトから始め、Swift Assistを立ち上げて、自分が求めるものをリクエストします。
Swift Assistはプロトタイプに最適です。
アイデアをすばやく視覚化するのに役立ちます。
Swift Assistは昔のMacの名称とディテールを表す構造体を作成します。
プレビューで視覚化できるリアルなサンプルデータまで得られます。順調なスタートです。次は画像を加えてみましょう。
「各Macの隣に画像を追加」とリクエストします。
私のアセットカタログにはすでに画像がいくつかありました。Swift Assistは作成するコードでそれらを参照することができます。
私のClassicMac構造体にはimageNameプロパティが加えられ、サンプルデータにはアセットカタログの画像のファイル名が入って更新されます。
ここまではいい感じです。昔のMacで好きなところの一つは起動音です。いくつかを録音してプロジェクトに追加したので、面白いことをやってみましょう。「Macをタップした時に音声を再生」とリクエストします。
コード補完と同様、
Swift Assistはシンボルなどの私のプロジェクトの詳細とその関連性を利用し、パーソナライズされたコードを作成します。
音を聞いてみましょう。
素晴らしい思い出がよみがえります。最後に別のレイアウトを試してみたいと思います。リストの代わりにグリッドを使うと、どう見えるか確認しましょう。
数分前には単なるアイデアだったものが、私のデバイス上で動かせるものになりました。
すごいでしょう?
最新のSDKと言語機能を利用可能
Swift AssistはAppleの最新のSDKとSwift言語の機能を把握しているので、
みなさんのプロジェクトに完璧に溶け込む、最先端でモダンなコードが常に得られます。
ですから、新しいフレームワークを探索したり、新しいアイデアを試したりするタスクはリクエスト一つでできます。
コードをサーバに保存しない/学習に使わない
すべてのAppleデベロッパサービス同様、Swift Assistはみなさんのプライバシーとセキュリティに配慮して作られています。
みなさんのコードは、決してサーバに保管されず、みなさんのリクエストの処理のためだけに使われます。
何より重要なのはAppleが機械学習モデルのトレーニングに、みなさんのコードを使わないということです。
Swift Assistと新しい予測補完はXcodeでの働き方を加速させるでしょう。これは私たちのツールに並外れた知能を加える道のりの第一歩です。Appleプラットフォーム向けの開発にエキサイティングな時代です。
Swift Assistは年内から提供を始めます。
Discussion