Diseño de materiales, AppCompat y compatibilidad con versiones anteriores

Estoy tratando de entender un poco mejor los principios del uso de Diseño de materiales (soy nuevo en esta área y he estado leyendo documentaciones y tutoriales, pero el tema todavía es un poco vago para mí), y me alegraré por Un poco de ayuda. Lo que he probado hasta ahora es tener 2 carpetas (valores y valores-21) con un archivo styles.xml por cada una de ellas.

valores / styles.xml:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"></style>

values-v21 / styles.xml:

<style name="AppTheme" parent="android:Theme.Material.NoActionBar"></style>

El problema comienza cuando trato de usar actividades que heredan de AppCompatActivity (A mi entender, eso es lo que necesito hacer para admitir la compatibilidad con versiones anteriores en dispositivos antes de Lollipop para cosas como Diseño de materiales. ¿Estoy en lo correcto? Más información aquí sería Excelente). Si hago eso, la aplicación no se ejecutará en dispositivos que tengan API 21 o superior, ya que "AppTheme" tiene que heredar de AppCompat.

Lo que puedo hacer para resolver eso es crear un tema base que herede de AppCompat, y luego hacer que el estilo en ambos archivos herede de ese tema base ... Pero ya no estoy heredando de Material ... lo que me lleva a la pregunta (s) -

¿El diseño de materiales es solo un tema dado? Y si es así, ¿cómo resuelvo mi problema? ¿Y qué hace exactamente con AppCompatActivity lograr aquí? ¿O es el diseño de materiales esencialmente solo un conjunto de reglas y principios que se supone que debo seguir? Y si es así, ¿por qué necesitamos Theme.Material. *? Me alegrará cualquier información adicional que alguien pueda darme sobre el tema.

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta