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

Поделиться
HTML-код
  • Опубликовано: 20 янв 2025
  • НаукаНаука

Комментарии • 101

  • @mlhtest5928
    @mlhtest5928 2 года назад +5

    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!

  • @andrewsheley
    @andrewsheley 3 года назад +4

    Was just starting with Maui and was wondering about the shell, perfect timing!!! Another great video, thanks!

  • @SpurgeonB
    @SpurgeonB 2 года назад +1

    Thanks

  • @ddupinsus
    @ddupinsus 3 года назад +3

    This is getting really interesting, I love it… Thank you!

  • @FaheemRasheed
    @FaheemRasheed 3 года назад

    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.

  • @kinsondigital
    @kinsondigital 2 года назад +1

    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.

  • @user-v2u-c2j
    @user-v2u-c2j 3 года назад +1

    Thank you RUclips for the great advice❤

  • @pgklada
    @pgklada 11 месяцев назад +1

    I like the idea of MAUI shell... I am a newbie in MAUI, but with 50- years of programming practice... retired :-)

  • @oliverwaits8174
    @oliverwaits8174 3 года назад +3

    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  3 года назад

      Hmmmm i would open an issue for sure

    •  2 года назад

      Is the ViewModel configured as a singleton?

  • @harlanbrewer4503
    @harlanbrewer4503 3 года назад

    Thanks, James. I'm enjoying your Xamarin tutorials

  • @xamerdev7381
    @xamerdev7381 3 года назад +4

    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.

  • @cliffshivkar9948
    @cliffshivkar9948 3 года назад +1

    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?

  • @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

  • @CrkdLtrN
    @CrkdLtrN 3 года назад +1

    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.

  • @greeksinmars
    @greeksinmars 2 года назад

    Just I loved shell with this video

  • @lmora00
    @lmora00 Год назад

    Excellent video

  • @MorningStar.Ghost.Yal.Priest
    @MorningStar.Ghost.Yal.Priest Год назад

    Awesome! How to customize the margin between each tab of Shell tabs?

  • @Cyberfoxxy
    @Cyberfoxxy Год назад +1

    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.

  • @ventionuxd6002
    @ventionuxd6002 2 года назад +1

    just awesome

  •  2 года назад +1

    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 года назад +1

      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.

  • @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?

  • @HeinrichDaHammer
    @HeinrichDaHammer 2 года назад

    I am just getting my feet wet with MAUI, so far I am loving it, thanks for the video.

  • @moatasemkremed5395
    @moatasemkremed5395 5 месяцев назад

    Hi James, How Can We Set FlowDirection="RightToLeft" for Flyout in AppShell !!
    Is this Posible?

  • @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?

  • @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.

  • @sergiotardo
    @sergiotardo 2 года назад

    Prism or Shell ? that's a question.... do you have any comparation about this two?

  • @saveriobavosio5901
    @saveriobavosio5901 3 года назад +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  3 года назад

      I could have done it on "OnAppearing" most likely... I probably just need to update the code ;)

    • @saveriobavosio5901
      @saveriobavosio5901 3 года назад

      @@JamesMontemagno thanks! I will try your suggestion as soon as I can! :D

  • @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

  • @neilsg2001
    @neilsg2001 Год назад

    Have u covered apps that continue after losing focus. Running like a service? 👍🏻👍🏻

  • @darwinturingan5530
    @darwinturingan5530 3 года назад +1

    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  3 года назад

      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?

  • @ziomalxxz
    @ziomalxxz 3 года назад

    Hello, Do you know anything about migrating Sextans library (ReactiveUI view model based navigation library) to MAUI? Interestingly discussed material about Shell.

  • @broadshare
    @broadshare 3 года назад

    Nice recap

  • @RajK09
    @RajK09 3 года назад

    When we select a menu item from shell menu, it looks like frozen for a fraction of second. Is there any fix for that?

  • @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.

  • @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?

  • @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.

  • @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 года назад +1

      You could add a tap gesture recognizer - docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/gestures/tap

  • @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

  • @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.

  • @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).

  • @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

  • @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.

  • @UzairAli001
    @UzairAli001 3 года назад

    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  3 года назад

      Shell was added into .NET MAUI a while back and we use it in the .NET Podcasts app. Take a look there ;)

  • @ChrisOnoo
    @ChrisOnoo 11 месяцев назад +1

    Thanks a lot

  • @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

  • @sentrycod2373
    @sentrycod2373 3 года назад

    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

  • @anandshindey
    @anandshindey 3 года назад

    Thanks for the video. Waiting for Shell to be included in MAUI. When will it be templated?

    • @JamesMontemagno
      @JamesMontemagno  3 года назад +1

      Not sure yet, but in a future release I hope, they are adding things to template when ready.

  • @davissheive403
    @davissheive403 2 года назад

    Why is it so impossible to set the font on the shell tab titles?

  • @patrickhunger2336
    @patrickhunger2336 3 года назад

    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  3 года назад

      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.

  • @bikashghosh245
    @bikashghosh245 3 года назад

    If I need to pass object from one page to another page , what should be your recommendations using Shell..

    • @JamesMontemagno
      @JamesMontemagno  3 года назад +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.

  • @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.

  • @rahul_salokhe
    @rahul_salokhe 2 года назад

    how to disabled dotnet maui app shell page right swiping?

  • @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 года назад +1

      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

  • @duncancole1742
    @duncancole1742 2 года назад

    I do like Shell but I do wish common UI/Nav patterns, like Login as you mentioned, where better supported.

  • @omyoubee7250
    @omyoubee7250 2 года назад

    hi
    plz
    I need the video for coffee solution from the beging

  • @LeeM0to
    @LeeM0to 3 года назад

    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  3 года назад +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  3 года назад +1

      Yeah, I just checked now and I believe that is fixed up.

    • @LeeM0to
      @LeeM0to 3 года назад

      @@JamesMontemagno Excellent, thanks for that. And thanks for all the great content. Keep it up 👍

  • @WarBorg
    @WarBorg 3 года назад

    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  3 года назад

      They just added this in .NET MAUI P12!!! It is very cool

  • @rarepanda3766
    @rarepanda3766 3 года назад

    Hey James, any migration from Xamarin.Forms to MAUI using Shell on both Sides?

    • @JamesMontemagno
      @JamesMontemagno  3 года назад

      Well all your code will just come over and so will your Shell code -> checkout github.com/microsoft/dotnet-podcasts

  • @Jad.abouzaki
    @Jad.abouzaki 3 года назад

    Thank you

  • @pavelkravchenko2810
    @pavelkravchenko2810 3 года назад

    Shell overlays Windows's app buttons(__ [ ] X). Is it right behavior or am i doing something wrong?

    • @JamesMontemagno
      @JamesMontemagno  3 года назад

      I think they will be there regardless... hard to see what you mean via text. ping me on twitter

  • @ariesdane5876
    @ariesdane5876 3 года назад

    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  3 года назад

      Checkout Preview 12, they just rolled out the feature devblogs.microsoft.com/dotnet/announcing-net-maui-preview-12/

  • @williambyrne6855
    @williambyrne6855 3 года назад

    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  3 года назад +1

      Thought I caught most of the auto caption mistakes will have to update them and look closer :)

  • @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.

  • @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

  • @greeksinmars
    @greeksinmars 2 года назад

    The only problem for me is freshmvvm not support shell ...😜

  • @jhanifkara8552
    @jhanifkara8552 3 года назад +1

    I am still confused. For some reason i feel forms is easier jeje 🤣😭

    • @JamesMontemagno
      @JamesMontemagno  3 года назад

      What questions do you have? Let me know :) Shell is just a feature of XF and .NET MAUI to provide additional structure ;)