reactorui-maui icon indicating copy to clipboard operation
reactorui-maui copied to clipboard

Roadmap & stable release

Open rctec-at opened this issue 2 years ago • 64 comments

Is there a official Roadmap and maybe a planed ETA for a stable release of this package?

rctec-at avatar Jan 16 '23 11:01 rctec-at

Hi, sorry for the late reply, I'm planning to move the library from BETA to RELEASE stage before the end of this month (Jan-2023).

The library itself is already stable enough to be used in a production application, I'm planning to polish the code a bit removing old stuff not used anymore before releasing it.

To be honest, I hoped to have more feedback from adopters regarding problems or issues but I guess the user base is still small.

I think anyway it will gain some relevance as I officially declare it GA.

Thanks for your interest!

adospace avatar Jan 18 '23 13:01 adospace

amazing.

LITTOMA avatar Feb 03 '23 09:02 LITTOMA

Happy to notify watchers of this ticket that MauiReactor is GA since version 1.0.105. I'm going to fix bugs and add new features without changing anything on the API surface so that the numerous provided samples will always build without errors.

Regarding documentation please take a look at the official MauiReactor doc site: https://adospace.gitbook.io/mauireactor/

I'll keep this ticket open for further collecting info about the release & doc that is surely helpful to others too.

adospace avatar Feb 28 '23 15:02 adospace

This looks really interesting @adospace - thanks for all the hard work so far! I watched the video - do you have a rough timescale on when the testing solution you mentioned in the video will be available to try out?

johnkattenhorn avatar Mar 09 '23 18:03 johnkattenhorn

Thanks for your interest @johnkattenhorn, yes I was envisioning building a testing framework for MauiReactor and it's something to do in the coming months, I'll keep you updated on my progress on this thread. Said that, as you know, testing MAUI applications itself is not so straightforward because we'll end up building more integration tests than unit tests: the reason is that we need to actually create MAUI/Native controls under the hood.

On this note, I'm sure you know about the Spice framework https://github.com/jonathanpeppers/spice from @johnkattenhorn: that would be probably a game changer for MauiReactor because it's actually what my library really needs (i.e. a minimal framework to just build native controls tree without the overhead of the MVVM stack). That framework (if it will become real one day) will allow us to build real unit tests without dotnet MAUI dependencies. I've even built a MauiReactor prototype based on Spice (https://github.com/adospace/spice) that seems working pretty well.

So to sum up, I'm still on track to release a testing framework for MauiReactor in the coming months but thinking about the future I guess we still need better support for testing from MAUI itself.

adospace avatar Mar 10 '23 08:03 adospace

@johnkattenhorn Please take a look at the branch https://github.com/adospace/reactorui-maui/tree/setup-testing-layer for an early peek: it contains a couple of unit tests.

adospace avatar Mar 10 '23 15:03 adospace

Thanks, @adospace I'm going to take a look in more detail over the weekend, we are pretty passionate about the possibilities of doing UI via code; you might know our technical director, who is also working in this space too (https://github.com/VincentH-Net/CSharpForMarkup#readme)

johnkattenhorn avatar Mar 10 '23 15:03 johnkattenhorn

I love the concept! Great work. And great samples.

Being so close to how flutter works, what are your thoughts about an AvaloniaUI 11 version?

timahrentlov avatar Mar 13 '23 19:03 timahrentlov

Thanks @timahrentlov,

I follow Avalonia development closely, I make experiments with it since I discovered the project years ago. Besides the numerous great features, when I develop with it I still miss a lot of the MVU pattern and boost of productivity that comes with it from a real hot reload function.

Said that I always found that's beneficial for the community to have so many competing great alternatives to building UI in dotnet considering also Uno and Blazor.

adospace avatar Mar 13 '23 20:03 adospace

Thanks you for sharing your sentiments. It is much appreciated!

timahrentlov avatar Mar 13 '23 20:03 timahrentlov

Wanted just to let you know that the latest version of MauiReactor fully supports component testing, Please check some sample tests here: https://github.com/adospace/reactorui-maui/tree/main/samples/UnitTests Also for the documentation, there is a new article: https://adospace.gitbook.io/mauireactor/components/testing

@johnkattenhorn

adospace avatar Mar 21 '23 22:03 adospace

Wanted just to let you know that the latest version of MauiReactor fully supports component testing, Please check some sample tests here: https://github.com/adospace/reactorui-maui/tree/main/samples/UnitTests Also for the documentation, there is a new article: https://adospace.gitbook.io/mauireactor/components/testing

@johnkattenhorn

  • This is awesome news! @adospace - I'm checking it out now and I'll send you some feedback!

johnkattenhorn avatar Mar 22 '23 05:03 johnkattenhorn

Hi everyone, with latest PR, MauiReactor now supports also builtin dotnet maui hot-reload function (MetadataUpdateHandlerAttribute). A new documentation page is coming

adospace avatar Mar 30 '23 21:03 adospace

Hi everyone, with latest PR, MauiReactor now supports also builtin dotnet maui hot-reload function (MetadataUpdateHandlerAttribute). A new documentation page is coming

Hi, thanks for your great work. Does this mean that we don't need to run Reactor.Maui.HotReload anymore?

stillnurs avatar Apr 02 '23 19:04 stillnurs

@stillnurs no it's just another way to hot-reload the application. The custom MauiReactor hot-reload still supports much more code modifications compared to the built-in one. I guess that the dotnet built-in hot-reload will be more and more powerful in the future (see .NET 8+) Updated list of supported edits in dotnet: https://github.com/dotnet/roslyn/blob/main/docs/wiki/EnC-Supported-Edits.md

adospace avatar Apr 03 '23 08:04 adospace

@adospace Is there any point to combine MauiReactor with C# Markup Extensions from Community Toolkit? I'm fairly new to .NET Maui, hope I'm asking a proper question.

stillnurs avatar Apr 09 '23 16:04 stillnurs

@stillnurs They use different patterns. MauiReactor uses C# MVU app development pattern, while C# Markup Extension is heavily influenced by MVVM. So, they adhere to distinctive design patterns.

saint4eva avatar Apr 10 '23 00:04 saint4eva

@adospace I apologize I couldn't find anywhere else to ask you this question, but Is there a way to smoothly reverse animations with AnimationController? I've playing with it and it seems toggling IsEnabled resets controls to their original position. You can use this small component as an example. Appreciated.

class AnimatedBoxState
{
    public double Translate { get; set; } = 0.0;
    public bool ToggleAnimation { get; set; } = false;
}

class AnimatedBox : Component<AnimatedBoxState>
{
    public override VisualNode Render()
    {
        return new ContentPage("Animated Box")
        {
            new Grid()
            {
                new AnimationController
                {
                    new SequenceAnimation
                    {
                        new DoubleAnimation()
                            .StartValue(0)
                            .TargetValue(50)
                            .Duration(TimeSpan.FromMilliseconds(600))
                            .Easing(Easing.SinInOut)
                            .OnTick(v => SetState(s => s.Translate = v)),
                    }
                    .Loop(false)
                }
                .IsEnabled(State.ToggleAnimation)
                .OnIsEnabledChanged(enabled => SetState(s => s.ToggleAnimation = enabled)),
                new BoxView()
                    .GridRow(0)
                    .HCenter()
                    .VCenter()
                    .HeightRequest(80)
                    .WidthRequest(80)
                    .CornerRadius(10)
                    .TranslationX(State.Translate),
                new Button("Animate")
                    .GridRow(1)
                    .HCenter()
                    .VCenter()
                    .WidthRequest(150)
                    .OnClicked(Toggle)
            }
            .Rows(new MauiControls.RowDefinitionCollection
            {
                new MauiControls.RowDefinition(),
                new MauiControls.RowDefinition(GridLength.Auto)
            })
            .Padding(10)
            .BackgroundColor(Colors.LightSkyBlue)
        };
    }

    private void Toggle()
    {
        SetState(s => s.ToggleAnimation = !s.ToggleAnimation);
    }
}

Otuyishime avatar Apr 13 '23 02:04 Otuyishime

@Otuyishime replied here: https://github.com/adospace/reactorui-maui/issues/59

adospace avatar Apr 13 '23 07:04 adospace

Working on a new feature: it will be possible to use MauiReactor only for a portion of your XAML-based standard MVVM application using a new control called ComponentHost.

You'll be able to use MauiReactor in multiple locations or for a whole Page. Hot-reload will work too (of course only for MauiReactor components).

Everything seems to work well, so I will release it very soon, but if you want to experiment with it now, please pull the xaml-integration branch.

https://github.com/adospace/reactorui-maui/assets/10573253/f950f09f-0429-4d4f-80da-f140776f7b29

adospace avatar May 23 '23 16:05 adospace

What a fantastic idea!

freever avatar May 24 '23 05:05 freever

Working on a new feature: it will be possible to use MauiReactor only for a portion of your XAML-based standard MVVM application using a new control called ComponentHost.

You'll be able to use MauiReactor in multiple locations or for a whole Page. Hot-reload will work too (of course only for MauiReactor components).

Everything seems to work well, so I will release it very soon, but if you want to experiment with it now, please pull the xaml-integration branch.

2023-05-23.17-35-23.mp4

That is a nice effort to encourage people to progressively migrate their app to Maui Reactor. But do not put so much effort on it as it might still encourage people to stick to MVVM and Xaml world.

The purpose of Maui Reactor is MVU and C#

saint4eva avatar May 26 '23 14:05 saint4eva

@adospace ti dicono anche quello che devi o non devi fare, fantastico. Buon lavoro

acaliaro avatar May 26 '23 15:05 acaliaro

Making effort to communicate in English is welcome. lol

saint4eva avatar May 31 '23 11:05 saint4eva

i have problem how to get api for maui reactor, do you have any example of it?

iamnevir avatar Jul 04 '23 15:07 iamnevir

@iamnevir sorry, not sure what you need, do you mean the documentation: https://adospace.gitbook.io/mauireactor/

adospace avatar Jul 04 '23 15:07 adospace

have any sample app of mauireactor work with api? i need some to learn

iamnevir avatar Jul 04 '23 15:07 iamnevir

I have a sample app that I'm crafting that interacts with a REST API including Signalr, but it is not yet ready, I'll let you know here about my progress. This is the sample app (not yet working): https://github.com/adospace/mauireactor-samples/tree/main/ChateoApp

adospace avatar Jul 04 '23 15:07 adospace

how can i use slider in maui reactor to get value to state

iamnevir avatar Jul 05 '23 07:07 iamnevir

@iamnevir please open a new issue for that, I use this thread only for announcements

adospace avatar Jul 05 '23 07:07 adospace