Quali sono le differenze tra i vari framework front end di material design? (Material Ui, Angular Material, Polymer - qual è il migliore?)
Come ogni decisione sul software: dipende. Quale di questi finisca per essere il migliore per te dipende molto dal tuo particolare caso d'uso.
Documentazione - Materialize
Anche se Materialize non è stato specificamente chiesto, penso che meriti una menzione in quanto è una delle librerie più agnostiche là fuori (ce ne sono alcune altre ma sono di dubbia qualità). L'unica dipendenza qui è jQuery e si può iniziare con questa libreria semplicemente gettando un link css e due tag script.
Tendo a stare lontano dalle dipendenze, ma se posso sopportare la dipendenza da jQuery e non sto usando Angular opterei sicuramente per Materialize prima.
Angular Material
Tra le librerie qui presenti sono quello che ha più familiarità con Angular Material - ha una grande serie di caratteristiche che sono facili da integrare in qualsiasi progetto Angular e si sente il "più completo" di tutte le librerie Material. Sfortunatamente, viene fornito con una dipendenza da Angular che più o meno modella il modo in cui costruirete il vostro progetto.
Tendo ad optare per Angular ogni volta che sto costruendo prototipi o progetti che sono intenzionalmente di breve durata. Ma se il progetto richiede Angular userei questa libreria in un batter d'occhio e non mi faccio scrupoli a farlo.
Material-UI
In un ironico scherzo del destino, la libreria Material di React più affermata è quella che mi piace meno. Il mio ultimo contatto con la libreria è stato irto di bug che l'hanno resa inutilizzabile e la libreria stessa è scritta con l'aspettativa di utilizzare Babel, Webpack, ecc. quando cerco di ridurre al minimo gli strumenti di compilazione inutili.
Amo React e penso che sia un incredibile passo avanti per la comunità. Sfortunatamente, non posso raccomandare personalmente Material-UI.
Benvenuto - Polymer Project
Continuo a voler provare Polymer ma devo ammettere che è un po' intimidatorio. Non so se la chiamerei una "libreria" - penso che "stile di vita" sarebbe più appropriato. Il progetto Polymer è tutto incentrato sull'utilizzo di alcuni concetti di browser estremamente lungimiranti che nemmeno io ho ancora abbracciato. Il suo polyfill di componenti web è piuttosto grande (ma più piccolo di, diciamo, React) ed è focalizzato sulla costruzione di Progressive Web Applications (un concetto impressionante).
Purtroppo, l'impegno che stai facendo qui è piuttosto pesante e abbastanza prescrittivo. Anche se sembra essere un buon strumento per un grande progetto, non conosco troppe persone che abbiano familiarità con i suoi concetti - anche contando quelli che sono a conoscenza del progetto.
Introduzione - Material design - Linee guida del Material design
Ma quando tutto il resto fallisce, sono più che a mio agio nel navigare le linee guida del Material Design e nell'implementare i componenti frammentariamente nella mia applicazione in modi che mi sono congeniali. Mentre questo mi costa tempo (una risorsa certamente preziosa), riesco a compensare il costo del codice morto, delle dipendenze non necessarie e della documentazione di riferimento. Inoltre, la mia mancanza di cura per i touch-ripple e le etichette fluttuanti significa che posso risparmiare bit altrimenti utilizzati per ciò che considero una sciocchezza opinionistica.
Essendo il Material Design un insieme di linee guida, dovreste sentirvi liberi di scrivere il vostro codice che lo sfrutti al meglio. Le linee guida stesse sono molto utili quando si tratta di fare scelte fondamentali e tuttavia si è più che liberi di rompere da esse quando non si adattano più alle esigenze della vostra applicazione o del vostro pubblico.