Carreira Desenvolvedor Mobile Multiplataforma Xamarin ou Cordova, qual a diferença entre elas?
Carreira Desenvolvedor Mobile Multiplataforma Xamarin ou Cordova, qual a diferença entre elas?
Opa Daniel, tudo bem? Até onde sei, no Cordova, você vai usar tecnologias web, ou seja, HTML, CSS e JS. No Xamarin, não é bem assim, você em algumas partes pode fazer isso, mas na maior parte do tempo, você vai estar usando C#.
No Cordova, você vai estar fazendo uma app que roda dentro do Web View do dispositivo e no Xamarin, você vai estar desenvolvendo para o ambiente nativo do dispositivo.
Acho que as maiores diferenças são essas.
Poderia me explicar mais os termos:
"Web View"
E quando você diz que o Xamarin estará desenvolvendo para o ambiente nativo do dispositivo séria algo que foge um pouco do tipo multiplataforma? Algo mais especifico de plataforma para plataforma?
Desculpe mas sou leigo na área.
Opa Daniel, tranquilo, erro meu achar de que esteja ciente de tudo que eu disse. Mas vamos lá.
O web view é em poucas palavras, um navegador. Tipo o chrome, mas sem barra de endereços, sem botão de ir e voltar, sem botão de fechar, sem menu de configurações, etc. o navegador sem essa casca, ele apenas interpreta o HTML, CSS e JS e mostra.
Então quando você escreve seu código, ele lê e mostra. O que dá a parecer que você tem um aplicativo de verdade mesmo, como os que são escritos em java e compilados para o android.
Quando a gente fala nativo, quer dizer que o código da sua aplicação é lido diretamente pelo sistema operacional do aparelho, sem um intermediário.
Qual a diferença entre os dois: um tem o web view como intermediário para interpretar seu código e o outro não. Existem também limitações, nativamente temos um poder maior em relação a acesso de recursos do aparelho, essa diferença já foi gritante tempos atrás, mas hoje em dia, ela é bem mais sutil.
usando cordova, você sempre dependerá das capacidades do web view, usando o nativo, dependerá das capacidades do S.O (android ou ios).
Em relação a desenvolver para nativo usando Xamarin não foge da questão de multiplataforma não. Aqui entra um termo novo: transpilação.
Na compilação, você tem a transformação de um código de alto nível (entendível por nós), para um código de baixo nível (entendido pela máquina). Na transpilação, temos algo parecido, porém é de uma linguagem para outra linguagem na maioria das vezes. Tipo, o transpilador é capaz de transformar código PHP em Java. O inverso também é verdade.
Então o que o Xamarin faz? Ele entende seu código em C# e faz a transpilação dele do que seria equivalente ao escrito em Java para o Android. O mesmo para o Swift do IOS. Então você usa uma linguagem comum que vai ser "transformada" em outras duas. A capacidade de atingir vários SOs dessa forma faz o Xamarin ser multiplataforma.
Claro, estou sendo bem raso em alguns pontos pra facilitar o entendimento e também por que não tenho conhecimentos profundos sobre esse assunto, mas a ideia é essa.
Resumindo, os dois são multiplataforma, porém a execução dos apps nos dois acontece de forma diferente. No cordova você tem o web view como intermediário entre sua app e o SO e no Xamarin você não tem. Ele roda diretamente em cima do SO.
Deu pra esclarecer melhor?
Obrigadão! Falou tudo que queria saber! Excelente explicação! :)