Have Xamarin.Forms support mobile devices and desktop/laptop/tablet devices as equal as mobile devices.
Xamarin.Forms is no longer a mobile-only technology and should thus not be treated as such anymore.
XF can now target Windows, Mac, Linux, (ChromeBook?) and other desktop, laptop, tablet, or note devices, that are larger than the average 5-6" smartphone.
In addition, many can utilize the use of mouse, keyboard and other means that do not normally exist in the mobile world.
With that in mind, I'm here to request Xamarin.Forms to implement a set of features that will make it easy to ship a XF app to as many device sizes as possible.
Here's a list of the things that would be required in order to provide that:
There should be easy ways to make an app shrink and expand, its same layout and controls differently according to the screen size and proportions. Not only using CSS.
The current layouts were all made to serve mobile devices and all remained this way. Please unlock them and have them work on desktops easily. This includes:
WrapPanel
etc.) (See this)Implementing in-button or in-menu mnemonics, shortcut, and tab-order support
Better support for hover, drag & drop, mouse right/left/middle clicks, combined keyboard & mouse functionality (e.g. Ctrl+Mouse scroll). Just please cover all mouse events. Just imagine that you're not serving serving mobile devices any longer...
More controls that are necessary to large screen or LoB apps, such as:
Allow desktop/tablet/note XAML designer/previewer.
Ordered by personal priority, comment on and I'll change it if necessary.
I'll also expand (or shrink) this list if needed.
Related: #2415, #2721, #1728
There are controls that are core on several platforms, which would work across all platforms, but which are not native on all Xamarin platforms.
E.g. Checkboxes and RadioButtons (WPF, Mac, UWP, Android but not iOS).
Historically Xamarin.Forms doesn't include those, and leaves it up to 3rd party development.
I think it makes even more sense now (now that desktop platforms are supported) to forget that idea and just implement these controls on the remaining platforms.
There are controls that are core on several platforms which wouldn't work across all Xamarin platforms.
E.g. Hierarchical Menus (WPF, Mac, UWP, but not Android or iOS).
We perhaps should have a namespace for those that indicates they won't get complete platform support. Perhaps Xamarin.Forms.PlatformSubset, where these controls have xml documentation stating which platforms are implemented.
These are of course large strategic decisions for Xamarin.Forms as it grows beyond a mobile platform.
Xamarin.Forms has matured too far to keep the 'native only' mantra on. It's time for some combination of several native controls to achieve some critical functionality. CheckBox
and RadioButton
are a very good example, but there are more.
The general purpose of this issue is to encourage Xamarin to accept desktops and tablets as first class citizens and allocate the required resources (e.g. controls, tooling) to achieve that.
Yes. Adaptive layout is significant. We found a WrapLayout on the web and implemented it in to our app. The controls wrap from left to right, top to bottom. This enables us to fit controls on the screen in to some extent. But, it's fairly buggy. It doesn't wrap properly when it is inside another wrap panel or scrollable panel. It shoulnd't be so difficult to design screens that fit over two form factors. This should be a core principle of XF design - not an afterthought.
@weitzhandler Xamarin.Forms has matured too far to keep the 'native only' mantra on. ...
The general purpose of this issue is to encourage Xamarin to accept desktops and tablets as a first class citizen and allocate the required resources (e.g. controls, tooling) to achieve that.
I very much agree with all this. There are a couple of issues:
I don't think 2. needs to be linked to desktop support. It aplies to non-desktop Xamarin.Forms users (phones and tablets), and doesn't apply to all desktop users (e.g. using Xamarin.Forms for WPF and Mac). There may be a correlation between desktop usage and need for adaptive layouts, but there isn't a strong technical relationship.
@charlesroddie that's what I meant with 'native only' mantra. XF should provide these controls on its own on those platforms that do not support it.
All platforms that you can develop software for should have first class designer support, especially desktop platforms. I would really appreciate being able to use a designer for UWP in my Xamarin.Forms projects, as this would speed up development of user interfaces. One thing that is frustrating is that we have support for Android and iOS tablets and devices in the previewer, but there does not seem to be any support for Windows phones or tablets. I am primarily a Windows developer, so I develop for Windows first. Better support for Windows apps will be great. Since screen sizes of monitors and devices that people use varies significantly, adaptive layout support for desktop apps does make sense.
A good example of the need for adaptive desktop layouts is schools using the same software on desktops with large monitors, monitors that only support 1024 by 768, and teachers that use netbooks with even smaller screens. On top of that different users use different accessible text sizes that can badly affect the screen layout.
It would be nice to have a single designer in the .NET Standard Project. This designer would provide the ability to lay the screen out depending on orientation, screen size, and accessibility text size. As you make changes to this designer, under the hood it would be writing platform specific code such as custom renders in each of the projects that you have such as UWP, iOS, and Android etc.
An Adobe application called Muse that is for building websites provides a good example of what I am suggesting. In the designer you can set breakpoints. Within each breakpoint, you can provide a different layout of content for the same controls if the layout breaks. It would be good if we could have this kind of feature, and be able to see what our content would look like in portrait, landscape, and accessibility text set to 100%, 125%, 150%, and 175%.
Most helpful comment
Xamarin.Forms has matured too far to keep the 'native only' mantra on. It's time for some combination of several native controls to achieve some critical functionality.
CheckBox
andRadioButton
are a very good example, but there are more.The general purpose of this issue is to encourage Xamarin to accept desktops and tablets as first class citizens and allocate the required resources (e.g. controls, tooling) to achieve that.