Xamarin.Forms 4.6 is out. Download it now!

Home / Xamarin.Forms 4.6 is out. Download it now!

There are many reasons why you should download Xamarin.Forms 4.6 right now, but one is extremely important: without it you cannot publish new iOS apps on the app store anymore (UIView deprecated). Is this not enough? 🙂

So ok, let’s see what other new features we have in this new version.

Improved Shell Styling

Shell is a “quite” new feature of Xamarin.Forms that simplifies your app structure. Using it, you can have access to an “already cooked” tabbed navigation or Fly-out menu (use Shell and you’ll have an app and its navigation ready in 2 minutes). Xamarin.Forms 4.6 has improved the Shell styling making very easy to customise your navigation pages.

Navigating Back

Sometimes you don’t know your previous page so you don’t know where to go when the user presses the back button. Now you can co back with a vey easy and intuitive command:

await Shell.Current.GoToAsync("..");

Experimental Features

Thanks to an amazing open source community, Xamarin.Forms progresses really quickly. Sometime, they want to add new features but maybe the users are not fully ready for them, so they use an experimental flag.

To use a new feature you need to add to your App.xaml.cs the following constructor:

Device.SetFlags(new[] {
    "RadioButton_Experimental",
    "AppTheme_Experimental",
    "Markup_Experimental",
    "Expander_Experimental"
} );

Of course you want to add only the features you need in your app.

RadioButton

Should I really have to tell you what they are? Com on, you know what we are talking about. To be sure your radio buttons are part of the same group, you need to set the GroupName.

<StackLayout>
    <RadioButton GroupName="BestOne" Text="Android" />
    <RadioButton GroupName="BestOne" Text="iOS"/>
    <RadioButton GroupName="BestOne" Text="UWP"/>
</StackLayout>

Expander

How many times did you want to show and hide part of your page? Now with the Expander you can. This component shows/hides its content.

<Expander>
    <Expander.Header>      
        <Label Text="My header"/>
    </Expander.Header>                        
    <Label Text="My content">
    </Label>
</Expander>

Easy? Yes, it is!

C# UI Extensions

This is something I personally don’t like as I prefer to write my UI in XAML, but anyway I’m sure thare are many people around that would love this new feature. If you like to write your UI in C#, then you’ll be very happy. This extension enables the use of the fluent syntax.

Font Embedding

This is an amazing feature. I love it as it makes very easy to use custom fonts in our Xamarin.Forms apps. To add a new font, add it as an Embedded Resource to you .netstandard project then in you assemblyInfo.cs file add this line:

[assembly: ExportFont("yourfont.ttf")]

Just remember to replace “yourfont” with your font filename 🙂

then you just have to set the fontfamily every time you want to use that font. For example if we want to set a font for every label in our app we can create a style like this:

<Style TargetType="Label">
    <Setter Property="FontFamily" Value="MyFontName"/>
</Style>

Conclusion

I’ve tested the new version of Xamarin.Forms and I’ve found few things very useful.I think that you should really upgrade your app to Xamarin.Forms 4.6.

Have you tried this version and you are happy or have issues with it? Let me know your experience in the comments!

Do you need the link to download it? Here you go: nuget Xamarin.Forms

Happy Xamarin Coding!

, , ,

About Author

about author

Marco Troncone

.Net Developer
Xamarin Lover

4 Comments
  1. Zoli

    You still need the experimental-xforms-product-type flag, or is it by default from now on?

    • Marco Troncone

      You still need the experimental flags for the things you want to add to your apps

      • Zoli

        I mean, for the proper ios build, to prevent rejection

        • Marco Troncone

          Oh sorry, I didn’t understand. I think it’s not needed anymore as any reference has been removed from the new X.F 4.6

Leave a Reply

%d bloggers like this: