Sempre tenho essa dúvida. Estou aprendendo android mas o que aprendo é só como utilizar widget. Como funciona o android e futuramente vou aprender material design mas tenho uma dúvida. Como se cria aqueles aplicativos todo detalhado com botões com animação e etc. Precisa de alguma linguagem a mais ou tudo é feito no widget pegando ImageView, ImageButton e etc?
O que preciso aprender para criar aplicativos que funcione perfeitamente em dispositivos maiores e menores?