Xamarin.Forms to .NET MAUI Platform-Specific Migration Skill
Purpose
Use this companion skill to migrate platform-specific code safely when Xamarin.Forms code is moved to a .NET MAUI app.
This skill focuses only on platform concerns:
- Android manifest, components, and runtime permissions.
- iOS Info.plist keys, entitlements, URL schemes, and lifecycle integrations.
- Windows target behavior and UWP-to-Windows mapping.
- Native SDK startup and lifecycle parity.
Recommended skill sequence
Run skills in this order for best outcomes:
- xamarin-maui-framework-migration
- xamarin-maui-syncfusion-migration
- xamarin-maui-platform-specific-migration (this skill)
- xamarin-maui-renderer-handler-migration
Use this skill after baseline migration to close platform parity gaps before final renderer-handler cleanup.
When to use this skill
Use this skill when one or more of the following are present:
- Custom AndroidManifest entries, intent filters, or exported activities/services/receivers.
- iOS App Transport Security exceptions, associated domains, push notifications, or URL schemes.
- UWP-specific APIs or Windows declarations that require MAUI Windows mapping.
- Native SDK initialization in AppDelegate, MainActivity, or custom startup classes.
- Deep links, notifications, foreground services, background tasks, or lifecycle-dependent features.
Use this skill after or alongside the general migration skill.
Do not use this skill for
- Shared business logic only migrations with no platform code.
- Pure XAML namespace replacement tasks.
- Renderer-to-handler rewriting as a primary task (run specialized renderer migration separately).
Inputs
Required input:
- MAUI target project root.
- Source platform files from Xamarin projects or copied snippets.
Recommended inputs:
- AndroidManifest.xml and related Android startup classes.
- Info.plist and entitlements files.
- UWP project declarations and capability entries.
- Any platform SDK initialization snippets.
Optional behavior flags:
- Dry run (analysis and checklist only).
- Strict parity mode (fail if any platform capability is missing).
Outputs
Primary outputs:
- Platform migration checklist by target platform.
- Capability parity report (preserved, replaced, missing, unsupported).
- Manual action backlog with severity and rationale.
Secondary outputs:
- Suggested MAUI startup/lifecycle mapping notes.
- Risk heatmap for platform-specific changes.
- Validation plan for smoke test execution.
Execution workflow
Platform inventory and baseline
Detect Android, iOS, and Windows source artifacts.
Extract capabilities, lifecycle hooks, URL schemes, permissions, and SDK startup points.
Build source-to-target capability map.
Android migration mapping
Map manifest entries to MAUI platform structure.
Validate runtime permission model and request flows.
Validate intent filters, exported settings, and package visibility declarations.
iOS migration mapping
Map Info.plist keys and ATS exceptions.
Map entitlements and associated domains.
Map lifecycle hooks and push/deep-link entry points.
Windows/UWP mapping
Identify UWP-specific APIs and declarations.
Map to MAUI Windows equivalents where available.
Mark unsupported items with replacement guidance.
Native SDK and lifecycle alignment
Relocate SDK initialization to MAUI lifecycle points.
Verify initialization order dependencies.
Flag thread/lifecycle-sensitive integrations for manual validation.
Validation and reporting
Produce platform checklist and unresolved items.
Validate startup, permissions, deep links, and notification entry points.
Emit pass/fail readiness with explicit waivers where accepted.
Rule examples
Android rules:
- Preserve required permissions and intent filters.
- Validate exported component requirements.
- Preserve package visibility queries where needed.
iOS rules:
- Preserve required Info.plist keys and URL schemes.
- Preserve entitlements and associated domains where feature dependent.
- Preserve required background modes and notification capabilities.
Windows rules:
- Map UWP declarations to MAUI Windows settings where supported.
- Emit unsupported UWP features as manual action items.
Lifecycle rules:
- Move native SDK startup to MAUI lifecycle hooks.
- Maintain startup ordering for SDKs with dependency constraints.
Safety and constraints
- Never silently drop platform capabilities.
- Any missing capability must be reported as a blocking or high-risk item.
- Any unsupported platform feature must include a replacement path or waiver requirement.
- Validation evidence is required before platform migration is considered complete.
References
- Platform checklist reference: references/platform-checklist.md
Related skills:
- ../xamarin-maui-framework-migration/SKILL.md
- ../xamarin-maui-renderer-handler-migration/SKILL.md
- ../xamarin-maui-syncfusion-migration/SKILL.md
Definition of done
Platform migration is complete when:
- Platform checklist is generated for Android, iOS, and Windows scope in project.
- Capability parity report is generated with no unresolved blockers.
- Missing or unsupported capabilities are either fixed or explicitly waived.
- Startup and lifecycle mapping has been validated.
- Smoke test plan exists for all migrated platform entry points.
1---2name: xamarin-maui-platform-specific-migration3description: Companion migration skill for Android, iOS, and Windows platform-specific tasks when moving Xamarin.Forms code to .NET MAUI.4---56# Xamarin.Forms to .NET MAUI Platform-Specific Migration Skill78## Purpose910Use this companion skill to migrate platform-specific code safely when Xamarin.Forms code is moved to a .NET MAUI app.1112This skill focuses only on platform concerns:131. Android manifest, components, and runtime permissions.142. iOS Info.plist keys, entitlements, URL schemes, and lifecycle integrations.153. Windows target behavior and UWP-to-Windows mapping.164. Native SDK startup and lifecycle parity.1718## Recommended skill sequence1920Run skills in this order for best outcomes:211. xamarin-maui-framework-migration222. xamarin-maui-syncfusion-migration233. xamarin-maui-platform-specific-migration (this skill)244. xamarin-maui-renderer-handler-migration2526Use this skill after baseline migration to close platform parity gaps before final renderer-handler cleanup.2728## When to use this skill2930Use this skill when one or more of the following are present:311. Custom AndroidManifest entries, intent filters, or exported activities/services/receivers.322. iOS App Transport Security exceptions, associated domains, push notifications, or URL schemes.333. UWP-specific APIs or Windows declarations that require MAUI Windows mapping.344. Native SDK initialization in AppDelegate, MainActivity, or custom startup classes.355. Deep links, notifications, foreground services, background tasks, or lifecycle-dependent features.3637Use this skill after or alongside the general migration skill.3839## Do not use this skill for40411. Shared business logic only migrations with no platform code.422. Pure XAML namespace replacement tasks.433. Renderer-to-handler rewriting as a primary task (run specialized renderer migration separately).4445## Inputs4647Required input:481. MAUI target project root.492. Source platform files from Xamarin projects or copied snippets.5051Recommended inputs:521. AndroidManifest.xml and related Android startup classes.532. Info.plist and entitlements files.543. UWP project declarations and capability entries.554. Any platform SDK initialization snippets.5657Optional behavior flags:581. Dry run (analysis and checklist only).592. Strict parity mode (fail if any platform capability is missing).6061## Outputs6263Primary outputs:641. Platform migration checklist by target platform.652. Capability parity report (preserved, replaced, missing, unsupported).663. Manual action backlog with severity and rationale.6768Secondary outputs:691. Suggested MAUI startup/lifecycle mapping notes.702. Risk heatmap for platform-specific changes.713. Validation plan for smoke test execution.7273## Execution workflow74751. Platform inventory and baseline761. Detect Android, iOS, and Windows source artifacts.772. Extract capabilities, lifecycle hooks, URL schemes, permissions, and SDK startup points.783. Build source-to-target capability map.79802. Android migration mapping811. Map manifest entries to MAUI platform structure.822. Validate runtime permission model and request flows.833. Validate intent filters, exported settings, and package visibility declarations.84853. iOS migration mapping861. Map Info.plist keys and ATS exceptions.872. Map entitlements and associated domains.883. Map lifecycle hooks and push/deep-link entry points.89904. Windows/UWP mapping911. Identify UWP-specific APIs and declarations.922. Map to MAUI Windows equivalents where available.933. Mark unsupported items with replacement guidance.94955. Native SDK and lifecycle alignment961. Relocate SDK initialization to MAUI lifecycle points.972. Verify initialization order dependencies.983. Flag thread/lifecycle-sensitive integrations for manual validation.991006. Validation and reporting1011. Produce platform checklist and unresolved items.1022. Validate startup, permissions, deep links, and notification entry points.1033. Emit pass/fail readiness with explicit waivers where accepted.104105## Rule examples106107Android rules:1081. Preserve required permissions and intent filters.1092. Validate exported component requirements.1103. Preserve package visibility queries where needed.111112iOS rules:1131. Preserve required Info.plist keys and URL schemes.1142. Preserve entitlements and associated domains where feature dependent.1153. Preserve required background modes and notification capabilities.116117Windows rules:1181. Map UWP declarations to MAUI Windows settings where supported.1192. Emit unsupported UWP features as manual action items.120121Lifecycle rules:1221. Move native SDK startup to MAUI lifecycle hooks.1232. Maintain startup ordering for SDKs with dependency constraints.124125## Safety and constraints1261271. Never silently drop platform capabilities.1282. Any missing capability must be reported as a blocking or high-risk item.1293. Any unsupported platform feature must include a replacement path or waiver requirement.1304. Validation evidence is required before platform migration is considered complete.131132## References1331341. Platform checklist reference: references/platform-checklist.md135136Related skills:1371. ../xamarin-maui-framework-migration/SKILL.md1382. ../xamarin-maui-renderer-handler-migration/SKILL.md1393. ../xamarin-maui-syncfusion-migration/SKILL.md140141## Definition of done142143Platform migration is complete when:1441. Platform checklist is generated for Android, iOS, and Windows scope in project.1452. Capability parity report is generated with no unresolved blockers.1463. Missing or unsupported capabilities are either fixed or explicitly waived.1474. Startup and lifecycle mapping has been validated.1485. Smoke test plan exists for all migrated platform entry points.