{"id":38181,"date":"2018-10-18T15:06:38","date_gmt":"2018-10-18T19:06:38","guid":{"rendered":"https:\/\/blog.xamarin.com\/?p=38181"},"modified":"2019-03-25T13:58:36","modified_gmt":"2019-03-25T21:58:36","slug":"xamarin-forms-3-3-0-little-things-huge-difference","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/xamarin-forms-3-3-0-little-things-huge-difference\/","title":{"rendered":"Xamarin.Forms 3.3.0: Little Things, Huge Difference"},"content":{"rendered":"<p>The Xamarin.Forms team has been working closely with our open-source community to help fill in the \u201clittle things\u201d. Things you\u2019ve told us are important to building your mobile apps and being supremely productive in the process. Since Xamarin.Forms 3.0 shipped at Build 2018, we have been collaborating with you to deliver over 20 new features and fixes. With many more on the <a href=\"https:\/\/aka.ms\/xfroadmap\">roadmap<\/a>!<\/p>\n<p>The three most often used controls in mobile applications are buttons, images, and labels. They are just about everywhere! It\u2019s no wonder we shipped the <a href=\"https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/internals\/fast-renderers\">Android Fast Renderers<\/a> for those back in 2.4.0 with the main focus being on improved layout performance. Which is why that Label continues to get a lot of focus in this Xamarin.Forms 3 series of \u201clittle things\u201d enhancements. In this post, we\u2019ll highlight those updates, give you a taste of what\u2019s happening for Android image performance, and show you how to update your WebView \u202ffor optimal performance on iOS.<\/p>\n<h2>More Label Love<\/h2>\n<p>In the past few releases of Xamarin.Forms, Labels have been getting some serious upgrades thanks to community contributions that added bindings and gestures to spans. Now, thanks to <a href=\"https:\/\/twitter.com\/spellgrgicright\">Alan Grgic\u2019s<\/a> contribution, you can easily add text decorations such as underline and strike-through. Combine everything together, and you\u2019ve got the coveted inline hyperlink!<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;Label&gt;\r\n    &lt;Label.FormattedText&gt;\r\n        &lt;FormattedString&gt;\r\n            &lt;FormattedString.Spans&gt;\r\n                &lt;Span Text=\"This app is written in C#, XAML, and native APIs using the\" \/&gt;\r\n                &lt;Span Text=\" \" \/&gt;\r\n                &lt;Span Text=\"Xamarin Platform\" FontAttributes=\"Bold\" TextColor=\"Blue\" TextDecorations=\"Underline\"&gt;\r\n                    &lt;Span.GestureRecognizers&gt;\r\n                       &lt;TapGestureRecognizer \r\n                            Command=\"{Binding TapCommand, Mode=OneWay}\"\r\n                            CommandParameter=\"https:\/\/docs.microsoft.com\/en-us\/xamarin\/xamarin-forms\/\"\/&gt;\r\n                     &lt;\/Span.GestureRecognizers&gt;\r\n                &lt;\/Span&gt;\r\n                &lt;Span Text=\".\" \/&gt;\r\n            &lt;\/FormattedString.Spans&gt;\r\n        &lt;\/FormattedString&gt;\r\n    &lt;\/Label.FormattedText&gt;\r\n&lt;\/Label&gt;<\/pre>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/forms_hyperlink.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-38193\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/forms_hyperlink.png\" alt=\"\" width=\"1078\" height=\"327\" \/><\/a><\/p>\n<p>That\u2019s not all. <a href=\"https:\/\/twitter.com\/jfversluis\">Gerald Versluis<\/a> has contributed the ability to set the maximum number of lines you wish a label to render. This is super useful for doing things such as displaying a few lines and adding a \u201cread more\u201d to expand the full text.<\/p>\n<pre class=\"lang:xhtml decode:true\">&lt;Label x:Name=\"TruncatedLabel\" \r\n    MaxLines=\"4\" \r\n    LineBreakMode=\"TailTruncation\" \r\n    Text=\"You should see 4 lines of text and truncation at the end. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam mattis quam non enim pellentesque, ut placerat purus finibus. Nulla quis tincidunt ante. Ut mauris lectus, aliquam a sagittis vitae, consequat eget elit. Interdum et malesuada fames ac ante ipsum primis in faucibus. Pellentesque convallis nunc nisi, a imperdiet elit efficitur et. Duis in lectus mollis, interdum ipsum et, tincidunt orci. Fusce ipsum metus, imperdiet non lacus vitae, facilisis feugiat magna. Nulla volutpat nisl tortor, a consectetur felis consectetur non. Curabitur in enim vulputate sem volutpat bibendum id nec lorem. Mauris laoreet lacus ac volutpat tempus.\"\/&gt;\r\n&lt;Button x:Name=\"ReadButton\" \r\n    Text=\"[read more]\" \r\n    Clicked=\"Button_Clicked\" \/&gt;<\/pre>\n<p><span class=\"gallery author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\"><span class=\"gallery-wrapper\"><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/readmore.gif\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-38194\" src=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/44\/2019\/03\/readmore.gif\" alt=\"\" width=\"608\" height=\"1080\" \/><\/a><\/span><\/span><\/p>\n<p>&nbsp;<\/p>\n<h2>Android Image Performance and Memory Boost<\/h2>\n<p>To better support future efforts of image handling, we have introduced the new <span class=\"lang:c# decode:true crayon-inline \">IImageViewHandler<\/span>\u00a0. You can combine this new interface with the Android Glide library made available as <a href=\"https:\/\/github.com\/jonathanpeppers\/glidex\">GlideX for Xamarin.Forms<\/a> by our own Jonathan Peppers. And we have the performance benchmarks to tell the real story!<\/p>\n<p>Below you can check the memory allocation results between a default Xamarin.Forms app and a Xamarin.Forms app that leverages the GlideX library.<\/p>\n<div>\n<table class=\" aligncenter\">\n<tbody>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\"ace-all-bold-hthree\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\"><b>Page<\/b><\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\"ace-all-bold-hthree\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\"><b>Loaded by<\/b><\/span><\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\" style=\"text-align: left\"><span class=\"ace-all-bold-hthree\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\"><b>Peak Memory Usage (bytes)<\/b><\/span><\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">GridPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">Xamarin.Forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">268,387,112<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">GridPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">glidex.forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">16,484,584<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">ViewCellPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">Xamarin.Forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">94,412,136<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">ViewCellPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">glidex.forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">12,698,112<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">ImageCellPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">Xamarin.Forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">24,413,600<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">ImageCellPage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">glidex.forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">9,977,272<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">HugeImagePage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">Xamarin.Forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">267,309,792<\/span><\/div>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">HugeImagePage<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">glidex.forms<\/span><\/div>\n<\/td>\n<td>\n<div class=\"ace-line gutter-author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z ace-ltr\" dir=\"auto\"><span class=\" author-d-iz88z86z86za0dz67zz78zz78zz74zz68zjz80zz71z9iz90z95bdvlz82zkz84zuz70zz71zz84zz68zpz70zz88zcz89z4vcz87zz68zz81zz74zz90zz68zmwz69z\">9,943,184<\/span><\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>We look forward to bringing additional performance improvements to images in Xamarin.Forms. The Team is actively investigating more tightly integrating GlideX so you can get the best performance experience by default.<\/p>\n<h2>WebView Updated for iOS<\/h2>\n<p>iOS has used the <span class=\"lang:c# decode:true crayon-inline\">UIWebView<\/span>\u00a0for displaying a web browser control since iOS 2, and it provides Xamarin.Forms with the best backward compatibility when you use the WebView control. With iOS 8.0, Apple introduced <span class=\"lang:c# decode:true crayon-inline \">WKWebView<\/span>, and this is now available as an option for you when using in Xamarin.Forms 3.3.0. <span class=\"lang:c# decode:true crayon-inline \">WKWebView<\/span>\u00a0 runs Safari in a separate process and provides better performance, especially when you need to execute JavaScript.<\/p>\n<p>To use the <span class=\"lang:c# decode:true crayon-inline \">WKWebView<\/span>\u00a0 instead of the <span class=\"lang:c# decode:true crayon-inline \">UIWebView<\/span>\u00a0 you have to add this directive to your AssemblyInfo.cs:<\/p>\n<pre class=\"lang:c# decode:true \">[assembly: ExportRenderer(typeof(WebView), typeof(WKWebViewRenderer))]<\/pre>\n<h2>Get Started Today!<\/h2>\n<p>Check the full <a href=\"https:\/\/developer.xamarin.com\/releases\/xamarin-forms\/xamarin-forms-3.3\/3.3.0\/\">release notes<\/a> for all the details, and we would encourage you to explore the documentation. Xamarin.Forms 3.3.0 includes more than 30 bug fixes and ships just 30 days after 3.2.0 meaning you don\u2019t have to wait long to benefit from all those quality improvements.<\/p>\n<p>This update is now available on NuGet and via your Visual Studio package manager:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Xamarin.Forms\/\">NuGet<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/davidortinau\/TheLittleThingsPlayground\">The Little Things Playground Sample<\/a><\/li>\n<\/ul>\n<h4>Find an issue or have a suggestion?<\/h4>\n<p>We would encourage everyone to engage with us on GitHub and <a href=\"https:\/\/github.com\/xamarin\/\/issues\/new\">report any new issues or make suggestions here<\/a>.<\/p>\n<p>If you want to find out what we are working on right now, then you can explore our sprint project boards on GitHub. Finally, if you\u2019re curious about what comes next and want to help us shape Xamarin.Forms then you can visit the <a href=\"https:\/\/aka.ms\/xfroadmap\">Xamarin.Forms Feature Roadmap<\/a> and let us know what you think.<\/p>\n<p><a href=\"https:\/\/forums.xamarin.com\"><em>Discuss this post in the forums<\/em><\/a>\t\t<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Xamarin.Forms team has been working closely with our open-source community to help fill in the \u201clittle things\u201d. Things you\u2019ve told us are important to building your mobile apps and being supremely productive in the process. Since Xamarin.Forms 3.0 shipped at Build 2018, we have been collaborating with you to deliver over 20 new features and fixes. With many more on the <a href=\"https:\/\/aka.ms\/xfroadmap\">roadmap<\/a>!<\/p>\n","protected":false},"author":553,"featured_media":40944,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[2,367],"tags":[409,16],"class_list":["post-38181","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developers","category-xamarin-forms","tag-releases","tag-xamarin-forms"],"acf":[],"blog_post_summary":"<p>The Xamarin.Forms team has been working closely with our open-source community to help fill in the \u201clittle things\u201d. Things you\u2019ve told us are important to building your mobile apps and being supremely productive in the process. Since Xamarin.Forms 3.0 shipped at Build 2018, we have been collaborating with you to deliver over 20 new features and fixes. With many more on the <a href=\"https:\/\/aka.ms\/xfroadmap\">roadmap<\/a>!<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/38181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/users\/553"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=38181"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/38181\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/40944"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=38181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=38181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=38181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}