Which SDK to use WinUI3 or UWP for a native windows app? - windows

For building a native windows app which can launch multiple web applications in a webview , i have tried a poc using WinUI3 .Main usecase for this is usb peripheral integrations from the webapps loaded in webview and Single Sign On . Reading more on microsoft documentation , i see some features not supported and some slowness compared to UWP. Do i need to go with UWP for a new app or is the recommendation to go with WInUI3 for a new app development .
Supported Feature List Doc - https://learn.microsoft.com/en-us/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/what-is-supported
Can see WebAuthenticationBroker also in not supported list .
Any guidance on what sdk to use . UWP or WinUI3

WinUI3 is the new technology for Windows Desktop. Although it is not perfect now, but it will be improved. Currently, not all the WinRT APIs are able to be used in WinUI3 apps, but you could use win32 APIs to achieve what you want. So I'd suggest you use WinUI if you are familiar with win32 API can you use win32 API to bypass the limitations.
Compared to WinUI3, UWP is more stable. UWP could use all the WinRT APIs. But some features on UWP are not up to date. For example, some features from WebView2 controls are missing on UWP but available on WinUI like print. Another thing is that UWP apps have limitations like system isolation for accessing local files and local network resources.

Related

Synchronizing Desktop App Converter app settings across devices

Roaming settings options FAQ in Microsoft documentation says:
The Desktop Bridge helps you bring your existing Windows desktop apps to the Universal Windows Platform. From here, minimal code changes will be required to take advantage of Azure AD app data roaming. The Desktop Bridge provides your apps with an app identity, which is needed to enable app data roaming for existing desktop apps.
But there's no mention of what the "minimal code changes" are.
Should the app make use of Windows.Storage.ApplicationData.Current.RoamingSettings API? I use C++ Win32. Do I need to load .NET framework to use the API? Or is there Win32 alternative?
Should the app make use of Windows.Storage.ApplicationData.Current.RoamingSettings API? I use C++ Win32. Do I need to load .NET framework to use the API? Or is there Win32 alternative?
First, I want to let you know that not all UWP APIs are available for the general desktop app. Please check the UWP APIs available to a packaged desktop app (Desktop Bridge) and UWP APIs callable from a classic desktop app
Then, please see Enhance your desktop application for Windows 10 for more details.
In addition:
Some Windows 10 experiences (For example: a touch-enabled UI page) must run inside of a modern app container . If you want to add these experiences, extend your desktop application with UWP projects and Windows Runtime Components.
Please also check Extend your desktop application with modern UWP components document for more reference.

React native vs Xamarin forms

We need to build a commercial mobile app that is supported on iOS, Android and UWP platforms. We have been looking at react native and xamarin forms to do so. What is more recommended/preferable technology to implement this?
Reasons why we wanted to use react native in first place:
1) more experience in JavaScript
2) Some of the UI designs in our mobile app includes having cross platform features which by default could be native to either IOS or android. Such as having icon badges on tab items, having toggle search box in navigation bar. On react native we found these were more easily achievable by git hub plugins but in xamarin forms you need to write custom renderers to achieve so.
Reasons why started investigating on xamarin forms: Since the app needs to run windows phones too, we stared using react native XP plugin to support that. But end prototype on windows phone wasn't very impressive in terms of performance and user experience of some of react native plugins we have used. Plus we also had to do quite a bit UI customisation in terms of specifying width/heights to make components work.
I have been develop on Xamarin a few years now. My honest opinion is that there is a lot of third party libraries and components that only has support for Android and iOS only. Maybe you you check out what third party libraries you need and work back from there.
If Windows Phones are an honest target for you going forward, unless you can limit to those capable of UWP apps (Win 10 Mobile) then scratch Xamarin from the list. Windows Phone 8 and 8.1 support is deprecated and will be dropped soon from Forms.

How to include 'Zendesk' mobile chat support in xamarin forms application

I want to introduce 'Zendesk' chat support in my application. I have tried to search but not get the process of including. Please suggest any idea. Thanks in advance.
Zendesk documentation appears to only indicate native support for Android and iOS. Xamarin can link the SDKs individually for each build -- see Xamarin documentation for this (links included but not summarized due to length), but won't handle bridging the difference between the two. Windows will not be supported by this option. If you only want to target Android and iOS, you can use these options and create wrapper classes with a common interface.
Alternatively, if you badly need Windows support and are comfortable with web technologies, the web sdk offers a full api. Xamarin forms supports a webview in which you can load the web sdk, and either build a GUI in the webview or make api calls via the web sdk.
Links detailing including native libraries:
https://developer.xamarin.com/guides/android/advanced_topics/using_native_libraries/
https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/
Note -- above link is specifically for native libraries, which I believe is correct for Zendesk's SDK. If not, there is also a guide for objective-c libraries on the Xamarin website.

Can Xamarin be used to produce a iOS, Android AND WEB app?

Xamarin is designed to create native iOS, Android, and Windows apps by coding it in C#. But can it also produce a web app?
If not, is there some solution that would enable us to do that?
You can write your backend code (services, data, domain, business logic, etc) in PCL libraries that can be shared between your Mobile apps and your website. But the web frontend would need to be written separately than the mobile front-ends.

Integrate Azure Mobile Services in Xamarin.Mac

By the time I'm writing this, I'm working on a Xamarin cross-platform app (iOS,Android and Windows Phone), using Azure Mobile Services. There is interest of also developing Mac OS X version of this app.
Is there a way to use the Azure for the OS X app, because I can't find anything on the web? Please, be descriptive as possible :)
There is not currently Xamarin.Mac support in Mobile Services. If you look here (https://github.com/Azure/azure-mobile-apps-net-client/tree/master/sdk) you will see there is a Xam.iOS, Android, and Forms project.
You can add a feature request for Xam.Mac, or make an open PR that adds in a Xam.Mac project. I'd assume the main PCL component will work and its just a matter of adding the Mac specific wrappers where needed. I'm not sure how much dev work that would actually entail though to say if its feasible or not.

Resources