launchdarkly / dotnet-client-sdk

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

Removed redundant dependencies on android support libraries. #25

Closed Vladimir-Mischenchuk closed 3 years ago

Vladimir-Mischenchuk commented 4 years ago

Requirements

Currently mono droid SDK has dependency on Android Support libraries but actually doesn't use them in code (I've checked only master branch). I'm suggesting to remove these redundant dependencies. This would allow to use your SDK package with mono droid 10 and Jetpack.

Describe alternatives you've considered

As alternative you could think about introducing dependencies on Jetpack instead of Support libs when platform is Mono Droid 10 (if you really need them somewhere).

Additional context

Jetpack overview Support libraries are no more maintained by Google and latest guides recommend to use Jetpack instead. These two sets of packages are not compatible with each other. On current project I can't use your SDK for mono droid 10 since I've integrated Jetpack there.

Thanks in advance.

eli-darkly commented 4 years ago

Thanks for bringing this to our attention. We'll look into it for our next Xamarin SDK release.

eli-darkly commented 3 years ago

@Vladimir-Mischenchuk - If you're still following this issue, I apologize for the long delay. The Xamarin SDK was on the back burner for quite a while as other projects took priority, and then we had some tool issues that were blocking development and releases (you can see that the CI build is still broken at the moment, that's the main one we're dealing with now). We have some bigger changes in mind for the SDK in an upcoming major version release, but we still do want to patch any remaining issues in 1.x.

This looks like a reasonable change but we may still need to make some adjustments, so I'll be pulling it into a separate branch for now rather than master.

I do have a couple of questions, though. Assuming your concern is compatibility with MonoAndroid 10.x... you've removed three conditional dependency blocks in the project file, which were for MonoAndroid 7.1, 8.0, and 8.1. Since 8.1 is currently the highest target we're building for, that's the one that would be used for a project that targets 10.x or any other version >= 8.1. What I'm wondering is 1. why you did not instead suggest adding a target for 10.x, and 2. are you sure about removing these dependencies from the older target frameworks? If anyone is still developing for 7.1 or 8.0, is Jetpack an option for them?

eli-darkly commented 3 years ago

I'm fairly sure, though, that the answer to my second question is that it doesn't matter because the SDK was not actually using any functionality from those libraries. As far as I can tell, the .Core.Utils one was referenced by some code that we had copied from Xamarin Essentials, but we had removed that part of the code anyway as it wasn't needed for our purposes. I'm less sure why .CustomTabs was ever in there, but my guess is that it may have been added from a project template in a very early draft of the SDK, like it was something that an IDE thought we might want for a Xamarin project, and then it just never got removed; since it seems to be entirely about UI components I can't think how we would have ever been using it.

eli-darkly commented 3 years ago

This fix is in the 1.2.1 release.