🐚 Shell for .NET MAUI & Xamarin.Forms - What, why, and how?!?!

  Рет қаралды 37,103

James Montemagno

James Montemagno

Күн бұрын

Пікірлер: 101
@mlhtest5928
@mlhtest5928 2 жыл бұрын
James bro, I just want to say thank you for all that you do! Man I was stuck as I'm trying to learn Maui, its been some yrs since I've done any mobile dev, but your videos are a tremendous help. I will most def buy some of your gear to show my appreciation. Have a great one!
@user-v2u-c2j
@user-v2u-c2j 2 жыл бұрын
Thank you KZbin for the great advice❤
@andrewsheley
@andrewsheley 2 жыл бұрын
Was just starting with Maui and was wondering about the shell, perfect timing!!! Another great video, thanks!
@pgklada
@pgklada 9 ай бұрын
I like the idea of MAUI shell... I am a newbie in MAUI, but with 50- years of programming practice... retired :-)
@oliverwaits8174
@oliverwaits8174 2 жыл бұрын
These videos have been amazingly helpful! I have been developing a MAUI using the shell and makes the process so much easier. One issue I have been struggling with is query parameters are not reset if left out of the route so if you call a page after using a route with a filter it keeps the old filter.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Hmmmm i would open an issue for sure
2 жыл бұрын
Is the ViewModel configured as a singleton?
@Cyberfoxxy
@Cyberfoxxy Жыл бұрын
Stumbled upon MAUI shell on reddit and was confused because Shell is apparently a new thing. But Shell is also something very very old in Linux. You seem to have cleared up that they are in fact, unrelated.
@ddupinsus
@ddupinsus 2 жыл бұрын
This is getting really interesting, I love it… Thank you!
@kinsondigital
@kinsondigital 2 жыл бұрын
Awesome videos James!! I am super excited for MAUI and I am finally to the point where I can start using it for some internal tools to make my development workflow easier for my OS project Velaptor and CASL.
@harlanbrewer4503
@harlanbrewer4503 2 жыл бұрын
Thanks, James. I'm enjoying your Xamarin tutorials
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Glad you like them!
@FaheemRasheed
@FaheemRasheed 2 жыл бұрын
james , the way you explain things is truly god gifted.you make complexity of things sound so simple that it becomes interesting. i guess if some f the real apps were reviewed by you and make videos about what could be better way of doing if any or things that should be avoided. you can start with my first app that i developed after watching your xamarin series :) please dont stop doing what are you are truly good at. keep em posting !! and please some videos on animations and transitions for beautiful user experiences.
@MorningStar.Ghost.Yaldabaoth
@MorningStar.Ghost.Yaldabaoth Жыл бұрын
Awesome! How to customize the margin between each tab of Shell tabs?
2 жыл бұрын
Shell for .NET MAUI looks awesome! I was wondering if you could give some examples of when not to use shell, when MVVM or normal view/page navigation would be better?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
As of today there is a tiny perf hit on startup, however I haven't really noticed a huge difference. I just always use it personally unless upgrading an older app that doesn't use it.
@cliffshivkar9948
@cliffshivkar9948 2 жыл бұрын
Great vid as always man! Thanks. On a different topic... Could you please do a video on how to handle the back button in a UWP app in a Xamarin Forms Shell application?
@HeinrichDaHammer
@HeinrichDaHammer 2 жыл бұрын
I am just getting my feet wet with MAUI, so far I am loving it, thanks for the video.
@CrkdLtrN
@CrkdLtrN 2 жыл бұрын
Thanks for taking the time to do this, James! Helpful! Will you plan on doing some videos with various integrations like Stripe + Apple Pay + Google/Android Pay? It would be super helpful to start touching on bringing in some of those other frameworks for functionality as most people do want to put some sort of payment processing into their apps. Thanks again.
@xamerdev7381
@xamerdev7381 2 жыл бұрын
Hello James, will there be a possibility in the future to create fully customized tabs in MAUI and Shell? As far as I know there is no possibility to create customized tabs in xamarin shell. Or you can via XCT but they are not connected with shell functionalities.
@neilsg2001
@neilsg2001 Жыл бұрын
Have u covered apps that continue after losing focus. Running like a service? 👍🏻👍🏻
@jeffm3865
@jeffm3865 2 жыл бұрын
Great video. At around 10:45 into the video, you added a Coffee2. When you returned to the main page, you had to pull to refresh to show the updated list. Any recommendations on how to refresh automatically after the coffee was added automatically? I think some code could be added when the main page was navigated to after the add occurred. Is there a more elegant way to do this?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
That is probably the best way. I sometimes save a preference around saying I modified data and then on appearing check it
@greeksinmars
@greeksinmars 2 жыл бұрын
Just I loved shell with this video
@saveriobavosio5901
@saveriobavosio5901 2 жыл бұрын
Hi James, great video as always!😁 I have a question: when you return back to coffee list, you were forced to scroll down to refresh page; is there a way to refresh "parent" page automatically instead of do it manually?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I could have done it on "OnAppearing" most likely... I probably just need to update the code ;)
@saveriobavosio5901
@saveriobavosio5901 2 жыл бұрын
@@JamesMontemagno thanks! I will try your suggestion as soon as I can! :D
@billymartin6497
@billymartin6497 2 жыл бұрын
Great video, James, but I can't seem to find how to Change the color of the Title/Text in a Shell FlyoutItem. How do I do it WITHOUT creating a DataTemplate?
@lmora00
@lmora00 Жыл бұрын
Excellent video
@duncancole1742
@duncancole1742 2 жыл бұрын
I do like Shell but I do wish common UI/Nav patterns, like Login as you mentioned, where better supported.
@darwinturingan5530
@darwinturingan5530 2 жыл бұрын
Hello James, I'm just wondering why appshell file is not automatically or is it just not yet available on .net maui? by the way nice video again. Keep it up!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
It’s just not in the templates yet but you can add it in. Still in preview :)
@jfras2359
@jfras2359 2 жыл бұрын
I have been watching your video's to learn .NET Maui. When you use "await Shell.Current.GoToAsync(route)" from the mainpage is execution suppose to fall through the statement or wait for the route to pass back control?
@moatasemkremed5395
@moatasemkremed5395 3 ай бұрын
Hi James, How Can We Set FlowDirection="RightToLeft" for Flyout in AppShell !! Is this Posible?
@sergiotardo
@sergiotardo 2 жыл бұрын
Prism or Shell ? that's a question.... do you have any comparation about this two?
@anandshindey
@anandshindey 2 жыл бұрын
Thanks for the video. Waiting for Shell to be included in MAUI. When will it be templated?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Not sure yet, but in a future release I hope, they are adding things to template when ready.
@SpurgeonB
@SpurgeonB 2 жыл бұрын
Thanks
@BrianTX541
@BrianTX541 2 жыл бұрын
I love it. I want to do everything in Maui. Does anyone know if they plan to add a maui web app like you can do in Flutter?
@sentrycod2373
@sentrycod2373 2 жыл бұрын
Well said man. Would maui shell have customizable tab layouts like xcts tab view?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Either would want to use community toolkit or github.com/roubachof/Sharpnado.Tabs
@miami528
@miami528 2 жыл бұрын
I have a question. I define the FlyoutBackgroundColor in the shell. It works on android emulator. When I switch to WindowsMachine the FlyoutBackgroundColor is still white. How can I fix it?
@ventionuxd6002
@ventionuxd6002 2 жыл бұрын
just awesome
@stoppanigiovannino
@stoppanigiovannino 2 жыл бұрын
Hi James, how can I programmatically raise tap event on screen with . Net Maui, Is there any essencials feature for this ?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
You could add a tap gesture recognizer - docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/tap
@ziomalxxz
@ziomalxxz 2 жыл бұрын
Hello, Do you know anything about migrating Sextans library (ReactiveUI view model based navigation library) to MAUI? Interestingly discussed material about Shell.
@renaudgg
@renaudgg 2 жыл бұрын
Hey James, so did you "redo" the cofeeapp to be .NET MAUI or is it just "xamarin" im confused as how we could see the differences
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I haven’t changed it to .net Maui yet, but the concepts apply
@broadshare
@broadshare 2 жыл бұрын
Nice recap
@jobychacko712
@jobychacko712 2 жыл бұрын
Should I use 'Shell' or is the 'FlyoutPage' is fine?... what is the difference? ( ). There is a 'Detail' with 'Navigation' in FlyoutPage... Please advice...
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Depends on your app. I really like Shell and all the other things that comes with like I outlined. FlyoutPage is also fine, but is a bit messy to setup and use. Up to you and your app.
@keithsummers1889
@keithsummers1889 2 жыл бұрын
I'd like to see some simple clarification about the difference between Shell created Flyout/Tabs/Navigation pages versus the Pages : FlyoutPage/TabbedPage/NavigationPage. Is the Flyout/Tabs/Nav just infused into Shell? Is it correct to say that full Pages of these types can NOT be used while in a Shell app (limited to content page only)? OR is it that Shell contains Flyout, Tabs, already? I'm assuming that a "Shell app" is any app that invokes the Shell inside it project hierarchy? This is just a murky area that needs a solid clarification so that a user can appreciate the philosophical design approach.
@tofraley
@tofraley 2 жыл бұрын
Great vid. I'm kinda confused why the shell is routing with url strings though. I'm a web dev, so I'm familiar with that. But I would not have thought a native app in dotnet would be using magic strings for navigation. Seems like you lose all that juicy type information for MyCoffeeDetail and coffee.Id, only to parse them back into a class and int object.
@dpc4663
@dpc4663 2 жыл бұрын
Hi, is there a tutorial somewhere how to create flyout menu dynamically using DB list? Do I need to save Route and ContentTemplate values for each menu item in the DB? There is ShellItem, FlyoutItem and MenuItem, and I'm not sure which one to use for what in the Flyout page.
@jdia.
@jdia. Жыл бұрын
For some reason, when i have a flyout item with a tab, that has 2 or more tabs within it, the flyout page button doesnt open that one up. it only loads the single flyout items Edit: as your "equipment page" has multi tabs within each other. i have one FlyoutItem with a tab called "Home" and another FlyoutItem with a tab called "Messages", and inside Messages, i have 2 child tabs. Private Messages & Group Messages. Whenever I press either Home or Messages, both bring up Home page, even though the Home Page button is routed to HomePage, and Messages route to MessagesPage
@dallasthornton2374
@dallasthornton2374 2 жыл бұрын
Is there any way to customize the look and behavior of the Tab Bar and the Shell Content? Maybe I'm missing some way to embed other controls into it?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
You could use something like github.com/roubachof/Sharpnado.Tabs to get really custom.
@WarBorg
@WarBorg 2 жыл бұрын
nice video, but the fact that we need to use the Shell singleton class to do the navigating kinda hinders unit testing of the view models
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
They just added this in .NET MAUI P12!!! It is very cool
@CreativeB34ST
@CreativeB34ST 2 жыл бұрын
So basically Shell is to .NET MAUI what partially bootstrap is to web projects. A quick and easy way to set up an opiniated theme and navigation structure, and with the option to customize.
@manasiter2002
@manasiter2002 2 жыл бұрын
Hello James, can we list Wi-Fi near by using Maui
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
You would want to tap into native code such as WiFi manager on Android.
@stephenmiller4948
@stephenmiller4948 2 жыл бұрын
James, I have watched every one of your MAUI vids - they are all fantastic!!! But... There's always a but, isn't there?! I have copied your page and viewmodels almost verbatim, yet I cannot get the QueryProperty values to auto-populate... I there something else that has to be done? I am creating the nav URL like this: var mailboxUrl = $"{nameof (MailboxView)}?MailboxName={selectedFolder.FolderName}"; and execute it like this: await Shell.Current.GoToAsync (mailboxUrl);... In my viewmodel, I have decorated the MailboxViewModel class with this: [QueryProperty (nameof (MailboxName), nameof (MailboxName))] and have a property defined like this: public string MailboxName { get; set; }...... The MailboxName property never gets set so I must be missing something... Any words of wisdom>
@stephenmiller4948
@stephenmiller4948 2 жыл бұрын
I figured this out... It seems the QueryProperty can only decorate a content page or a view model which is the binding context of a content page.
@stephenmiller4948
@stephenmiller4948 2 жыл бұрын
With that said, the behavior works great for a mobile application, but what about a desktop application? When the page is navigated to, the page replaces the previous page in the shell and activates the Back button. What I would expect for a desktop application is for the page to be inset into the region within the master page (master and detail side by side...) This would be on par for how Regions work within WPF Prism... Is there a way to accomplish that?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Yeah, so what you can do is enable Flyout on desktop and use tabs on Mobile if you desire. We do that in the .NET Podcast app... github.com/microsoft/dotnet-podcasts/tree/main/src/Mobile/Pages see MobileShell and DesktopShell
@masudulhoque1275
@masudulhoque1275 2 жыл бұрын
Hi, Can you give some idea about, if Appcenter analytics and crashlytics have support for MAUI application? I tried integrating it in a MAUI application but Android it works fine but iOS it crashes (dll missing System.Windows.Forms).
@davidjackson148
@davidjackson148 2 жыл бұрын
From all the examples I can find around MAUI Shell, there is not a single one that shows Flyout on any other page other than the first page. It seems like it's always assumed you want your app to start with the Flyout navigation and I don't. My app has a couple of pages to get through before you get the the Flyout page. How do I do that please. Can you do a video?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
You would use a fly out page if it is a few layers deep basically
@davidjackson148
@davidjackson148 2 жыл бұрын
@@JamesMontemagno But how would you do that with Shell. Looks like you have to do all the work up front and it kind of feels like its not aimed and deep and complex applications. I could be wrong. If you get some time could you perhaps do a video cos I think I'm missing something here. Keep up the MAUI stuff its awesome :D
@cbradbaer
@cbradbaer 2 жыл бұрын
Hi James, late comment, but I am implementing Shell with my new project. With shell there seems to be what can best be described as "pull to refresh" when swiping left or right. Any way to disable this? It gets in the way of other items on the page, such as CarouselView. Thanks!
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Hmmmm I'm not really sure, i assume that isn't a Shell ting, just a .NET MAUI thing. I would ask on github.com/dotnet/maui
@RajK09
@RajK09 2 жыл бұрын
When we select a menu item from shell menu, it looks like frozen for a fraction of second. Is there any fix for that?
@patrickhunger2336
@patrickhunger2336 2 жыл бұрын
Hi James, I have created a shell and tested it on my Windows machine. When I use a page, I have a window with the standard Windows button at the top. (Minimize, Maximize, Close). When I use Shell, I don't have that anymore. Is there a setting I have to make to achieve it with Shell or do I have to implement these buttons myself?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Do you mean with .NET MAUI? There is a feature not complete yet in .NET MAUI + Shell you have to toggle this -> github.com/microsoft/dotnet-podcasts/blob/main/src/Mobile/Services/EssentialsExtensions.cs#L71 In Xamarin.Forms it should work just fine, but Shell was always a preview feature of Windows there.
@rahul_salokhe
@rahul_salokhe 2 жыл бұрын
how to disabled dotnet maui app shell page right swiping?
@omyoubee7250
@omyoubee7250 2 жыл бұрын
hi plz I need the video for coffee solution from the beging
@davissheive403
@davissheive403 2 жыл бұрын
Why is it so impossible to set the font on the shell tab titles?
@bikashghosh245
@bikashghosh245 2 жыл бұрын
If I need to pass object from one page to another page , what should be your recommendations using Shell..
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
If you need to, you can use classic navigation with shell, however I recommend using parameters and creating a stateless app and load items from a database locally or light weight cache in memory.
@Jad.abouzaki
@Jad.abouzaki 2 жыл бұрын
Thank you
@rarepanda3766
@rarepanda3766 2 жыл бұрын
Hey James, any migration from Xamarin.Forms to MAUI using Shell on both Sides?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Well all your code will just come over and so will your Shell code -> checkout github.com/microsoft/dotnet-podcasts
@LeeM0to
@LeeM0to 2 жыл бұрын
Is there a way to stop Shell from reloading the content when a tab is selected? E.g. so your list remains in place where you were when you navigate to another tab and then return? Another great video as always.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I believe the team addressed this in the re-architecture of .NET MAUI and I thought maybe in a newer update of XF... i will have to check
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Yeah, I just checked now and I believe that is fixed up.
@LeeM0to
@LeeM0to 2 жыл бұрын
@@JamesMontemagno Excellent, thanks for that. And thanks for all the great content. Keep it up 👍
@williambyrne6855
@williambyrne6855 2 жыл бұрын
Closed caption @ 2:10 starts getting humorous. Mentions the benefits of URL instead of creating new sex, and then there's the mention of Donna Maui 15 seconds later. Not sure calling the framework "Maui" was the best choice, but Donna Maui definitely works for me 😃
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Thought I caught most of the auto caption mistakes will have to update them and look closer :)
@pavelkravchenko2810
@pavelkravchenko2810 2 жыл бұрын
Shell overlays Windows's app buttons(__ [ ] X). Is it right behavior or am i doing something wrong?
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
I think they will be there regardless... hard to see what you mean via text. ping me on twitter
@UzairAli001
@UzairAli001 2 жыл бұрын
3:39 It took me couple of hours to know why my Xamain.Forms shell isn't working on MAUI. It would be great if you show how to make FlyoutItems dynamically currently I'm using some sort of a hack which requires at least one page added as a flyout item. The idea is to show navigation items based on permissions setting by an API
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Shell was added into .NET MAUI a while back and we use it in the .NET Podcasts app. Take a look there ;)
@ariesdane5876
@ariesdane5876 2 жыл бұрын
Dependency Injection is broke in Maui shell as of the current beta. Eg, navigation events to child pages doesn't support constructor injection. That really sucks.
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Checkout Preview 12, they just rolled out the feature devblogs.microsoft.com/dotnet/announcing-net-maui-preview-12/
@greeksinmars
@greeksinmars 2 жыл бұрын
The only problem for me is freshmvvm not support shell ...😜
@jespinalny
@jespinalny 2 жыл бұрын
Maui still doesn’t work on MAC. 3/3/2022
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
Checkout dev.to/davidortinau/installing-net-maui-on-macos-4mmc for install which I’ve outlined before
@jhanifkara8552
@jhanifkara8552 2 жыл бұрын
I am still confused. For some reason i feel forms is easier jeje 🤣😭
@JamesMontemagno
@JamesMontemagno 2 жыл бұрын
What questions do you have? Let me know :) Shell is just a feature of XF and .NET MAUI to provide additional structure ;)
@ChrisOnoo
@ChrisOnoo 9 ай бұрын
Thanks a lot
.NET MAUI Explained: What is it, How does it work, and What about Blazor?
34:28
.NET MAUI's Navigation for Beginners - Push, Pop, & Pass Objects
21:36
James Montemagno
Рет қаралды 69 М.
Чистка воды совком от денег
00:32
FD Vasya
Рет қаралды 4,5 МЛН
.NET and C# are in trouble. Here is what I'd do.
10:57
Ed Andersen
Рет қаралды 108 М.
Animating Controls in .NET MAUI & Xamarin.Forms
19:19
James Montemagno
Рет қаралды 26 М.
Take Pictures in Your App with CameraView for .NET MAUI
19:05
Gerald Versluis
Рет қаралды 8 М.
XAML for Beginners - Xamarin.Forms & .NET MAUI XAML
28:10
James Montemagno
Рет қаралды 77 М.
Upgrading from Xamarin to .NET MAUI
13:33
Microsoft Developer
Рет қаралды 10 М.
What is the MVVM pattern, What benefits does MVVM have?
22:38
James Montemagno
Рет қаралды 102 М.
Is There Hope For .NET MAUI?
7:10
SingletonSean
Рет қаралды 30 М.
Может ли перегореть фонарик?
0:52
Newtonlabs
Рет қаралды 975 М.
Вилка  SONY Англия
1:00
Tehnovlog
Рет қаралды 1,5 МЛН
Сколько стоит IPhone на родине Samsung?
0:53
Дмитрий Шилов
Рет қаралды 919 М.
Никогда так не делайте #сборка #пк #pcbuild
0:17
XDOT PC - Игровые ПК
Рет қаралды 1,8 МЛН
купила SAMSUNG Z FLIP 6 🎀 и вот что получилось
0:47