TemplateStudio icon indicating copy to clipboard operation
TemplateStudio copied to clipboard

Reactive UI Option

Open kgday opened this issue 7 years ago • 21 comments

A ReactiveUI mvvm version of the templates would be great. I know this is not simple if you were to go the whole reactive hog, but I think it would be worth it.

kgday avatar Jul 05 '17 03:07 kgday

Great idea, but this currently isn't a framework we're targeting to add support in ourselves but would love to see community involvement.

We're viewing this like #304, #446 and #438. We'd also really would like to directly partner with the framework's creators to ensure what is done is correct and looks like a ReactiveUI project

crutkas avatar Jul 05 '17 16:07 crutkas

We'd also really would like to directly partner with the framework's creators to ensure what is done is correct and looks like a ReactiveUI project

👋 Howdy @crutkas. I'm one of the members of the core team of ReactiveUI and we recently joined the .NET foundation. I'd be been to PR in support and get this off the ground.

👋 Howdy @kgday. Don't think have met - head on over to https://reactiveui.net/slack for an invitation to join us in Slack. ps; do you want to help out?

ghuntley avatar Oct 12 '17 06:10 ghuntley

Awesome! We should set up a call with you guys and I would love to better understand a lot about your project. Next week possible? [email protected]

crutkas avatar Oct 12 '17 07:10 crutkas

@ghuntley I have sent the email. I would love to help out, although I am kind of a newbie.

kgday avatar Oct 12 '17 23:10 kgday

As discussed during the MVP Summit I will get started with this. I'm still traveling, but will dive deeper by the end of this week. Once I have a good picture of what needs to be done, we can come up with a plan and see who wants to jump in and contribute as well.

tomverhoeff avatar Mar 13 '18 02:03 tomverhoeff

Just a warning, and as I stated on the issue about MvvmCross support:

There are some big fundamental changes we're discussing about how the templating system works to support some upcoming features. The consequence of this is that any work done in the short term is highly likely to require major rework or duplication in a month or two. I recommend holding on for a few weeks and hopefully, we'll have some answers that will make integrating simpler.

mrlacey avatar Mar 20 '18 13:03 mrlacey

Thanks for the headsup @mrlacey, doesn't make sense to get started right away in that case. Will keep an eye open and get back to it when you guys decided how to move the templating system forward.

tomverhoeff avatar Mar 20 '18 13:03 tomverhoeff

Thanks for the update.

ghuntley avatar Mar 30 '18 23:03 ghuntley

@mrlacey Just wondering how this is moving along, I haven't been keeping up with all WTS updates, has there been a decision on the templating system moving forward yet?

The RxUI team just shipped 8.0, so would be great if we can start working on the WTS template soon.

tomverhoeff avatar May 02 '18 11:05 tomverhoeff

@tomverhoeff We have a meeting scheduled for the day after build to discuss this. It basically comes down to how we handle Xamarin.Forms and other multi-project solutions (and anything else I learn about at build.) It got delayed because of the factors that delayed v2.0 and build provided the opportunity for us to get key members of the team in the same room at once (for the first time ever) so we could discuss/explore all the options easily and in detail. By all means look at what we have at the moment but there's still a big chance for a restructuring of how we manage template composition. Anything made now has the likelihood of requiring a major refactor, especially if it does more than just UWP.

mrlacey avatar May 02 '18 11:05 mrlacey

@mrlacey Thanks for the update and by all means take the time to figure this out. I think WTS could be extra valuable in setting up multi-project solution, but can imagine the complexity.

I'll spend some time familiarizing myself with the way WTS currently works and we'll be ready to get going once you guys are.

tomverhoeff avatar May 02 '18 11:05 tomverhoeff

This looks very interesting I was about to file an issue of suggesting to add the react ui framework as apart from normal MVVM , these days functional programming and reactive UI seems to really take off in a lot of frameworks, specially at Build xamarin forms are also being experimented with Reactive UI currently with F# under following project https://github.com/fsprojects/Elmish.XamarinForms

I am not an expert on reactive stuff, so nt really sure if and how it is an upgrade to developmental process but apparently it reduces the amount of code to do same level of features and is more effecient. Looking forward to this interesting framework ( if being incorporated into WTS )

touseefbsb avatar May 21 '18 18:05 touseefbsb

guyx any update on this? did u guyx have the meeting? will this integration move forward? @mrlacey

touseefbsb avatar May 31 '18 18:05 touseefbsb

This won’t be ready for month(s). We are working with the framework people on this. It is a process. If you want to start playing with it now, highly suggest checking out their samples.

crutkas avatar May 31 '18 20:05 crutkas

@crutkas thanks for the update , and yeah I will check their samples, I hope it solves memory failures of my app :)

touseefbsb avatar May 31 '18 21:05 touseefbsb

@tomverhoeff @ghuntley As per the updated roadmap, we plan to adapt the current UWP templates so that they can create a solution that has a project for the main UWP app and another project (a .net Standard library) that contains platform-agnostic code and is referenced by the UWP app. This is currently being planned here and will be a stepping stone to adding Xamarin.Forms support. (Being tracked here.) The multi-project solution work is being done in parallel to the continued enhancement of UWP templates, it will be released as v3.0 and is expected around October (this is in part due to many of the core team taking time off over the summer.) I originally expected that the switch to the UWP templates creating a multi-project solution would require a big change to the existing UWP templates, but my current feeling/hope is that this won't be the case. I previously advised on waiting to avoid a lot of rework. If you want to start working on UWP templates now, then that's great. If you want to wait for 3.0, that's great too. Expect a branch for this in the next week or two. Or, if you want to wait for XF support (no dates yet but it's likely to be the next big thing we look at after 3.0 ships), that's understandable too.

Whatever you decide, this is how I'd recommend starting.

  • Create an app using an existing framework that includes all pages and features and then convert this to use RxUI. This will be a reference for verifying that the created templates produce what they should.
  • Create the templates for a single navigation option, a blank page, and a single, simple feature such as SettingsStorage. Documentation is currently limited but start with this and be sure to run the coded-tests related to verifying templates (ExecutionSet:"TemplateValidation")

Creating these will put you in a good position to start creating templates for the other pages and features. Let us know if you have any questions or suggestions for improvements to related docs.

mrlacey avatar Jun 01 '18 20:06 mrlacey

@ghuntley, @tomverhoeff, @mrlacey

are we waiting for XF support to be rolled in / multi-project?

crutkas avatar Aug 31 '18 22:08 crutkas

Reactive UI just released version 9.0.1 how are we moving along with this, still far ahead? :)

touseefbsb avatar Oct 05 '18 22:10 touseefbsb

I have been working on this but I've run into a couple of issues that I need help getting around.

First, there's no System.Reactive in the Core project and acquiring data via an Observable is likely the more Reactive way to do it. I've figured out how to add packages to the main project, but I'm not sure how to add it to the Core project.

Second, DynamicData has become the new way to perform complicated collection sorting/filtering in ReactiveUI. If I add a new page type that uses DynamicData to demonstrate sorting/filtering constantly changing data in a DataGrid, will I have to write the same code that uses DynamicData for all of the other frameworks? Or can I just limit it to ReactiveUI from within .template.config file? I ask because some of the guidelines say that if I add something new, it must be available to all frameworks.

Thanks!

limefrogyank avatar Feb 10 '19 19:02 limefrogyank

Any updates?

Shayan-To avatar Nov 09 '20 08:11 Shayan-To

Reference project was provided in #4337.

mikebattista avatar May 07 '22 01:05 mikebattista