Migración de una aplicación de iOS a WinUI 3

Si tiene una aplicación para iOS y quiere llevarla a Windows, las herramientas de inteligencia artificial pueden encargarse de la mayor parte del trabajo de adaptación. En esta página se proporcionan las traducciones de los conceptos clave de UIKit/SwiftUI a WinUI 3. Utiliza estas tablas como contexto al dar instrucciones a tu agente de IA: proporcionar de antemano asignaciones exactas de la API produce resultados mucho más precisos que pedir una conversión genérica.

Instale primero el complemento del agente de WinUI para proporcionar al agente conocimientos precisos de WinUI 3:

gh copilot plugin install winui@awesome-copilot

Mapa conceptual

iOS (UIKit / SwiftUI) Equivalente a WinUI 3 Notas
UIViewController Page Las páginas de WinUI se navegan a través de Frame
UINavigationController Frame + NavigationView Uso Frame.Navigate() para transiciones de página
UITabBarController NavigationView (pestañas superior o izquierda)
UITableView ListView Use ObservableCollection<T> para el enlace de datos
UICollectionView GridView
UIAlertController ContentDialog Debe ser hijo del actual XamlRoot
UILabel TextBlock
UITextField TextBox
UIButton Button
UIImageView Image
UIStackView StackPanel Establecer Orientation en Horizontal o Vertical
Auto Layout Grid / StackPanel / RelativePanel El diseño XAML se basa en filas o columnas
@State / @Binding (SwiftUI) INotifyPropertyChanged / ObservableProperty (CommunityToolkit.Mvvm)
NSUserDefaults ApplicationData.Current.LocalSettings
URLSession HttpClient Utilice System.Net.Http.HttpClient
NotificationCenter Eventos 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)

Mensaje de inicio

Use este mensaje para proporcionar al agente de IA el contexto que necesita antes de iniciar una migración:

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.

Lo que no se asigna directamente

Algunos conceptos de iOS no tienen un equivalente directo de WinUI: