launchdarkly / dotnet-client-sdk

LaunchDarkly Client-side SDK for .NET
Other
7 stars 10 forks source link

LAUNCHDARKLY DEVELOPER SURVEY: .NET 6.0 Android/iOS usage, and Android API versions #42

Closed eli-darkly closed 1 year ago

eli-darkly commented 2 years ago

From the LaunchDarkly SDK team:

We're posting this to get feedback from our customers who use the LaunchDarkly client-side .NET SDK for mobile platforms. The basic questions we're asking are:

  1. Have you already migrated, or will you soon migrate, to the .NET 6.0 frameworks that replace the old Xamarin frameworks? That is, are you building code with a target of net6.0-android/net6.0-ios, rather than monoandroid/xamarin.android/xamarin.ios?
  2. For Android, what is the oldest Android API version that your LaunchDarkly-enabled applications need to support?

The background is that we're trying to determine how soon we should migrate our SDK to use the new target frameworks. They are backward-compatible in the sense that an application built for net6.0-android or net6.0-ios can use a library built for xamarin.android or xamarin.ios (as our library currently is)— but not the other way round. So, if we started using the new frameworks, our SDK would become unusable by anyone who still needs to build with the old ones.

The other issue is that the new net6.0-android requires a minimum Android API version of 30 (a.k.a. Android 11), and as far as we can tell, Microsoft has no plans to ever support lower Android API versions. So anyone who needs to remain compatible with older Android versions would need to keep using Xamarin.

We do want to adopt the new frameworks eventually, since there are significant advantages to doing so. Microsoft is abandoning the older Xamarin model. The Xamarin development tools have never been up to date with the rest of .NET— for instance, Xamarin projects still must be built with msbuild, and must use an obsolete variant of the .csproj format— and it's harder to run them in a non-Windows environment.

Our next major version 3.0 release of this SDK (which is part of a larger LaunchDarkly product feature release) will continue using the same Xamarin frameworks as before, in any case.

ChristianTBaker commented 1 year ago

I just made a feature request that may be able to be closed and moved under this survey. My team at Echo Global Logistics is currently starting the migration process from Xamarin Forms to Maui. For major companies that use outdated frameworks, the migration will not be as easy as Microsoft makes it sound. This is a process that will likely take us 6 months and is why we are starting now. Not being able to feature flag during this migration process is a major concern of ours, so if this is not happening by the end of the year, we may need to look for other options. Every other 3rd party service we use is already working on Maui support.

eli-darkly commented 1 year ago

@ChristianTBaker Please see my response on that issue. For clarity, I would like to keep this one devoted to collecting answers to the two questions in the description.

eli-darkly commented 1 year ago

I mean, I understand that you're saying your company is migrating to the new frameworks now, so that's an answer. But the issue you posted seems to be in direct contradiction to the assumption we're making in this survey, where we wrote "They are backward-compatible in the sense that an application built for net6.0-android or net6.0-ios can use a library built for xamarin.android or xamarin.ios (as our library currently is)— but not the other way round". So if there's a wrong assumption there that we need to work out, I'd like to do it there and avoid having it take over the thread here.

alexanderdibenedetto commented 1 year ago

This thread looks stale, but I do want to comment that the company I work for, we are updating everything to .NET MAUI before September of this year. The new operating systems from iOS/Android in 2023 will NOT be supported on Xamarin Forms. I think it is safe to say everyone will have to update to .NET MAUI or risk their applications not working on the new operating systems / Xcode / Android build tools.

It would be a good idea to add net6 and net7 ios/android support (both is ideal) as soon as possible, and your current version does support Xamarin.iOS/Xamarin.Android for anyone who wants to stay on the old platform. The new update can be for those who know they need to migrate to .NET MAUI. Your nuget package also targets netstandard2.0 which is net6 compatible so therefore can be used within the shared layer.

as far as minimums, it seems there would not need to be a new minimum: https://learn.microsoft.com/en-us/dotnet/maui/supported-platforms