Quick Links

Xamarin.Forms 2.3.3.193

Important notes

Xamarin.Forms 2.3.3 depends on a Xamarin installation of Cycle 8. Users upgrading from Xamarin.Forms 2.3.2 (or earlier) will experience numerous compile errors if they attempt to build without first upgrading their Xamarin installation.

When upgrading Xamarin.Forms take care not to simply "update all" as that will update the Xamarin.Android.Support packages to an incompatible version. More info here.

Breaking changes

[UWP] TabbedPage ContentPresenter is now of type FormsPresenter instead of TabbedPagePresenter. This is an internal change only that will only affect users explicitly targeting TabbedPagePresenter in the UWP project.

you can bind to property of native views. A proxy is created on the fly for supporting 2-Way bindings if possible. If the native property doesn't implements INPC, or support Observable (on iOS), or is a DependencyProperty (on UWP), you can pass an UpdateSourceEventName parameter to the binding expression.

if you set, or bind to, attached BindableProperty to a native view that will be wrapped in a X.F.View, those property values and binding are transferred to the wrapper. See HorizontalOptions in the sample above.

Platform Specifics

Introducing Platform Specifics! Features or behaviors that apply to one platform only can now be implemented without requiring custom renderers. These new features/behaviors can then be accessed easily via a fluent code API or XAML.

Vendors can easily add their own Platform Specifics by attaching Effects to them (see 63a924d and 1f9482e for complete example).

This feature implements the framework that enables the new API and also includes several examples of platform specific features, which can be previewed using the Platform Specifics gallery page:

@AllessandroCaliaro: that's what I'm saying, yes. You can declare native controls in PCL, and native bindings to them. As the xaml is inflated at runtime, all the native stuffs are resolved by that time.

Do not try your luck and add x:Name to Native Views in a PCL. That will create a variable of the native type and will cause a compilation error. The Force is strong, but not that strong.

Can you create a developer guide for platform specifics for those who won't see this announcement?

Can you create a developer guide explaining conventions you use for unit / ui testing? I see a lot of classes named Bugzilla[BugID] that derive from ContentPage. Are these for playground while fixing bugs? What are those gallery pages? I noticed most people submit PRs without tests which makes me believe regression bugs are inevitable. An end-to-end walkthorough would be great.

Also, I'd love to see feature requests being upvoted / discussed by the community. I know there is a UserVoice page somewhere that nobody looks at. Can you permanently pin it to the forum for everybody to see and use?

If you use platform specific native view feature will XamlC always be switched of or is it for this beta? I'm just trying to get my head around if we can use this feature in complex views that rely on XamlC for performance.

@TheRealJasonSmith said long ago, that OnPlatform doesn't work for those cases and that you think about a better solution. Have you found one? - Or will Silverlight just be deprecated and RT assumed to be the same as UWP?

@NMackay if you define your tabbed page and all the content in a single xaml file, then yes. If you can isolate the the view containing the native part to a single file, only disable XamlC on that one.

We are working on making this feature works with XamlC on, but we don't know yet when it'll be released

QUOTE: "I can be wrong but this seems to be a problem with every library that implement a custom Renderer and not with Prism. The latest (2.3.3.152-pre2) XF exposes an abstract CreateNativeControl that needs to be implemented on the renderers and all previous UI libraries stopped working for me."

Why is XF not sticking to semantic versioning? 2.3.3-pre2 is introducing new features? How is that possible? I'd prefer a 2.3.3-whatever concentrating on fixing the various and annoying reported bugs under iOS 10 (crashes).