Quando usar o Xamarin.Forms vs Xamarin Native? [fechadas]

159

Preciso tomar uma decisão entre usar o Xamarin.Forms vs Xamarin native para desenvolver um aplicativo.

Eu quero ir com o Xamarin.Forms, pois o código da UI também será compartilhado.

Quais são os pontos positivos e negativos técnicos do uso do Xamarin.Forms sobre o Xamarin Native?

Ajay Kumar
fonte
1
Dê uma olhada no The Good and The Bad do Xamarin Mobile Development para uma excelente discussão a partir de janeiro de 2017.
Oliver
1
Bottom line ... Basta ir para Native! Estou dizendo isso com base em minha própria experiência. Reescrevi o aplicativo de formulários para o Native.
Tejasvi Hegde 15/09/18
2
Os comentários de 2015 não refletem mais a realidade do Xamarin Forms. Ele percorreu um longo caminho e pareceu explodir após o amadurecimento do .NET Core \ Standard.
Sean Anderson
Esta questão precisa ser reaberta. Ele agora tem 4 anos e houve enormes desenvolvimentos na estrutura do Xamarin.Forms para permitir o desenvolvimento de aplicativos corporativos.
James Mallon

Respostas:

144

Além dos pontos mostrados no site da Xamarin, você também deve considerar:

O histórico da sua equipe

Alguém na sua equipe tem uma experiência anterior de codificação nativa para Android ou iOS (usando Java ou Obj-C / Swift)? Essa experiência é reutilizada no Xamarin nativo, mas eles precisam aprender outra plataforma para codificar no Forms.

O mesmo acontece se eles não sabem nada sobre iOS / Android, mas conhecem algum XAML. Claro que o Xamarin.Forms é diferente do WPF / Silverlight, mas o conhecimento do XAML certamente me ajudou a usar o Forms.

atuação

O Xamarin Forms ainda tem alguns problemas, como o tempo de inicialização. Você deve considerar se isso será ou não um problema para o usuário final. Eu não me incomodaria em esperar um tempo para que um aplicativo do painel que eu usasse de vez em quando fosse aberto, mas ficaria com raiva se o mesmo acontecesse com um aplicativo de mensagens.

Tempo até a entrega

Como o compartilhamento de código é maior ao usar o Forms, você pode esperar um tempo de entrega mais rápido.

Complexidade do seu aplicativo

Considerando o ponto anterior, usando o Forms, você pode encontrar algum bug de parada de programa (afinal de contas, é uma tecnologia muito nova) que anulará os ganhos de tempo. Considere a complexidade do seu aplicativo antes de escolher.

William Barbosa
fonte
2
Vou acrescentar a isto, se você está esperando para ter boa aparência aplicativo que você vai acabar tendo um monte de interfaces personalizadas com código Xamarin nativo para cada plataforma
Roman Nazarevych
2
esta resposta e comentário acima são muito antigos. Hoje, o desempenho não é um grande problema se você ativar o AOT. sobre o aplicativo de boa aparência no comentário também não é verdade. Os formulários xamarin foram aprimorados e você pode obter aplicativos com boa aparência facilmente.
batmaci
O Xamarin Forms não melhorou muito em termos de obter uma interface de usuário bonita com facilidade. O Xamarin.Shell fará grandes melhorias nesse sentido, mas, a partir de agora, o Xamarin ainda é difícil de obter algo atraente remotamente, sem a necessidade de escrever componentes personalizados para cada plataforma.
Alexander Alexander
176

Xamarin.Forms

Prós

  • Crie uma interface do usuário para todas as plataformas
  • Use componentes básicos disponíveis em todas as plataformas (como botões, campos de texto, giradores etc.)
  • Não é necessário aprender todas as estruturas de interface do usuário nativas
  • Processo de desenvolvimento rápido entre plataformas
  • Os renderizadores nativos personalizados permitem ajustar a aparência e a sensação dos controles

Contras

  • Ainda é uma nova estrutura e ainda contém bugs
  • Especialmente o Windows RT ainda não é estável
  • Às vezes, é mais lento do que acessar diretamente os controles nativos
  • Renderizadores nativos personalizados têm limites e estão mal documentados

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Prós

  • Crie uma interface do usuário por plataforma
  • Capacidade fácil de ajustar os recursos e componentes específicos da interface do usuário da plataforma
  • Tire o máximo proveito da sua interface do usuário

Contras

  • O processo de desenvolvimento de plataforma cruzada é muito mais lento
  • Você precisa aprender todas as estruturas de interface do usuário nativas
  • Você pode resultar em código duplicado (como descreve quase a mesma interface do usuário de três maneiras específicas da plataforma)

Além disso, o Xamarin diz em https://xamarin.com/forms :

Qual abordagem do Xamarin é melhor para o seu aplicativo?

O Xamarin.Forms é melhor para:

  • Aplicativos de entrada de dados
  • Protótipos e provas de conceito
  • Aplicativos que exigem pouca funcionalidade específica da plataforma
  • Aplicativos em que o compartilhamento de código é mais importante que a interface do usuário personalizada

Xamarin.iOS e Xamarin.Android são os melhores para:

  • Aplicativos que exigem interações especializadas
  • Aplicativos com design altamente sofisticado
  • Aplicativos que usam muitas APIs específicas da plataforma
  • Aplicativos em que a interface do usuário personalizada é mais importante que o compartilhamento de código
Wosi
fonte
Em relação a "aplicativos que exigem pouca funcionalidade específica da plataforma", existem exemplos para entender quais tipos de funcionalidades estamos falando?
NS.X.
A pouca funcionalidade da plataforma significa que você está vinculando dados e outras regras de negócios principalmente como o aplicativo. Não é muito desenho personalizado ou está tentando tornar tudo perfeito em pixels. Se você estiver de acordo com um layout comum que seja responsivo, o Xamarin.Forms é um bom ajuste.
Jason Curto
Melhor resposta na minha opinião. Isso esclareceu para mim: "Xamarin.Forms: Crie uma interface do usuário para todas as plataformas" e "Xamarin.iOS, Xamarin.Android: Crie uma interface do usuário por plataforma". Obrigado!
Tadej
1
@Dibzmania Eu nunca disse que é adequado apenas para protótipos e aplicativos básicos. Se você deseja ter um aplicativo de plataforma cruzada com uma interface quase idêntica em cada plataforma, o Xamarin.Forms é ótimo. Se você deseja ter uma interface do usuário personalizada por plataforma, provavelmente não se beneficiará do Xamarin.Forms e deverá usar as bibliotecas de interface do usuário nativas.
Wosi 21/08/19
1
Acho que este artigo por Nathan Williams é útil: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN
44

No site da Xamarin

O Xamarin.Forms é melhor para:

  • Aplicativos de entrada de dados
  • Protótipos e provas de conceito
  • Aplicativos que exigem pouca funcionalidade específica da plataforma
  • Aplicativos em que o compartilhamento de código é mais importante que a interface do usuário personalizada

Xamarin.iOS e Xamarin.Android são os melhores para:

  • Aplicativos que exigem interações especializadas

  • Aplicativos com design altamente sofisticado

  • Aplicativos que usam muitas APIs específicas da plataforma

  • Aplicativos em que a interface do usuário personalizada é mais importante que o compartilhamento de código

Guilherme Torres Castro
fonte
1
Esta resposta é obsoleta / antiga. Use formulários com prisma. Experiência agradável. Sou um desenvolvedor único criando um aplicativo enorme e sou muito produtivo e meu aplicativo funciona em tudo. Se você deseja aplicativos de aparência impressionante, existem várias visualizações de terceiros como o Grial UI Kit (confira o preview ao vivo gratuito de XAML). Lembre-se, o Xamarin Forms ainda usa os controles nativos por padrão.
Sean Anderson