Migrowanie aplikacji systemu iOS do systemu WinUI 3

Jeśli masz aplikację dla systemu iOS i chcesz udostępnić ją Windows, narzędzia sztucznej inteligencji mogą wykonywać większość prac związanych z mapowaniem. Ta strona zawiera kluczowe tłumaczenia koncepcji z zestawu UIKit/SwiftUI do winUI 3. Użyj tych tabel jako kontekstu podczas monitowania agenta sztucznej inteligencji — zapewnienie dokładnych mapowań interfejsu API z góry generuje znacznie dokładniejsze dane wyjściowe niż prośba o konwersję ogólną.

Najpierw zainstaluj wtyczkę agenta WinUI , aby zapewnić agentowi dokładną wiedzę winUI 3:

gh copilot plugin install winui@awesome-copilot

Mapowanie koncepcji

iOS (UIKit/ SwiftUI) Odpowiednik winUI 3 Notatki
UIViewController Page Strony WinUI są nawigowane za pośrednictwem Frame
UINavigationController Frame + NavigationView Używanie Frame.Navigate() do przechodzenia stron
UITabBarController NavigationView (zakładki u góry lub po lewej)
UITableView ListView Używanie ObservableCollection<T> do powiązania danych
UICollectionView GridView
UIAlertController ContentDialog Musi być elementem podrzędnym względem bieżącego XamlRoot
UILabel TextBlock
UITextField TextBox
UIButton Button
UIImageView Image
UIStackView StackPanel Ustaw Orientation na Horizontal lub Vertical
Auto Layout Grid / StackPanel / RelativePanel Układ XAML jest oparty na wierszach/kolumnach
@State / @Binding (SwiftUI) INotifyPropertyChanged / ObservableProperty (CommunityToolkit.Mvvm)
NSUserDefaults ApplicationData.Current.LocalSettings
URLSession HttpClient Użyj System.Net.Http.HttpClient
NotificationCenter Zdarzenia lub WeakReferenceMessenger (CommunityToolkit.Mvvm)
DispatchQueue.main.async DispatcherQueue.TryEnqueue
AppDelegate.applicationDidFinishLaunching App.OnLaunched
SceneDelegate / windowScene MainWindow / AppWindow
FileManager StorageFolder / StorageFile
UserNotifications AppNotificationManager (Microsoft.Windows.AppNotifications)

Monit startowy

Użyj tego monitu, aby nadać agentowi sztucznej inteligencji kontekst potrzebny przed rozpoczęciem migracji:

I'm migrating an iOS app to WinUI 3 using the Windows App SDK.

The app is written in [Swift / Objective-C] using [UIKit / SwiftUI].

Apply these mappings:
- UIViewController → Page, navigated via Frame
- UINavigationController → Frame + NavigationView
- UITableView → ListView with ObservableCollection<T>
- UIAlertController → ContentDialog (parented to XamlRoot)
- NSUserDefaults → ApplicationData.Current.LocalSettings
- URLSession → System.Net.Http.HttpClient
- DispatchQueue.main.async → DispatcherQueue.TryEnqueue
- @State / @Binding → INotifyPropertyChanged via CommunityToolkit.Mvvm

Use Microsoft.UI.Xaml.* namespaces throughout — never Windows.UI.Xaml.*.
Generate C# — not Swift.

Co nie mapuje się bezpośrednio

Niektóre pojęcia dotyczące systemu iOS nie mają bezpośredniego odpowiednika winUI: