{"id":48327,"date":"2020-11-25T10:20:23","date_gmt":"2020-11-25T18:20:23","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/xamarin\/?p=48327"},"modified":"2020-11-24T14:21:29","modified_gmt":"2020-11-24T22:21:29","slug":"azure-mobile-apps-updates","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/xamarin\/azure-mobile-apps-updates\/","title":{"rendered":"Announcing Azure Mobile Apps v4.2.0 for .NET"},"content":{"rendered":"<p>Recently, we released a large update to the Azure Mobile Apps client libraries. The <a href=\"https:\/\/github.com\/azure\/azure-mobile-apps-net-client\">Azure Mobile Apps<\/a> client libraries enabled you to provide online and offline sync of cloude SQL data to your apps. The recent release of v4.2.0 updated all core platforms and enabled new scenarios by migrating to .NET Standard. This means it now has support for the following platforms:<\/p>\n<ul>\n<li>Android 6.0 (API level 23 or higher)<\/li>\n<li>iOS 10 or higher<\/li>\n<li>UAP 10.0.16299.0 or higher<\/li>\n<li>WPF (.NET Framework 4.6.1 &amp; .NET Core 3.0 or higher)<\/li>\n<\/ul>\n<p>In addition, we&#8217;ve ramped the dependencies to their latest versions, which will help with compatibility with other libraries. Finally, we&#8217;ve upgraded the in-built authentication support within Xamarin environments to use <a href=\"https:\/\/docs.microsoft.com\/xamarin\/essentials\">Xamarin.Essentials<\/a>.<\/p>\n<p>You can download v4.2.0 of the <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.Mobile.Client\/4.2.0\">client library<\/a> and <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Azure.Mobile.Client.SQLiteStore\/4.2.0\">offline support<\/a> from nuget.org.<\/p>\n<p>As a result of these changes, there are some code changes needed to support authentication via the Xamarin.Essentials library. If you have integrated an authentication provider SDK (for example, the Facebook SDK, Google Firebase SDK, or MSAL) and are providing the appropriate tokens to <code>LoginAsync()<\/code>, then there is nothing extra needed. If, however, you are calling <code>LoginAsync()<\/code> with just the window context and provider, then you need to <a href=\"https:\/\/docs.microsoft.com\/xamarin\/essentials\/web-authenticator\">properly handle the callback from Xamarin.Essentials<\/a>.<\/p>\n<p>On android, add an <code>OnResume()<\/code> method to the <code>MainActivity.cs<\/code> class:<\/p>\n<pre><code class=\"csharp\">protected override void OnResume()\n{\n    base.OnResume();\n    Xamarin.Essentials.Platform.OnResume();\n}\n<\/code><\/pre>\n<p>On iOS, adjust the <code>OpenUrl()<\/code> method in the <code>AppDelegate.cs<\/code> class:<\/p>\n<pre><code class=\"csharp\">public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)\n{\n    if (Xamarin.Essentials.Platform.OpenUrl(app, url, options))\n        return true;\n\n    return base.OpenUrl(app, url, options);\n}\n\npublic override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)\n{\n    if (Xamarin.Essentials.Platform.ContinueUserActivity(application, userActivity, completionHandler))\n        return true;\n    return base.ContinueUserActivity(application, userActivity, completionHandler);\n}\n<\/code><\/pre>\n<p>If you have issues or questions with the new library, please <a href=\"https:\/\/github.com\/azure\/azure-mobile-apps-net-client\/issues\">file an issue on GitHub<\/a>.<\/p>\n<h2>What&#8217;s next?<\/h2>\n<p>Since writing the Azure Mobile Apps libraries, the development world has changed, especially as it pertains to the area that Azure Mobile Apps covers. New protocols like gRPC and GraphQL have entered the mix. The mobile Internet is speedier and more reliable. New use cases for mobile apps require support for different database types like NoSQL and Graph databases. It\u2019s time to look at the future, and we need your help for that.<\/p>\n<p>To start, we\u2019ve <a href=\"https:\/\/www.surveymonkey.com\/r\/YGDRX5L\">set up a survey<\/a> to ask what you value in the current library, and the things you feel are important or lacking. This survey will run through the end of the year, and we encourage all mobile developers to <a href=\"https:\/\/www.surveymonkey.com\/r\/YGDRX5L\">take the survey<\/a>.<\/p>\n<p>Your responses will help us decide where we should be going with the feature set that helps you access cloud-based data stores from your mobile applications.<\/p>\n<h2>Next steps<\/h2>\n<p>We will continue to support and evolve our Azure Mobile Apps libraries, so stay tuned for more samples, blogs, and updates in this space!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, we released a large update to the Azure Mobile Apps client libraries, enabling you to provide offline sync of cloud SQL data to your iOS and Android apps.<\/p>\n","protected":false},"author":31954,"featured_media":48328,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5216,856,556],"tags":[7282,867,9187,9019,9188,27],"class_list":["post-48327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-announcements","category-cloud","category-integrations","tag-net","tag-azure","tag-azure-mobile-apps","tag-mobile-apps","tag-offline-sync","tag-xamarin"],"acf":[],"blog_post_summary":"<p>Recently, we released a large update to the Azure Mobile Apps client libraries, enabling you to provide offline sync of cloud SQL data to your iOS and Android apps.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/48327","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\/31954"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/comments?post=48327"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/posts\/48327\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media\/48328"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/media?parent=48327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/categories?post=48327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/xamarin\/wp-json\/wp\/v2\/tags?post=48327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}