A Quick Update on Google Components for iOS and Android
One of the best parts about using Xamarin for mobile development is access to all of the platform APIs from C# bindings. Additionally, any native iOS or Android library can be consumed by a Xamarin application by creating a custom binding project. That’s exactly what the Component Team here at Microsoft does for the most popular libraries that developers need access to. In the last 6 months, there have been drastic changes across several key libraries such as Google Play Services and Android Support Libraries. To catch everyone up on work that the team has been doing, what is available for you today, and what’s coming in the future.
Open Source & Issue Reporting
The first thing to share is that all of the work our team does is completely open source on GitHub. This is the best place to follow the work for any SDKs that our team supports. It is also the official place to report any issues. Here is a quick list of the official open source components that you may want to follow:
- Xamarin Components: Main directory for all 3rd party binding projects
- Android Support Libraries
- Google Play services & Firebase APIs for Android
- Google & Firebase APIs for iOS
- Facebook SDKs
- Xamarin.Auth: Cross-platform authentication API
- Cross-platform APIs for your mobile apps
To stay up to date by Starring each of the repositories on GitHub. Turn on notifications under Watch as well to ensure you don’t miss a release!
We also encourage pull requests to any of the component repositories, including fixes for existing bindings or new 3rd party bindings, that you may be doing yourself.
Updates on Google APIs
Google moves fast updating their APIs across iOS and Android. We wanted to give you an update on the libraries and technical work that we have been doing to keep up to date.
Recently we’ve invested substantial time and effort into improving the way we create and maintain bindings for massive SDKs such as Google Play Services / Firebase for Android and Android Support libraries.
A lot of these changes have been happening quietly, behind the scenes but they are nearly complete. These improvements will not only help increase the reliability and consistency of our updates but allow us to react more quickly to new releases and changes in the future.
Google APIs for iOS
We support many of the major Google and Firebase SDKs from Google for iOS and you can find a full list and version number mapping on the official Google APIs for iOS GitHub repository. Newly added to the list is support for Firebase ML-Kit. Recently some libraries were deprecated by Google and the updates broke older versions of our bindings such as mobile ads. These breaking changes were reported by the community which alerted us to take quick action to prioritize finishing the work the team had already started.
AndroidX & Support Libraries
If you haven’t already done so, check out our latest bindings for Android Support libraries v28 with multi-targeting to make installation in your projects easier.
The Components and Android teams have also been hard at work on AndroidX support for Xamarin. Our initial work at providing bindings to these libraries is almost complete, and we will be releasing preview packages for them soon. You can track the binding work on the
AndroidX branch of the official AndroidX GitHub repository. Later this year we will be introducing support for helping you migrate your existing apps and third-party dependencies which currently use Android Support libraries to the new AndroidX ecosystem.
You asked for it, and we’re on it! We’ll be releasing bindings for Android Architecture WorkManager very soon so you can get on with scheduling your work!
Google Play services for Android
This year saw another major change in the Android ecosystem with Google splitting up Play services and Firebase libraries for Android into individually released artifacts. As part of our previously mentioned core work on improving our binding process, we are very close to bringing you another release of bindings for Google Play services and Firebase libraries for Android. Google has deprecated some older library versions and included bugfixes in these versions which you’ll soon be able to use in your apps! Our progress can be seen in the
15.0.1-binderate branch of the official Google Play services & Firebase for Android GitHub repository.
The team is always hard at work keeping up with the latest updates and changes that library creators are making in these SDKs. We will always prioritize breaking app SDK changes in our work sprints as we are made aware of them. With the vast amount of components that the team supports we are taking a strategy of prioritizing based on core consumption of libraries through NuGet. Through looking at the numbers we know that there are several essential libraries that a vast majority of our developers are using today and those are put at the top of our list for updates. We are here to listen and you can always chat with us in our Xamarin Components Gitter chat room.
Do when know when / if there will be a binding for googleplayservices.core so that we can take advantage of the new in-app update API.