✅ XF -> MAUI (Shell) - Trying to translate this weird navigation model 😵💫
Hey! So I'm currently trying to migrate my org's Xamarin.Forms app to MAUI (with Shell navigation) so that we don't get kicked by Apple over it. I'm finding myself using quite a lot of Syncfusion with this project!
In the existing app, it used what I think is a rather convoluted system for navigating field service appointments (see diagram 1)
Any ideas on how I can use this with Shell navigation? Or should I just give up on the whole rewriting to use Shell thing and try to copy over the existing structure from the old App? Biggest thing that's thrown me off is the warning on the Docs that FlyoutPage (the successor to the MasterDetailPage type that it's currently using) isn't compatible with Shell and that an exception will be thrown if you try to use it (https://learn.microsoft.com/en-us/dotnet/maui/user-interface/pages/flyoutpage?view=net-maui-8.0#:~:text=property%20changes%20value.-,Warning,-FlyoutPage%20is%20incompatible).
I've got access to a full Syncfusion license so I'm debating whether I could maybe make it work with a TabbedPage or maybe a BackdropControl views with their own view models, inheriting a shared BaseAppointmentViewModel with the actual appointment object? I'm still fairly new to C# (and MAUI in particular), I only finished my apprenticeship 6 months ago and already have this entire rewrite on my plate :laughCry:
Aware that I've probably not explained it very well, unfortunately I can't do much in the way of code sharing to demonstrate what I'm trying to convey as it's company IP and so I need to tread very carefully with discussing in public. Thanks in advance for any help, I'm really struggling to get my head around this! 😅
FlyoutPage - .NET MAUI
The .NET MAUI FlyoutPage is a page that manages two related pages of information – a flyout page that presents items, and a detail page that presents details about items on the flyout page.
2 Replies
Had a chat with one of our architecture guys today, ran through what we need it to do and determined that we're probably going to need to scrap the idea of using Shell to achieve it so this can be closed out now! Now to rewrite my whole navigation service to work in a non-shell context...
!close
Closed!