CommunityToolkit / Maui

The .NET MAUI Community Toolkit is a community-created library that contains .NET MAUI Extensions, Advanced UI/UX Controls, and Behaviors to help make your life as a .NET MAUI developer easier
https://learn.microsoft.com/dotnet/communitytoolkit/maui
MIT License
2.28k stars 402 forks source link

Add from Xamarin.Essentials: `Contacts`, `FilePicker`, `MediaPicker` and `WebAuthenticator` #11

Closed brminnick closed 2 years ago

brminnick commented 3 years ago

The following APIs are included in Xamarin.Essentials, but will not be included in the first release of .NET MAUI Essentials:

To avoid breaking changes to developers using these Xamarin.Essentials APIs, let's bring them into the .NET MAUI Toolkit. This will also allow us to improve upon the existing APIs, making them more robust, to one day add them into .NET MAUI Essentials.

brminnick commented 3 years ago

Temporarily Blocked by Internal APIs

Awaiting approval of this Pull Request: https://github.com/dotnet/maui/pull/1970

maxkoshevoi commented 3 years ago

What was the reason for not including them into MAUI? Are they not stable or optimized?

brminnick commented 3 years ago

Good question!

Yup - we had a few concerns over the stability and flexibility of the APIs and figured it'd be best to let them first mature in the MAUI Toolkit, and then eventually bring them to Microsoft.Maui.Essentials

dimonovdd commented 3 years ago

Hi. I would be happy to help with this issue. But I have a different opinion on this matter: 1) This library should not depend on MAUI. Developers will need the ability to use it in native .NET 6 projects 2) If we want to cut up Essentials, then let's leave only a most important APIs there such as MainThread

I don't see any reason to transfer only contacts, FilePicker and MediaPicker, this will confuse developers and contributors more.

We must clearly see a border between Essentials and Essentials.Toolkit

jamesmontemagno commented 3 years ago

Yes, I was reviewing APIs from Xamarin.Essentials and these APIs stood out to me that could be better to be outside of the box for a bit to rev and add new features. The biggest ones being Taking photos, just very tricky code. Will be easier to iterate in the toolkit before deciding to put back into .NET MAUI officially.

dimonovdd commented 3 years ago

Hi @jamesmontemagno thank you for your reply. And yet, if you have really good reasons to bring it to the toolkit, then we should make a separate toolkit without MAUI for Essentials.

Main difficulty in these APIs is a file accessing after an activity is closed.

dimonovdd commented 3 years ago

If we create a separate toolkit for these APIs, then in the future we will be able to add new APIs (Calendar, AudiRecorder and etc.)

maxkoshevoi commented 3 years ago

Off-topic: Good candidate for Calendar API https://github.com/TheAlmightyBob/Calendars

dimonovdd commented 3 years ago

Off-topic: Good candidate for Calendar API https://github.com/TheAlmightyBob/Calendars

https://github.com/xamarin/Essentials/pull/1406

brminnick commented 3 years ago

Hi Friends. Please open a Discussion for your discussion on creating a second, new, Toolkit.

Let's keep this Feature Request focused on the Contacts, FilePicker, MediaPicker and WebAuthenticator APIs.

brminnick commented 2 years ago

These features will remain in Maui.Essentials