CONSELHO SOBRE DESENVOLVIMENTO MOBILE

 Tópico anterior Próximo tópico Novo tópico

CONSELHO SOBRE DESENVOLVIMENTO MOBILE

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#491753 - 09/12/2019 10:54:09

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


Citação:
:
Olá, Guimoraes,
Fiquei surpreso com sua resposta.

Porque motivo, recomenda Fortemente o React Native , e fugir do Xamarim ?



Bom, a minha experiência com o Xamarin vai muito além de um simples "hello world". O maior problema do Xamarin pra mim, é a falta de um editor wysiwyg, é impossível construir uma aplicação sem ao menos ver como está ficando. Sei que existem algumas extensões como o projeto Gorilla, mas ainda deixa muito a desejar. O que eu não entendo, é como a Microsoft ainda não resolveu isto, pra mim, este é um projeto que tende ao fracasso (assim como o Windows Phone).
Eu uso e abuso de personalização de componentes, e pra mim, este é o melhor recurso do React Native, pois é muito fácil criar a sua própria interface, sem depender de componentes de terceiros.
Outro problema é a compilação dos projetos, demora demais para compilar uma aplicação. Se você muda uma cor do botão, é necessário compilar para ver o resultado, isto não é nada produtivo.
Nem todos os componentes se comportam da mesma forma nas duas principais plataformas (Android e IOS), quase sempre, temos que fazer "adaptações" para que o mesmo componente possa ter o mesmo resultado nas duas plataformas, isto quando funciona, pois quase sempre, temos problemas de visualização.
Além disso, sempre ao abrir um projeto, é necessário fechar o mesmo e abri-lo novamente, para que reconheça as dependências. Até hoje eu não consegui entender como a Microsoft não resolveu isto. Já cheguei a ter que fazer isto umas 10 vezes para conseguir compilar um projeto que estava funcionando em um dia, e no outro parou de funcionar, sem mexer uma linha de código.
Bom, até aqui eu só metralhei o Xamarin, vamos falar de alguns pontos positivos, mas são se anime muito.
Uma das grandes vantagens de utilizar o Xamarin para criar aplicações para IOS, é a possibilidade de debugar remotamente, mas como eu disse, não se anime, é quase impossível de utilizar o "visualizador" do IOS, do nada ele para de funcionar, os componentes não se comportam da forma que precisamos (principalmente se for de terceiros). Se você utilizar animações, esqueça, é impossível de ver eles rodando na prática.
A outra vantagem é poder programar em C#, para quem ainda está preso no paradigma da linguagem, este sem dúvidas é um fator determinante na escolha da plataforma.
Ah, é claro que usar MVVM ajuda muito, mas não faz nenhum milagre, infelizmente há coisas que são impossíveis de se fazer com MVVM. É claro que tudo depende da sua perspectiva de projeto, se você almeja apenas exibir uma lista com alguns recursos, formulários e coisas do gênero, ele vai servir muito bem, mas quando o assunto é personalização, esqueça.

Se a sua intenção é criar aplicações para Android apenas, utilize o Android Studio, é uma ótima saída.

Além disso, existem inúmeros frameworks que compilam aplicações hibridas, como o apache cordova. É possível criar aplicações com JavaScript + HTML + CSS, isto dá um poder de personalização para a aplicação, mas deixa o desempenho a desejar, pois estará rodando em uma WebView. É claro que isto depende e muito da aplicação, mas no geral, funciona muito bem.

Porque eu recomendo fortemente o uso do React Native?

Primeiro: É gratuito, independente do faturamento da empresa.
Segundo:  A comunidade é muito forte, existem inúmeros exemplos e pessoas dispostas a ajudar. Isto acontece principalmente pela sua popularidade, se existem mais pessoas usando, por consequência você terá um produto melhor e com mais conteúdo para auxílio.
Terceiro: Você pode utilizar o editor que desejar, seja o Visual Studio Code, Atom, Notepad ++ ou até o bloco de notas.
Quarto: É multiplataforma, de verdade.
Quinto: O hot reloading funciona de verdade.
Sexto: É compilado em código nativo, não é uma aplicação hibrida.

Na verdade eu posso listar inúmeros motivos aqui, mas não sei se vale a pena.
O mais importante de tudo, é que existem grandes aplicações construídas com esta plataforma, vou listar algumas aqui.

1. Facebook
2. Facebook Ads Manager
3. Instagram
4. Skype (sim, ele mesmo, da Microsoft)
5. Uber eats
6. Wix
7. Walmart
8. Airbnb
9. Tesla
10. SoundCloud Pulse
11. Discord
12. Bloomberg

Estas são algumas delas, com certeza você usa ou já utilizou algumas dessas aplicações.

Bom, agora pesquise sobre as aplicações criadas com Xamarin...
















#491756 - 09/12/2019 15:21:34

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe

Última edição em 09/12/2019 15:21:53 por CLEVERTON

"Outro problema é a compilação dos projetos, demora demais para compilar uma aplicação."
GenyMotion resolve.

"O maior problema do Xamarin pra mim, é a falta de um editor wysiwyg"

https://docs.microsoft.com/pt-br/xamarin/xamarin-forms/xaml/xaml-previewer/?pivots=windows

"Se você muda uma cor do botão, é necessário compilar para ver o resultado, isto não é nada produtivo."
Já existe o HotReload no VS2019, acabou isso.

" infelizmente há coisas que são impossíveis de se fazer com MVVM"
Joga uns exemplos ai pra eu entender sua ótica.

"Nem todos os componentes se comportam da mesma forma nas duas principais plataformas (Android e IOS)"
Mas isso seria uma questão do ambiente operacional; talvez seja um ponto negativo, (depende da aplicação)

"A outra vantagem é poder programar em C#, para quem ainda está preso no paradigma da linguagem, este sem dúvidas é um fator determinante na escolha da plataforma."
Eu NÃO posso falar pela realidade dos outros, mas quem tem trocentos clientes no pé dia e noite não é tão simples arriscar uma mudança no formato de trabalho da equipe. Pra que trocar o idioma se a equipe toda está se comunicando bem ?  




#491758 - 09/12/2019 16:56:29

GUIMORAES
ITAPETININGA
Cadast. em:Agosto/2009


GenyMotion resolve.
Não vejo muita diferença entre o GenyMotion e um Emulador tradicional do Android, o problema não é a instalação e a utilização da aplicação, mas sim o tempo para a compilação (Visual Studio).
A única diferença que vejo aí é o desempenho para a utilização, só isto.

"O maior problema do Xamarin pra mim, é a falta de um editor wysiwyg"
https://docs.microsoft.com/pt-br/xamarin/xamarin-forms/xaml/xaml-previewer/?pivots=windows
Até que em fim, achei que isto nunca fosse acontecer. Mas acabei de abrir um projeto, e descobri que ele só tem compatibilidade com o xamarin.forms 3.6 ou superior, ou seja, não resolveu muito.

"Se você muda uma cor do botão, é necessário compilar para ver o resultado, isto não é nada produtivo."
Já existe o HotReload no VS2019, acabou isso.

O conceito do HotReload do VS é muito diferente do React Native, assim como do Android Studio.
Quase sempre que necessitei alterar algo no código, foi necessário recompilar a aplicação, isto quando o Visual Studio permite a edição.
No React Native, assim como no Android Studio, você tem a liberdade de fazer alterações em qualquer parte do projeto, seja na view ou no código.

" infelizmente há coisas que são impossíveis de se fazer com MVVM"
Joga uns exemplos ai pra eu entender sua ótica.

Fragmentos aninhados.
Estados na ViewModel, não tem como ter um controle sobre o fluxo e o tempo das atualizações.
Esses são alguns dos problemas.

"Nem todos os componentes se comportam da mesma forma nas duas principais plataformas (Android e IOS)"
Mas isso seria uma questão do ambiente operacional; talvez seja um ponto negativo, (depende da aplicação)

Veja bem, se a plataforma não disponibiliza um ambiente confiável para o desenvolvimento, acho pouco provável que algo dê realmente certo.

"A outra vantagem é poder programar em C#, para quem ainda está preso no paradigma da linguagem, este sem dúvidas é um fator determinante na escolha da plataforma."
Eu NÃO posso falar pela realidade dos outros, mas quem tem trocentos clientes no pé dia e noite não é tão simples arriscar uma mudança no formato de trabalho da equipe. Pra que trocar o idioma se a equipe toda está se comunicando bem ?  

É com esta mesma mentalidade que a maioria aqui do fórum ainda permanece no VB6. Sei como é lidar com inúmeros clientes no pé, e ainda ter tempo para aprender outra linguagem, mas se você não fizer isto, vai ficar preso o resto da vida em uma única linguagem, correndo o risco de em um futuro próximo, ficar sem nenhum cliente.

Eu já utilizei o Xamarin, e a minha experiência foi de longe terrível, principalmente pelo fato de ter que compilar aplicações para as duas plataformas (Android e IOS). Tive muitos problemas, muitos mesmo, acho que não vale o esforço.
Pelo que pude perceber, houve uma evolução na plataforma, mas eu ainda continuo com a mesma opinião sobre ela.

Já estou no desenvolvimento mobile desde 2013, muita coisa evoluiu, participei do projeto do xamarin desde o início (quando ainda não era integrado ao Visual Studio), mas ainda tem muito a evoluir para chegar ao mesmo nível de outras plataformas (como Android Studio e XCode).




 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MARCOS em 10/12/2019 18:18:10