Para 1: Eu sei que o Xamarin tem uma forma proprietária baseada em sua implementação do .NET. Você pode usar um idioma para construir o backend de aplicativo comum e há wrappers para as bibliotecas nativas. Eles compartilham a filosofia de construir a GUI com as bibliotecas nativas. Não é javascript embora.