Baseflow / LottieXamarin

Render After Effects animations natively on Android, iOS, MacOS and TvOS for Xamarin
https://baseflow.com
Apache License 2.0
1.22k stars 261 forks source link

Add Maui support #379

Open Csaba8472 opened 2 years ago

Csaba8472 commented 2 years ago

:sparkles: What kind of change does this PR introduce? (Bug fix, feature, docs update...)

This PR adds MAUI and .net6 compatibility.

:arrow_heading_down: What is the current behavior?

Currently LottieXamarin doesn't support .net6 projects.

:new: What is the new behavior (if this is a feature change)?

LottieMaui supports MAUI projects, and I've created two new projects for iOS and Android.

:boom: Does this PR introduce a breaking change?

No, as the current projects weren't changed.

:bug: Recommendations for testing

This PR only adds iOS and Android compatibility, macOS, Windows and tizen is not ready yet.

Also, ViewRenderer hasn't been refactored to ViewHandler, so this needed to init the lib:

            .UseMauiCompatibility()
#if ANDROID
                .ConfigureMauiHandlers(handlers =>
                {
                 handlers.AddCompatibilityRenderer(typeof(AnimationView),
                        typeof(AnimationViewRenderer));
                })
#elif IOS
                .ConfigureMauiHandlers(handlers =>
                {
                    handlers.AddCompatibilityRenderer(typeof(AnimationView),
                        typeof(AnimationViewRenderer));

                })
#endif

:memo: Links to relevant issues/docs

-

:thinking: Checklist before submitting

F-Goncalves commented 2 years ago

Hi @Csaba8472 how is the progress for this. Is there anything I could help with? I forked you branch, but cannot get it to build properly. Cannot find UseMauiCompatibility() and the rest of your code snippet.

Csaba8472 commented 2 years ago

hello @F-Goncalves I think this can be closed because: 1, for some reason at some point the android binding broke, I couldn't make it work again. (maybe something changed in a newer lottie lib) 2, the ios binding is based on an older objc version of lottie lib, so even if we do the binding, we will end up with the old ios lottie lib

I think to make the android side work might be easier, but to be able to update the ios lottie lib to the newest swift lib takes more work. In my project I've chosen to create a slim binding. API is not complete, but it works, and it uses the latest lottie libs. https://github.com/Csaba8472/LottieMaui

F-Goncalves commented 2 years ago

That's unfortunate. I'll definitely check out your repository. Thanks for trying though.

rsbepvb commented 2 years ago

Any update on Maui support?

juanjbarrionuevooa commented 2 years ago

Does anyone know if this will be alive again to make this NuGet work on MAUI?

martijn00 commented 1 year ago

I've done some manual work to get things building. Android works, iOS doesn't so far. Anyone wants to update this PR or put in a new one to fix that?

AdamDiament commented 1 year ago

I'm keen to help @martijn00 as I want to upgrade my Xamarin binding of the zoom meeting SDK to support MAUI, and zoom requires lottie. https://github.com/VisualService/dotnet-zoom-meeting-SDK

In the meantime, is it possible to get access to a nuget for the working android side at all, so I can test it out? Or should I clone and build a dll from this branch and reference that?