Protótipo - Xamarin vs Android Studio
5.5.16 - 7:03:00 PMApesar de termos idealizado que a aplicação android seria desenvolvida utilizando o framework Xamarin, não havíamos feito essa escolha baseada em testes práticos, apenas no "vamos fazer, porque sim".
Portanto, a motivação por trás desses dois protótipos era:
- Testar ambas as ferramentas, para saber o que elas possibilitariam.
- Verificar o nível da facilidade de desenvolvimento, no que diz respeito a linguagem, em cada uma, para saber em qual poderíamos desenvolver mais rápido.
- Testar o que ambas poderiam oferecer no que diz respeito a parte gráfica, isto é, se é fácil implementar os elementos visuais necessários a aplicação.
- Verificar qual ferramenta é mais adequada para desenvolver nos equipamentos que nós temos, isso é, se um programa é incompatível ou não funciona corretamente.
Xamarin
Para realizar o teste do Xamarin, foi necessário instalar o Visual Studio 2015 e atualizá-lo para a versão mais recente. Tive que me cadastras no site do Xamarin para efetuar o download do instalador integrado com o Visual Studio, ao todo foram cerca de 26 gb apenas do Xamarin. O SDK também foi instalado e atualizado para a ultima versão.
Android SDK Tools: 25.1.3
Xamarin.android: 6.0.3
JDK: 1.8.0_92
Para o Emulador, eu utilizei o Genymotion, onde ele apresenta várias opções de dispositivos. Como o protótipo foi para testar as ferramentas, selecionei, sem maiores motivos, o Moto X API 19 720x1280.
Parte 1: Tela Simples
- Iniciei com um tutorial para o primeiro aplicativo, disponibilizado no site do Xamarin (aqui). O tutorial aborda a criação de um projeto do zero, que possui botões, caixas de texto, eventos, permissões do android e alguns outros aspectos técnicos.
- Logo no início é recomendado que instalemos um emulador para o android, entretanto o Yuri me recomendou o GenyMotion, pois um colega de trabalho já havia recomendado. O emulador foi simples de se instalar, foi só executar o instalador e pronto. Voltei para o tutorial.
- A aplicação consiste em 'desvendar' a parte alfabética de um número, liberando então o botão de realizar a chamada.
- Ao final do tutorial eu já havia criado uma aplicação simples, com dois botões e um local para entrada de texto.
- A partir do tutorial eu aprendi a:
- Iniciar uma aplicação com recursos básicos
- Trocar ícone do aplicativo,
- Modificar nome da página onde o usuário se encontra
- Inserir caixas de texto, botões e a possibilidade de alocar outros elementos visuais
- Lidar com as permissões do android e seu 'manifest'
- Modificar os elementos através de suas propriedades e ID no XML e via código
Parte 2: Duas telas
- O tutorial prosseguia para a criação de um novo botão e uma nova tela. Onde esse botão seria ativado após a primeira chamada realizada e nos levaria para o histórico de chamadas.
- Mas antes de começar o tutorial, eu comecei a querer brincar com os elementos da aplicação. Tentei modificá-los, mas percebi que eles não se alteravam. Tirando uma dúvida com o Yuri, bastou modificar no XML do layout a tag geral para 'RelativeLayout', onde antes era 'LinearLayout'. Brinquei então com os tamanhos dos botões e suas posições, simplesmente arrastando eles na tela ou modificando o valor nas suas variáveis.
- Voltando ao tutorial, continuei no mesmo sem maiores dificuldades, criando uma tela 'Activity' nova e fazendo a correlação com o botão que faria essa mudança. Entretanto, no último passo, as coisas não encaixavam e eu não conseguia entender o porque. Tive então que ir buscar o código no github e verificar o que estava errado. Por algum motivo, o que estava no tutorial não correspondia ao que deveria compilar.
- Conclui então o tutorial e o principal que aprendi foi:
- Lidar com mais de uma 'Activity'
- Definir qual 'Activity' seria a inicial, através da definição "MainLauncher = true". O interessante aqui foi que coloquei para iniciar pelo histórico de ligações e o aplicativo parou de responder.
- Associar um novo layout à 'Activity'
Parte 3: Modificando algumas coisas
- Com os tutoriais finalizados, criei uma Activity nova.
- Criei um novo layout e o associei a nova Activity.
- Modifiquei o layout e inseri uma imagem na tela. Utilizei esse link como base.
- Adicionei um botão e fiz com que ao ser clicado ele fosse para o aplicativo em si.
Conclusão: Achei o Xamarin bastante fácil de se trabalhar, apesar de nunca ter desenvolvido nada em C# para android, achei a interface intuitiva e não apresentei maiores dúvidas sobre onde encontrar os componentes. Ao se criar o projeto, logo de cara podemos visualizar a parte do design com os diversos itens que podemos acrescentar na tela a esquerda.
Facilmente se pode alterar o tipo de dispositivo que queremos trabalhar no layout.
Um ponto forte é que a sessão de propriedades do projeto (onde há o 'manifest') é bem organizada e fácil de se mexer, pois a interface é simples e de fácil identificação e manipulação dos itens. Quando colocamos um item na parte do design, facilmente podemos acessar suas propriedades sem termos que ir ao xml.
Um ponto negativo é que a parte para o design das telas/activity peca quanto à organização dos elementos na tela quando falamos sobre o GRID, achei um pouco limitado o quão bem podemos situar um elemento apenas arrastando-o. Tive que recorrer muitas vezes ao XML e modificar lá os números de margem e espaçamentos gerais.
Um grande ponto positivo é que eu achei o desenvolvimento mais 'leve', o computador não sofreu pra compilar e nem pra emular a aplicação no genymotion. Bastando apenas que eu abrisse o emulador no genymotion e então executasse a aplicação, que ela iria direto para lá.
Android Studio
Android Studio versão: 2.1
Android SDK Tools: 25.1.3
Para iniciar o protótipo tive que atualizar o android studio e todos os seus componentes, durou cerca de 3 horas.
- Iniciei o tutorial disponibilizado no site deles.
- O tutorial começava a criação de um projeto do zero. Desde selecionando a versão até o nome e local dos arquivos.
- Essa parte foi bem introdutória, mais teórica mesmo.
- Já na segunda, tratava sobre a emulação da aplicação. Tive um problema logo aqui pois dizia que uma configuração estava desabilitada na bios do meu sistema (vt-x is disabled in the bios), depois de uns 40 minutos consegui resolver.
- Achando que já ia iniciar, tive problemas com o tipo de emulador, pois o 'AS' dizia que o simulador que eu havia instalado não estava instalado (hmmmmmmmmmmmmm). Tive então que instalar outro emulador: Nexus S API 19, 480 x 800 hdpi, Android 4.4. Um problema que identifiquei aqui é que haviam menos opções quando comparado ao Genymotion.
- Mudei então o layout do projeto para o do Nexus S.
- Consegui então emular a aplicação, super básica, logo de cara o computador quase vira um helicóptero processando as coisas. Quando olho, está consumindo quase a memória toda e usando 100% de CPU.
- Iniciei a terceira parte do tutorial. Que é referente a adicionar elementos no layout da aplicação.
- Adicionei um campo de texto e um botão, renomiei o nome que aparece neles no arquivo de strings.
- Simulei a aplicação. É possivel inserir texto no espaço que foi criado, mas apenas usando o mouse para clicar no teclado do simulador.
- Iniciei o tutorial que trata do evento de click do botão.
- Criando a segunda 'Activity' tive muitos problemas, a interface é confusa e no tutorial mandam eu editar um arquivo que simplesmente não existe.
- Retrocedi até o começo do tutorial do evento do botão e recomecei, mas dessa vez ao criar a Activity, selecionei a opção 'Basic' ao invés da 'Blank'/'Empty'.
- Consegui finalizar o tutorial, porém a parte de criar uma nova activity foi muito confusa. Integrar a informação de uma página para outra, apesar de parecer simples, na execução não foi tanto.
- O ícone de mensagem que havia na tela estava me dando nos nervos, encontrei esse link que ensinava a tirá-lo.
- Resolvi mudar então o ícone do App. Cliquei com o botão direito sobre o projeto > new > image asset > nomei e selecionei o arquivo que eu queria.
- Fui então no AndroidManifest.xml, e alterei o 'android:icon' para a imagem que eu queria.
- Criei uma 'tela inicial', onde há um texto, imagem e um botão que deve ser clicado para ir para as telas que fiz no tutorial.
- Criei uma activity chamada 'intro', no seu xml de content adicionei o texto e sua posição, tudo isso na parte apenas do design (arrastando os componentes).
- Adicionei uma nova imagem como asset, adicionei um ImageView e ajeitei o src para a nova imagem nos assets.
- Adicionei o botão e mudei seu texto.
- Mudei no manifest para a pagina inicial ser a intro, link de base.
- Fiz então o botão passar para a próxima pagina, link base.
Conclusão: Achei o android studio muito ruim para se trabalhar. Na maior parte do tempo fiquei confuso (mesmo seguindo o tutorial), não tinha certeza do que estava fazendo, achei a disposição da informação na tela muito ruim. O fato de ele quase não rodar no PC aqui ajudou muito nessa opinião negativa.
Um ponto positivo é que para dispor os elementos na tela, a ferramenta de GRID dele ajudou bastante, eu tinha certeza de fato do espaçamento e de onde o elemento ia ficar.
Entretanto, além do emulador ser muito ruim, não pude acessar as variáveis dos objetos de maneira mais rápida, sempre tinha que recorrer ao xml e não senti muita segurança modificando as coisas lá.
Mas um ponto positivo é que ao mexer no XML eu tinha a possibilidade de pre-visualizar a mudança, algo que não pude no xamarin, então não precisei ficar indo e voltando no design e código.
No geral, achei o android studio muito travadão, ele não era intuitivo em nada. Até pra colocar uma imagem, que no xamarin bastava eu arrastar, eu tive que dar vários clicks até acertar como importá-la no projeto e onde/como utilizá-la.

0 comentários