Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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:
-
Acquisti in-app: usa le API commerciali di Microsoft Store tramite
Windows.Services.Store - Notifiche push (APNs): Usa Windows Push Notification Services (WNS)
- HealthKit/ARKit/CoreML: Windows include aree tecnologiche correlate, Windows ML, Windows Mixed Reality e Windows Sensors, ma non sono equivalenti diretti e richiedono implementazioni specifiche della piattaforma
- App Clips: nessun equivalente diretto — valutare il collegamento dal web all'app