Surface DUO e Xamarin (parte 1)
Instalando o Emulador
Em 2019 a Microsoft lançou várias novidades relacionadas à sua incrível linha de dispositivos Surface. Dentre essas novidades foram anunciados o Surface Neo e o Surface Duo.
Em resumo, são dispositivos de duas telas sendo que o Neo tem uma tela de 9 polegadas e o Duo vem com "uma tela que cabe na sua mão".
A grosso modo, o que eu percebo é que o Surface Neo tem uma cara mais de tablet, já o Duo seria uma versão menor do Neo mas que tem a opção de fazer aquela coisa antiga e antiquada: Ligações.
Pra você entender - e se surpreender - esse vídeo mostra detalhes dos dois dispositivos:
Primeiro o Surface Neo...
... e agora o Surface Duo.
A previsão é que a Microsoft lance esses dispositivos no fim deste ano. Vamos aguardar...
Mas o que isso significa para desenvolvedores e desenvolvedoras?
Você deve ter percebido que o Surface Duo roda Android. Isso mesmo! Em um determinado momento do vídeo a Play Store é mostrada. Isso é incrível. A Microsoft colocando um Sistema Operacional do Google num dispositivo top de linha.
Já o Surface Neo roda uma nova versão do Windows 10, chamada Windows 10X. Saiba mais aqui https://blogs.windows.com/windowsexperience/2019/10/02/introducing-windows-10x-enabling-dual-screen-pcs-in-2020/.
Podemos notar um impasse aqui: De um lado Windows e de outro Android.
E é ai que o Xamarin brilha muito, e a nossa ideia é mostrar como iniciar o desenvolvimento para múltiplas telas usando Xamarin Forms. (Claro que você poderia usar a abordagem tradicional, utilizando o Xamarin Android - mas apenas para o Surface Duo).
Imagino que você esteja perguntando: "E o iOS?".
Bom, nesse caso, não sabemos se a Apple vai ter algum dispositivo com duas telas ou algo do gênero, mas se tiver, com certeza teremos o suporte via Xamarin.
Vamos ao que viemos - O Emulador
Antes de tudo é importante destacar que estaremos utilizando um software na versão preview. É importante que você entenda que muita coisa pode não funcionar e que eu nem preciso dizer que não é recomendado utilizar o que for explicado aqui em ambiente de produção.
Para podermos começar a estudar como desenvolver para esse tipo de dispositivo e como adaptar nossos apps a essa nova abordagem, é necessário instalar o emulador do Surface Duo.
O processo é simples, mas tem algumas pegadinhas, e eu escrevi esse post justamente para você conseguir rodar o emulador sem ter dor de cabeça.
Aqui eu parto do pressuposto que você tenha um ambiente Android instalado e configurado na sua máquina.
Pra começar, atualize seu Android Emulator para a versão 29.2.1 ou superior, atualize seu Android SDK Tools para a versão 26.1.1 ou superior e instale o Android SDK Platform 29. Para fazer isso abra o Android SDKs and Tools e efetue as atualizações:

Feito isso, baixe o emulador diretamente do site da Microsoft, instale (Next, Next, Finish) mas não o execute ainda: https://www.microsoft.com/en-us/download/details.aspx?id=100847 .
A instalação é bem simples. Ela coloca dentro da pasta c:\users\AQUI-VAI-SEU-USERNAME\SurfaceDuoEmulator vários arquivos necessários para executar o emulador do Surface Duo. O arquivo que efetua a inicialização é o run.bat que fica na pasta artifacts.
Clique com o botão direito e abra esse arquivo com qualquer editor de texto. Eu usei o Notepad mesmo.
Nesse arquivo tem uma linha parecida com essa:
set ANDROID_SDK_LOCATION="C:\Program Files (x86)\Android\android-sdk"
É aqui onde podemos ter alguns problemas. Verifique se o caminho do SDK do Android é válido. Se não for, substitua o valor da variável ANDROID_SDK_LOCATION pelo caminho válido. Note que, se o caminho para a pasta do SDK do Android conter espaços, é necessário colocar o valor entre aspas.
Pronto! Agora podemos abrir o nosso emulador.

Se você tentar criar um App em Xamarin Forms e tentar rodar, você não vai conseguir se conectar ao Emulador. Vai ser necessário baixar a versão preview do Visual Studio e instalar uma versão específica do Xamarin Forms. Esse é o assunto do próximo post: Preparando o Ambiente.
Faremos uma live no canal do Monkey Nights em breve, então se inscreva no canal e toque no sininho: https://www.youtube.com/channel/UCFaQBRaoHrAxcGoeY8E5jvQ
Por enquanto é só... agora eu vou tentar montar uma demo bacanuda para mostrar para vocês nos próximos posts :)
Parte 1: Instalando o Emulador
Parte 2: Configurando o Ambiente
Parte 3: Desenvolvendo a APP
Referências:
- https://devblogs.microsoft.com/xamarin/xamarin-goes-dual-screen/
- https://blog.mzikmund.com/2020/01/installing-the-surface-duo-emulator-and-sdk/
- https://docs.microsoft.com/en-us/dual-screen/
- https://docs.microsoft.com/en-us/dual-screen/introduction
- https://blogs.windows.com/windowsdeveloper/2020/01/22/announcing-dual-screen-preview-sdks-and-microsoft-365-developer-day/
- https://github.com/microsoft/surface-duo-sdk-xamarin-samples
- https://www.youtube.com/watch?v=-Ey68OIKNWY