The wait is over! Uno.UI for Android now supports compilation for API level 29 (Android 10). It is now possible to use all the new APIs available like the new location permissions and improvements to the Biometry and foldables support.
Using the API level 29 allowed us to review our TextBlock implementation for Android and use official APIs now available to replace some reflection code required to access hidden APIs for MaxLines. While being safer going forward, this approach also provides performance gains for this crucial control. Applications have only 1 or 2 TextBlocks right? 🙂
Exit Android Support Libraries, Welcome Android X
Like all Android and Xamarin developers before, we were using the Android Support Libraries. Those packages can sometimes cause developers some headaches but they achieve a pretty awesome feat. Among other things, they allow us to use new features on devices running older Android versions.
The Android team started a huge refactor to break those libraries into even smaller pieces, now called Android X (or JetPack) and then the Xamarin team released their stable bindings for them last February. Logically, we had to migrate Uno to them! Shout out to the Xamarin team, their migration tooling worked really well.
The Xamarin team is actively adding and maintaining bindings for those AndroidX packages, they are available on nuget. Check out their github page.
The Google Play store won’t accept applications built for Android 8 (SDK 27) since November 2019, so we’re removing support for that SDK to simplify our codebase and devops pipelines. To use Uno 2.3 or higher, your application needs to target Android SDK 28 (Android 9) or 29 (Android 10).
If your application makes explicit use of support libraries, you’ll need to update those to Android X, and there’s some good documentation for it.
If you are following our GitHub repo (hint – you should star it & watch it – many more features coming), you would have noticed we are also hard at work on adding support for macOS apps (Thanks again @MartinZikmund), and while we still do not have anything to announce, it’s taking shape!
Among the implemented features, you’ll find:
- Support for Windows.Data.Xml.Dom by @MartinZikmund, an essential part of the API that many other WinRT and WinUI API use
- Support for Prism Library dotnet new templates.
The Uno.Wasm.Bootstrapper 1.2 also has been released and removes the unfriendly use of “DotNetCliToolReference” that could not be updated via the Visual Studio interface. It includes all the recent improvements such as Windows AOT, Visual Studio 16.6 debugging, .NET interpreter performance improvements, macOS and Linux support, and Visual Studio Code support.
To upgrade from previous versions of the bootstrapper:
- If you had a <DotNetCliToolReference … /> line in your csproj file, remove it
- Add a nuget reference to the Uno.Wasm.Bootstrap.DevServer using the Nuget Package manager
For a more extensive change-log, visit the GitHub releases page. If you are new to Uno, you should go through our Getting Started tutorial. And if you are already using Uno please update your packages to 2.3!
Mathieu Fillion on behalf of Uno Platform Team