Let's get this conversation humming, because we really need to hear from you, our community of developers!
FIRST, thanks for laboring to capture this and craft a proposal for us to discuss in the open here.
I'm going to share some of my thoughts, ask some stupid questions, and ask some hopefully-not-too-leading questions. As the Program Manager for Xamarin.Forms I often have to ask questions in such a way that it makes it sounds like I don't have a clue (sometimes I don't), but really I just need to hear things from YOU without putting words in your mouth.
There are things I like in this proposal, because I can see how they might address some the problems I've been talking to many, many of you about, and we are working towards solving.
I also have reservations.
I'll kick off here with a couple general threads of thought about the Shell concept and the developer experience.
to get a complete app experience that is properly structured, uses the right elements, with very little effort and a clear path to being good by default.
If I use this approach to describe my application at the top level, I get: - an app themed to look the same on every platform - material design (in this case) patterns on by default - the latest navigation patterns enabled with configuration - I don't have to labor to customize Entry or Button to look the same on iOS and Android and UWP?
Is that accurate? Other benefits I should highlight?
App I have
MaterialShell. I need to learn/adopt a new top level application paradigm to benefit from this?
Once I'm into my app, I'm back in
ContentPage land, correct? But all my
Entrys are material-fied and pretty. Can I still
OnPlatform and the like to diverge the look (or behavior) to be different on another platform?
What's my migration path look like from an existing app to using this "shell"? I introduce the new
MaterialShell, describe how I want my app to be structure and look, and just run it to see the new goodness?
What are my options if I like the way the
Flyout or the menu items look, but I need to tweak them to match my designers comps? At what point am I saying "Ugh, I should've rolled this all myself" and moving what I have to a standard Xamarin.Forms app structure?
If I have to totally abandon the
MaterialShell, do I lose all that styling goodness and I'm back where I started (like today) with an
Entry looking quite different between iOS and Android and UWP? I would like to not.
There's a tipping point I'm anticipating. After I've used this approach to get going quickly, I will hit some limitation and need to explore my options. What are they and at what point am I better off not using
I'll close this first comment with a few questions to everyone reading.
- Is the problem that this proposal attempts to address well defined?
- Is it a problem you share?
- As you read this spec, what problems that you have faced on previous projects do you feel this would solve for you?