paint-brush
Qt para desenvolvimento embarcado: muitos prós e poucos contraspor@andreysolovev
10,424 leituras
10,424 leituras

Qt para desenvolvimento embarcado: muitos prós e poucos contras

por Andrey Solovev2022/12/12
Read on Terminal Reader

Muito longo; Para ler

O módulo Qt Connectivity acelerou o desenvolvimento da parte BLE com soluções Bluetooth prontas. Usando o módulo Qt Multimedia, nossos especialistas criaram um reprodutor de vídeo com diferentes funções. A Integra Sources está satisfeita com a experiência de uso do framework Qt e C/C++. Isso nos ajuda a economizar tempo e os clientes economizam dinheiro obtendo aplicativos multiplataforma eficientes.
featured image - Qt para desenvolvimento embarcado: muitos prós e poucos contras
Andrey Solovev HackerNoon profile picture

Os kits de ferramentas de plataforma cruzada permitem que os desenvolvedores criem aplicativos para várias plataformas. Os programadores usam estruturas de software para design rápido de aplicativos.

Os kits de ferramentas podem ter compiladores, bibliotecas de código e APIs para criar software.

Neste artigo, examinamos soluções para sistemas embarcados rodando em Linux/Unix, Windows e Android.

A Estrutura Qt

imagem do logotipo do Qt

A estrutura Qt é ótima para criar aplicativos de plataforma cruzada para sistemas embarcados. Os aplicativos incorporados são geralmente escritos em C/C++.

Qt suporta várias plataformas:

  • móvel (Android, iOS);
  • área de trabalho (Windows, Linux, macOS);
  • embutido (Linux embutido, Android embutido, Windows embutido, QNX, etc.).

C++ é uma linguagem de programação orientada a objetos (OOP). OOP torna o processo de engenharia de aplicação mais rápido, fácil e seguro.

C++ suporta o princípio WOCA (Write Once, Compile Anywhere).

Licença

O Qt pode ser usado sob licenças comerciais e de código aberto . Você pode usar o Qt sob uma licença de código aberto para projetos com uma distribuição de código aberto ou sem ‌uma ‌distribuição externa.

Instrumentos Qt

Módulos úteis tornam este kit de ferramentas um dos mais convenientes para engenharia de aplicativos de plataforma cruzada.

O Qt Creator é um IDE que facilita o design ou a modificação de aplicativos GUI. O Qt Creator é aplicado para criar software em C++, QML e JavaScript.

A captura de tela do Qt Creator

O Qt Creator possui um construtor GUI muito eficiente chamado Qt Designer . O Qt Designer é caracterizado pelo suporte para a edição visual de sinais e slots. Também pode ser usado como uma ferramenta independente.

O Qt Design Studio é uma versão simplificada do Qt Creator. Ele oferece um conjunto de instrumentos 2D/3D para construir interfaces de usuário, experiências de usuário e interfaces homem-máquina.

A estrutura Qt oferece a linguagem QML para design de aplicativos de interface do usuário.

Os módulos e instrumentos do Qt Automotive Suite são responsáveis pela criação de sistemas de infoentretenimento (IVI) no veículo.

O Automotive Suite possui em sua estrutura o Qt Application Manager , com uma API de alto nível para facilitar o desenvolvimento de um sistema de UI.

O módulo Qt GENIVI Extras permite aos projetistas combinar o produto com a estrutura da plataforma automotiva GENIVI. A interface do usuário Neptune 3 ajuda a criar a interface do usuário para Qt em sistemas de infoentretenimento automotivo (IVI).

O módulo Qt Interface Framework contém as ferramentas necessárias para desenvolver componentes de middleware (APIs, backends, serviços).

O módulo Qt Safe Renderer , com seu elemento de renderização de interface do usuário, permite que os desenvolvedores obtenham a separação de interpretações importantes do restante do sistema. Em caso de falhas ou emergências, permite visualizar os elementos mais cruciais do sistema.

Outros frameworks multiplataforma

Muitas soluções podem resolver as mesmas tarefas que o Qt. Ao escolher entre os frameworks, o desenvolvedor leva em consideração sua experiência e as necessidades do projeto.

Vamos dar uma olhada nas soluções do tipo Qt e destacar os recursos de cada estrutura.

Kits de ferramentas de plataforma cruzada são usados para desenvolvimento de software embarcado.

.NET, ou dotNet , é uma plataforma de desenvolvimento de propriedade da Microsoft.

Principais recursos da plataforma:

  • Código aberto;
  • compatível com Windows, Linux e macOS;
  • C#, F# ou Visual Basic são suportados.
  • Visual Studio IDE;
  • Tem uma grande comunidade.

Essa estrutura possui uma ampla variedade de compiladores, bibliotecas e APIs para desenvolver e compilar facilmente aplicativos móveis e de jogos.

Xamarin é um elemento da plataforma .Net, mas pode ser usado de forma independente. Xamarin é uma ferramenta popular para engenharia de aplicativos móveis.

Os elementos básicos do Xamarin:

  • software livre;
  • usa C#;
  • ferramentas compiladas nativamente;
  • Os projetos Xamarin Universal Library e Planet Xamarin fornecem aos desenvolvedores informações importantes e recursos úteis.

Flutter é uma estrutura de GUI do Google. Ele suporta o princípio WORA (Escreva uma vez, execute em qualquer lugar).

As principais características da estrutura são

  • Plataformas como Windows, Linux, Android, iOS e outras são suportadas.
  • suporta a linguagem de programação Dart;
  • widgets específicos de design.

As estruturas baseadas em Java são leves, extensíveis e fornecem desenvolvimento de aplicativos fácil e rápido. Java é uma das linguagens de programação mais populares.

Por outro lado, a linguagem Java é complexa e pouco eficiente em comparação com outras linguagens.

Você pode usar o GTK+ para criar programas GUI.

As principais características do kit de ferramentas do widget:

  • Código aberto;
  • multi plataforma;
  • C é a linguagem utilizada;
  • Existem ligações C++, dotNet e Python disponíveis.
  • Bom suporte para temas poderosos;
  • compatível com Windows, Linux e macOS.

O Simple DirectMedia Layer (SDL) é uma biblioteca de plataforma cruzada.

As principais características do SDL:

  • código-fonte aberto (sob a licença zlib);
  • dependendo da plataforma de destino, escrito em C, C++ ou Objective-C;
  • Também existem ligações para outros idiomas disponíveis.
  • Suporte para várias janelas;
  • Gráficos 2D acelerados por hardware;
  • É amplamente utilizado para programas multimídia multiplataforma (principalmente jogos);
  • conhecido por seus incríveis recursos de tradução.

Kits de ferramentas da GUI C++

C++ é uma linguagem de programação.

Os desenvolvedores C++ também têm uma ampla escolha de estruturas de GUI C++:

  • wxWidgets é um kit de ferramentas C++ de código aberto. É maduro, mas bastante rápido. wxWidgets usa widgets nativos (quando possível) para garantir uma aparência natural; ele tem um designer wxCrafter muito conveniente.
  • FLTK suporta gráficos 3D. Esta estrutura tem um design leve e simples.
  • Compatível com Windows, Linux, iOS, macOS e Android, o JUCE possui um grande conjunto de funcionalidades de áudio.
  • Ultimate ++ ( U++ , ou Upp ) contém GUI, SQL e outras bibliotecas e foca na eficiência.

Existem muitos outros frameworks de IU C++. Cada um deles serve a propósitos diferentes e tem vantagens. O benefício do Qt é a conveniência de desenvolver aplicativos para sistemas embarcados.

Por que escolhemos o Qt para sistemas embarcados?

C++ é uma das linguagens mais usadas para dispositivos embarcados.

É uma linguagem de programação altamente estável. É por isso que os aplicativos C++ podem ser executados por muitos anos e são adequados para hardware. C++ é uma linguagem independente de processador.

A estrutura de dados C++ é baseada em algoritmos, portanto, pode lidar com os desafios que acompanham o desenvolvimento de sistemas embarcados.

Baseado em C++, o Qt fornece tudo o que você precisa para criar software para sistemas embarcados em diferentes indústrias.

Tendo muitas opções para soluções de plataforma cruzada, a Integra Sources prefere o Qt como uma estrutura muito mais adequada para sistemas embarcados. Aqui estão algumas das qualidades do Qt que nos fizeram escolhê-lo.

  • O principal benefício do Qt é a capacidade de usar o mesmo código para diferentes plataformas de desktop, móveis e incorporadas.
  • O Qt usa um modelo de licenciamento duplo. A Integra Sources geralmente seleciona uma licença de código aberto para projetos. No entanto, o design do aplicativo também está disponível sob uma licença comercial Qt a pedido do cliente.
  • Documentação API detalhada, exemplos, suporte técnico e uma grande comunidade tornam o Qt fácil de usar.
  • Existem muitas ligações ao Qt para outras linguagens de programação.
  • O Qt Creator IDE é rápido e responsivo.

Podemos observar algumas desvantagens insignificantes de Qt e C++:

  • A linguagem C++ é complicada. É difícil para designers inexperientes aprender e usá-lo.
  • C++ pode ter faltado flexibilidade para tecnologias da web.
  • A velocidade dos aplicativos de plataforma cruzada pode ser mais lenta do que os nativos.
  • A compilação cruzada pode exigir etapas extras.

Qt em nossos projetos

O número de projetos em que usamos Qt está aumentando. O Qt permite que os designers resolvam muitas tarefas com rapidez e facilidade.

discussão do projeto

A nossa responsabilidade num dos projetos, relacionado com as esferas de marketing e entretenimento, foi desenvolver uma aplicação Android para depuração e configuração do dispositivo do cliente.

O dispositivo tinha frascos cilíndricos e estava equipado com um sistema de pulverização. Foi controlado via BLE. Nossos desenvolvedores tiveram que criar um aplicativo para gerenciamento de dispositivos. Além disso, um player de vídeo teve que ser implementado.

Assim que o jogador atingisse um determinado carimbo de data/hora, o aplicativo precisava enviar um comando ao dispositivo para borrifar uma determinada fragrância.

Para o design do aplicativo, escolhemos a pilha C++/Qt/Qml. Além disso, o código Java foi usado. O Qt nos permitiu construir um aplicativo Android em curto prazo.

O módulo Qt Connectivity acelerou o desenvolvimento da parte BLE com soluções Bluetooth prontas. Usando o módulo Qt Multimedia, nossos especialistas criaram um reprodutor de vídeo com diferentes funções.

A Integra Sources está satisfeita com a experiência de uso do framework Qt e C/C++. Isso nos ajuda a economizar tempo e os clientes economizam dinheiro obtendo aplicativos multiplataforma eficientes.

Nosso portfólio é composto por diversos projetos de sistemas embarcados.

Publicado tambémaqui