Eseguire la migrazione di un'app iOS a WinUI 3

Se si ha un'app iOS e si vuole portarla in Windows, gli strumenti di intelligenza artificiale possono eseguire la maggior parte del lavoro di mapping. Questa pagina fornisce le traduzioni dei concetti chiave da UIKit/SwiftUI a WinUI 3. Usa queste tabelle come contesto quando formuli richieste al tuo agente di IA: fornire in anticipo mappature API esatte produce un output molto più accurato che chiedere una conversione generica.

Installare prima il plug-in dell'agente WinUI per fornire all'agente una conoscenza accurata di WinUI 3:

gh copilot plugin install winui@awesome-copilot

Mappatura dei concetti

iOS (UIKit/SwiftUI) Equivalente a WinUI 3 Notes
UIViewController Page Le pagine WinUI vengono navigate tramite Frame
UINavigationController Frame + NavigationView Usare Frame.Navigate() per le transizioni di pagina
UITabBarController NavigationView (schede in alto o a sinistra)
UITableView ListView Usare ObservableCollection<T> per il data binding
UICollectionView GridView
UIAlertController ContentDialog Deve avere come padre l'elemento corrente XamlRoot
UILabel TextBlock
UITextField TextBox
UIButton Button
UIImageView Image
UIStackView StackPanel Impostare Orientation su Horizontal o Vertical
Auto Layout Grid / StackPanel / RelativePanel Il layout XAML è basato su righe/colonne
@State / @Binding (SwiftUI) INotifyPropertyChanged / ObservableProperty (CommunityToolkit.Mvvm)
NSUserDefaults ApplicationData.Current.LocalSettings
URLSession HttpClient Utilizzare System.Net.Http.HttpClient.
NotificationCenter Eventi o WeakReferenceMessenger (CommunityToolkit.Mvvm)
DispatchQueue.main.async DispatcherQueue.TryEnqueue
AppDelegate.applicationDidFinishLaunching App.OnLaunched
SceneDelegate / windowScene MainWindow / AppWindow
FileManager StorageFolder / StorageFile
UserNotifications AppNotificationManager (Microsoft.Windows.AppNotifications)

Prompt di avvio

Usare questo prompt per assegnare all'agente di intelligenza artificiale il contesto necessario prima di avviare una migrazione:

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.

Cosa non mappa direttamente

Alcuni concetti di iOS non hanno un equivalente WinUI diretto: