I’ve had some time to think and research since my original comments. Perhaps I’m still a bit confused, but I may be able to state my desires and concerns more clearly. Please help me understand better if I’ve gotten something wrong.
There were several reasons I originally picked meteor for my project. It combines a Angular2/Ionic2/Cordova core of functionality with some additional functions like authentication. These are capabilities I could build on my own, but then again I’m not part of a large development team. I freely admit I’d prefer someone else implement some of the hard parts. And finally, mobile solutions for IOS and Android are critical to the project’s success.
I think I’m starting to understand the impact of the different packages on what I need to do for a successful project. First, there is the split between web and mobile. The tutorial introduces the idea of creating two different sets of HTML (and initialization), one for the web application and one for the mobile apps. This makes sense from the Ionic/Cordova side, since the Ionic HTML elements are used to generate the native mobile apps. While the web app could also be generated by Ionic, I assume adding another layer would impact performance. It’s a reasonable tradeoff that doesn’t greatly impact development.
The second impact of the packages is on layout. When I originally asked about Angular Material, I was concentrating on layout. And because of the web/mobile split I mentioned above, this is primarily for the web side. A good deal of the mobile layout will be dictated by the Ionic HTML elements, as well as the native components.
Finally, there are the user interface components. Again, for mobile you’re limited to native components or elements that are composed of native components. For web, you have behaviors created by a combination of CSS and JavaScript. The more complicated the behavior, the more likely there’s JavaScript lurking the in the background. And complicated behavior in UI elements means I’d much rather someone else implement the primitives I use to construct my application.
So these impacts bring us to the question of using a package like Angular Material, combining layout and user interface elements, and therefore CSS and JavaScript. When I first looked and Angular Material, the simplicity of layout and styling was appealing. In addition, the UI elements seemed to be everything I needed (including mobile, which I ruled out above). But then I took a closer look and realized many of the UI elements are not implemented yet for Angular 2 (autocomplete was simply an example). Ouch. The other candidate packages have similar issues.
What are my choices? I could concentrate on mobile while waiting for one of the packages to implement what I need, augment the layout side of a package with a more complete UI element package (like PrimeNg), or create my own missing UI elements. I’m leaning towards the last option and doing some prototypes.