🪶
GitHub Copilot for Xcode Pre-release 0.34.116
ついにGitHub Copilot for XcodeにAI Agentが搭載された!
期待して待っていた、AI AgentがGitHub Copilot for Xcodeに搭載されたそうです!
まだ、今の時点ではプレリリース版ですが。
でも十分使えますね。すでに完成されているような🤔
使うときはどうすればいいのか?
今までは、質問をするAskしか使用できなかったが、コード生成やファイルの編集をしてくれるAI Agentが搭載された🤩

作業環境について
- xcode16.3
- GitHub Copilot for Xcode Pre-release 0.34.116
- M4 MacBookPro 16インチの36GB
どれほどの精度なのか?
指定したファイルを編集する指示を出してみると、編集してくれた!
カウンターを追加してくださいと頼んだ。

Swift Tupleを使用して、NoteViewつくってくださいとお願いすると作ってくれた!

import SwiftUI
struct NoteView: View {
// Define a tuple type for our notes with title, content, and date
typealias Note = (title: String, content: String, date: Date)
// Sample data using tuples
private let notes: [Note] = [
("買い物リスト", "牛乳、卵、パン、野菜を買う", Date().addingTimeInterval(-86400)), // Yesterday
("会議メモ", "新プロジェクトのキックオフミーティングについて議論", Date().addingTimeInterval(-172800)), // 2 days ago
("アイデア", "新しいアプリのUIデザインについて考える", Date().addingTimeInterval(-259200)), // 3 days ago
("タスク", "レポートを完成させる、メールを返信する", Date()), // Today
("旅行計画", "京都旅行の準備リスト: ホテル予約、交通手段の確認", Date().addingTimeInterval(86400)) // Tomorrow
]
// Date formatter for displaying dates
private let dateFormatter: DateFormatter = {
let formatter = DateFormatter()
formatter.dateStyle = .medium
formatter.timeStyle = .none
return formatter
}()
var body: some View {
NavigationStack {
List(0..<notes.count, id: \.self) { index in
VStack(alignment: .leading, spacing: 8) {
Text(notes[index].title)
.font(.headline)
Text(notes[index].content)
.font(.body)
.lineLimit(2)
.foregroundColor(.secondary)
Text(dateFormatter.string(from: notes[index].date))
.font(.caption)
.foregroundColor(.gray)
}
.padding(.vertical, 6)
}
.navigationTitle("メモ")
}
}
}
#Preview {
NoteView()
}
設定画面を作ってくださいとお願いしてみた。いい感じでできた!

import SwiftUI
struct SettingsView: View {
@State private var notificationsEnabled = false
@State private var darkModeEnabled = false
@State private var username = ""
@State private var selectedLanguage = 0
let languages = ["English", "Japanese", "Spanish", "French", "German"]
var body: some View {
NavigationView {
Form {
Section(header: Text("Profile")) {
TextField("Username", text: $username)
Picker("Language", selection: $selectedLanguage) {
ForEach(0..<languages.count, id: \.self) {
Text(self.languages[$0])
}
}
}
Section(header: Text("Preferences")) {
Toggle("Enable Notifications", isOn: $notificationsEnabled)
Toggle("Dark Mode", isOn: $darkModeEnabled)
.onChange(of: darkModeEnabled) { newValue in
// Here you would implement the dark mode change logic
}
}
Section(header: Text("About")) {
HStack {
Text("Version")
Spacer()
Text("1.0.0")
.foregroundColor(.gray)
}
}
}
.navigationTitle("Settings")
}
}
}
#Preview {
SettingsView()
}
最後に
使ってみた感想ですが、期待していた通りの動作をしていたと思われます。精度は高いと思います。まだ複数のファイルが存在するアプリでは試していないので、どうなるか分かりませんが、これがリリースされれば、iOSエンジニアはCursor、Windsurf、VSCodeを開かずともxcodeだけでコーディングが快適にできるようになると思います。
生成AIの登場によって、SwiftUIのコーディングする作業は今後開発者の負担を軽減してくれるでしょう。そんな未来が訪れることを期待しております。
Discussion