Caliburn-Micro / Caliburn.Micro

A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability.
http://caliburnmicro.com/
MIT License
2.8k stars 779 forks source link

Plans for iOS Bindings/Conventions? Sample included #249

Open jonstelly opened 9 years ago

jonstelly commented 9 years ago

What are the plans for 3.0 and iOS/Android for Bindings/Conventions. Is there more work planned or are you looking at that as something to do after 3.0?

I've put together some samples of what I'd like to see to get some feedback. I had something like this working before 3.0 got underway, but moving it on top of Caliburn let me get rid of a good chunk of code and it's somewhat like the Xamarin sample in this repository.

What I'd like centers around the bindings or conventions we normally get from Caliburn Micro. Examples are here (UITextField and Button bindings) and here (UITableView bindings).

The UITableView binding is where things get interesting, since implementing UITableViewSource is no small task. With only a bit more code, it could support section headers, sorting, etc... I'm not at all happy with the implementation of the Bindings yet. The Binding classes are here and while they work, there's already a lot of obvious room for cleanup.

I've just started digging into the Caliburn Micro source, but would this make sense to move into a ConventionManager for the iOS platform? Would this be something that even makes sense to pull into the main package, or would you rather keep it as a contrib package? And if this seems viable/beneficial, I'd happily take any advice on how to make it fit better in Caliburn Micro or a contrib package.

nigel-sampson commented 9 years ago

At the moment the 3.0 builds are looking pretty stable, will put a new beta out in the coming weeks with the idea of a final release early in the new year.

There is most definitely work planned for after 3.0 and falls under a few different categories.

Most of the things we want to implement on the xaml platforms are feature complete, but there's always debate on whether to include new things to help certain platforms and speed up app development, these ones are pretty much on a case by case basis. I wouldn't want to the framework to get clogged up with supporting a lot of different approaches on different platforms.

Good examples here are things like keyboard shortcuts, settings, state preservation etc.

In terms of Xamarin there's a lot of work in terms of what "Caliburn-esque" features can be added to the Xamain native app development as opposed to Xamarin Forms which runs very much in line with CM already (except for x:Name based conventions).

I haven't had much of a chance to look through what you've linked but it certainly looks interesting and something that's a candidate for inclusion. Ideally this would be easily extensible remove as much platform specifics as possible.