Qt vs xamarin

Xamarin

Eu

escreveu isto

que cobre esses dois. A essência disso é que ambas as estruturas têm objetivos completamente diferentes. O Xamarin é uma estrutura nativa pesada, o que significa que todo botão no Xamarin é mapeado para um botão nativo do SO com toda a bagagem que traz à frente da portabilidade.

QT é uma estrutura leve, o que significa que ele aperta um botão por si só e, portanto, é conceitualmente mais portátil.

Essas são trocas ideológicas, então você precisa decidir de que lado do debate você gostaria de estar. Além disso, C ++ e C # são bem diferentes um do outro.

Xamarin

Xamarin

tornou-se um dos principais fornecedores de soluções no mercado nativo de desenvolvimento de aplicativos para várias plataformas. A ferramenta permite que os desenvolvedores usem uma base de código C # para criar

Android

, iOS, Mac e Windows. Há acesso nativo à API nos sistemas operacionais suportados e também a capacidade de adicionar "componentes" a um aplicativo para a funcionalidade de plug-in, como leitura de código de barras, cobrança no aplicativo e vários controles personalizados.

Qt

A ferramenta de desenvolvimento multiplataforma mais antiga, o Qt teve seu lançamento inicial em 1990. Possivelmente, possui a maior lista de mídias suportadas, principalmente Android,

iOS

, BlackBerry e Windows, mas também atingindo o Mac OS, Linux, Sailfish, QNX e muito mais.

As versões mais recentes do Qt (5.6+) incluem uma grande quantidade de suporte a aplicativos móveis, adicionando funcionalidades para alto DPI, navegação e interface do usuário temática. Desde então, mais controles foram adicionados a esses estilos, que abrangem o Material Design (Android), Universal Design (Microsoft) e o estilo padrão do Qt.

Bem, parece que existem muitas diferenças. Eu nunca ouvi falar de QT até você perguntar. Portanto, isso pode não ser justo.

Existem várias diferenças principais entre Xamarin e QT, além de semelhanças. Eu fiz uma pesquisa um tempo atrás sobre Xamarin vs outros. E continuo acreditando que ir com o Xamarin foi a escolha certa.

Vamos comparar.

  1. Suporte e documentação: a documentação do Xamarin está melhorando desde que a Microsoft a adquiriu. O apoio da comunidade é enorme. A fonte está disponível no GitHub. O QT parece desconhecido, se você bater em uma parede, estará por sua conta. Talvez algum suporte muito limitado. A documentação C # está em todo lugar, QT, duvido. A documentação específica do Xamarin está melhorando bastante desde que a Microsoft a adquiriu. Xamarin vence aqui.
  2. Licenciamento, o Xamarin é gratuito no Visual Studio Community Edition. Você precisa de um mac para construir para iOS (se o QT for compilado naturalmente, também será necessário, é apenas o Contrato da Apple). O QT vem em 2 termos de licenciamento. Perpétuo e assinatura. Cada um deles requer renovação para obter a nova versão das ferramentas (que inclui correções de bugs que corrigem problemas com seu aplicativo). Camarin também ganha aqui! E se você é uma startup, inscreva-se no Bizspark e obtenha o VS enterprise gratuitamente.
  3. Se você conhece C #, esse seria outro motivo para usar o Xamarin.

No final, apenas você pode decidir qual deles atende às suas necessidades. A questão é muito ampla: o QT definitivamente terá suas vantagens sobre o Xamarin. Mas não consegui encontrá-los.

Se o tempo voltar, eu ainda escolheria o Xamarin, colocar meu destino de Startup nas mãos da Microsoft é melhor do que uma startup. Eu sei que a Microsoft e o Xamarin não vão a lugar algum tão cedo. O compromisso a longo prazo é importante, você viverá com essa escolha por um longo tempo. Escolheu sabiamente.

Espero que isto ajude,

Adel

Não há melhor…… e é uma questão pessoal (religiosa) na maioria dos casos…

Fui programador dominante em C ++ de 1994 a 2000 e fiz algumas bibliotecas de processamento de números para a teoria dos grafos, usadas em minha biblioteca para modelagem, simulação e análise de Petri Net. A configuração do modelo de algum sistema de manufatura modelado como Petri Net ou Automata na planície c ++ foi "fácil de executar" para a maioria dos usuários. Os usuários querem interface do usuário - interface do usuário agradável e com o C ++ naquele momento, isso era quase impossível. Eu tentei em 1998 (e implementei a interface do usuário) no WxWidgets, mas aprimoramentos e manutenção eram complicados. Nesse ponto, ficou claro que um processo de padronização muito longo causou algum dano a uma linguagem muito poderosa.

Então, eu [ainda] conheço algum C ++…

Minha vida me levou ao .net em 2001 e desde então sou predominantemente C # dev em viagens ocasionais ao mundo java e ao mundo C ++ para processamento de números. Eu leio java e object-c / swift diariamente, mas não escrevo código.

Hoje, C # (F #) são linguagens verdadeiramente xplat - horizontal e verticalmente.

Horizontalmente:

  • IoT - Windows 10 Core, núcleo mono e dotnet no RPi e outros
  • mobile - Windows Phone, Windows Mobile 10 (UWP), Xamarin.Android, Xamarin.iOS, Tizen
  • área de trabalho - Windows (WPF, Windows Forms), Linux (GTK #), Mac (Xamarin.mac)

Verticalmente:

  • IoT
  • Móvel
  • Área de Trabalho
  • Servidor - ASP.net

Assim, com o C #, posso compartilhar muito código horizontal e verticalmente e compartilhar significa menos recursos (tempo, mão de obra) e isso significa economia de custos e isso significa que é valorizado pelas empresas. Então você verá muito C # e java no corpo, mas não tanto Qt. Se o c ++ for usado para trituração de números, ele será agrupado com o C # PInvoke e o JNI do java.

Com o C #, é possível aproximar-se do desempenho do C ++ com otimizações avançadas, mas isso adiciona esforço à codificação normal.

Portanto, se você é C # dev, provavelmente escolherá o Xamarin e se for C ++ dev, a escolha será Qt.