XAMARIN: O AMBIENTE DE DESENVOLVIMENTO EM WINDOWS & MAC
Este artigo tem como objetivo mostrar como criar o ambiente de desenvolvimento cross-platform, em Windows & Mac, usando Xamarin.
Introdução
O ambiente de desenvolvimento de aplicações móveis depende da tecnologia em causa e os sistemas operativos em que estão disponíveis. Desta forma, os programadores de Objective-C terão de usar um Mac para fazer o desenvolvimento das suas aplicações, os programadores de Windows Phone e Windows Store Apps irão usar um Windows e os programadores de Android poderão fazê-lo tanto num Mac como num Windows.
Usando a Xamarin Platform este cenário muda um pouco de figura, isto porque apesar de ser obrigatório ter um Mac para o desenvolvimento de iOS, é possível desenvolver aplicações iOS num Windows. De forma a clarificar como criar o ambiente para desenvolver e testar aplicações para Android, iOS e Windows ao mesmo tempo, irei apresentar os vários cenários possíveis.
Descrição
O ambiente de desenvolvimento disponível para um programador cross-platform é o maior fator de produtividade, influencia se o programador irá tirar partido desse mesmo desenvolvimento. Isto porque, se estamos a desenvolver para as várias plataformas, com o objetivo de partilhar o máximo código possível, vai haver momentos em que é necessário testar o comportamento das aplicações nas várias plataforma ao mesmo tempo.
Ambiente Windows
Consideremos um programador que tem disponível um Windows, neste cenário o programador poderá instalar o Xamarin Platform para Windows, que disponibiliza:
Xamarim Studio
Figura 1: Xamarin Studio
Ao abrir no Xamarin Studio uma solução que contenha o projeto para as várias plataformas iremos obter algo do género:
ENEI.SessionsApp Solution no Xamarin Studio para Windows
Figura 2: ENEI.SessionsApp solution no Xamarin Studio para Windows
Que nos permite constatar que no Xamarin Studio não existe suporte para aplicações iOS nem para Windows.
O desenvolvimento de aplicações Windows é suportado pelas ferramentas e SDKs da Microsoft, sendo necessário instalar:
Visual Studio 2013 ou Visual Studio 2015
Windows Phone 8.1 SDK and Windows SDK for Windows 8.1
O licenciamento do Xamarin Platform diz respeito à Xamarin, sendo que o licenciamento do Visual Studio já diz respeito à Microsoft e também deve ser tido em conta consoante estamos perante projetos open source/ensino ou aplicações comerciais.
Abrindo a mesma solução no Visual Studio iremos ter neste momento:
ENEI.SessionsApp solution no Visual Studio
Figura 3: ENEI.SessionsApp solution no Visual Studio
O que nos permite concluir que apenas podemos desenvolver aplicações para Windows, uma vez que os projetos para Android e iOS não são suportado. Desta forma, com base na figura 2 e figura 3 podemos constatar, que com o plano Free e Indie, temos que andar a saltar entre IDEs para fazermos o desenvolvimento de aplicações para Windows e Android.
Com o objetivo de eliminar o problema apresentado acima, a Xamarin criou uma solução que está disponível para estudantes, programadores Open Source e utilizadores do plano Business:
Xamarin Plugin para Visual Studio – plugin para dar suporte a projetos da Xamarin e permitir ligar ao Mac Build Host, e fazer deploy para simuladores e dispositivos
Xamarin iOS – iOS SDK fornecido pela Xamarin
Ao abrirmos a solução dos casos anteriores, iremos então obter:
Suporte para Xamarin iOS e Android no Visual Studio
Figura 4: Suporte para Xamarin iOS e Android no Visual Studio
E desta forma, conseguimos ter compatibilidade das várias plataformas no mesmo IDE, o que sem dúvidas aumenta a produtividade do programador e a sua visão sobre o desenvolvimento cross-platform.
Como mencionamos anteriormente, é necessário ter um Mac para fazer o build e deploy de aplicações de iOS, que é designado como Mac Build Host.
Xamarin: Sem ligação ao Host
Figura 5: Sem ligação ao Host
Ao fazer Find Mac Build Host é necessário ter a aplicação do Build Host no Mac a correr:
Xamarin: Aplicação Mac Build Host
Figura 6: Aplicação Build Host
E depois da ligação feita, usando o código fornecido, iremos ter:
Xamarin: Build Host paired
Figura 7: Build Host paired
Xamarin: Ligado a um host
Figura 8: Ligado a um host
Neste caso, poderemos utilizar por exemplo um Mac Mini, para que o custo com o um Mac seja o mais baixo possível e depois só é preciso fazer um acesso remoto para usar o simulador de iOS e fazer as ligações com o Build Host. No caso de em que o programador usa dispositivo é preciso que este esteja conectado ao Mac para que seja possível fazer o deploy da aplicação.
Xamarin: ligação Mac/iOS
Figura 9: Host
Ambiente Mac
Consideremos um programador que tem disponível um Mac, neste cenário o programador poderá instalar o Xamarin Platform para Mac, que disponibiliza:
Xamarin Studio – ferramenta para o desenvolvimento (IDE) da Xamarin
Xamarin Studio para Mac
Figura 10: Xamarin Studio para Mac
Xamarin iOS – iOS SDK fornecido pela Xamarin
Xamarin Android – Android SDK fornecido pela Xamarin
E ao abrir a solução de exemplo, iremos obter:
ENEI.SessionsApp no Xamarin Studio para Mac
Figura 11: ENEI.SessionsApp no Xamarin Studio
Com isto é possível constatar que num Mac é possível fazer o desenvolvimentos de aplicações de Android e iOS em simultâneo, não havendo no entanto suporte para aplicações Windows que requerem um dispositivo Windows.
Ambiente Misto
Nos casos anteriores, consigo ver o ambiente para desenvolver aplicações cross-platform, em Windows e Mac, usando Xamarin. Neste cenário, o objetivo consiste em mostrar como ter um ambiente misto com um nível de produtividade maior.
Suponhamos que temos um Mac com 16GB de RAM e 512GB de disco, suponhamos também que temos VMWare ou Parallels, desta forma é possível criar uma máquina virtual com o Windows com por exemplo 8GB de Ram e 128GB de disco, permitindo desta forma ter uma performance e uso equivalente a um PC com Windows.
Windows a correr no Parallels (Mac)
Figura 12: Windows a correr no Parallels (Mac)
O que ganhamos neste caso, é que temos um único PC com 2 sistemas operativos, e com isto temos o suporte para todas as plataformas com um conforto de trabalho elevado. No entanto, é preciso ter noção que não é muito recomendado ou até mesmo possível ter simuladores dentro de máquinas virtuais. Refiro-me ao simulador de Windows Phone e de Android, desta forma para resolver esta questão a solução passa por usar um dispositivo Windows Phone conectado à máquina virtual Windows, para que o Visual Studio reconheça o dispositivo e com a aplicação Project My Screen App é possível partilhar o ecrã do dispositivo Windows Phone. Ao nível do Android, a melhor solução passa por usar o Xamarin Android Player, a correr no Mac, que permite o Visual Studio fazer o deploy para este, usando a aplicação ADB fornecida pela Google.
Xamarin: As várias plataformas num ambiente misto
Figura 13: As várias plataformas num ambiente misto
Para mais informações consulta as seguintes referências da Xamarin:
Simuladores
No desenvolvimento de aplicações móveis é muito comum os programadores usarem simuladores para realizar testes à aplicação, no entanto o feedback de um dispositivo real é muito diferente de um simulador e os programadores devem realizar testes mínimos em ambos os casos.
Para desenvolvimento Windows e iOS é possível utilizar os simuladores fornecidos pela Microsoft e Apple (respetivamente), no entanto, no caso de Android os simuladores fornecidos pelo Android SDK (da Google) são muito lentos e pouco friendly, por esta razão muitos programadores têm escolhido os seguintes simuladores:
Que disponibilizam simuladores para vários dispositivos e resoluções.
Conclusão
Em conclusão, podemos concluir que o desenvolvimento cross-platform tem vantagens quando o seu ambiente de desenvolvimento está criado de forma a maximizar a rentabilidade do programador e minimizando o tempo necessário para desenvolve-lo e testa-lo, e consequente irá aumentar a capacidade para aumentar o código partilhado entre as várias plataformas.