Pular para o conteúdo principal

Questão de Arquitetura de Software — Software — ACAFE 2024

Arquitetura de SoftwareSoftware
Código
qg053147
Banca
ACAFE
Órgão
CELESC
Ano
2024
Nível
Superior
Cargo
Analista de Sistemas - Negócios
Você é um desenvolvedor sênior de uma empresa de tecnologia que está prestes a iniciar o desenvolvimento de um aplicativo móvel. Durante uma reunião de planejamento, a equipe discute as diferentes abordagens para o desenvolvimento de aplicativos móveis, considerando fatores como desempenho, experiência do usuário e tempo de desenvolvimento. Um dos desenvolvedores pergunta qual abordagem proporciona a melhor experiência de usuário e desempenho otimizado para dispositivos móveis. Assim, que abordagem de desenvolvimento de aplicativos móveis geralmente proporciona a melhor experiência de usuário e desempenho otimizado?
  1. AAplicativos Web Progressivos (PWAs).
  2. BAplicativos Nativos.
  3. CAplicativos Híbridos.
  4. DAplicativos Responsivos.
  5. EAplicativos Multi-Plataforma com Frameworks como React Native.
Revelar gabarito e comentário

GabaritoB — Aplicativos Nativos.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Desenvolvimento de Aplicativos Móveis: Abordagens e Desempenho

Gabarito: letra B. A abordagem nativa proporciona a melhor experiência de usuário e desempenho otimizado porque o aplicativo é desenvolvido especificamente para uma plataforma (iOS ou Android), utilizando linguagens e APIs nativas, o que permite acesso total aos recursos do dispositivo e integração fluida com o sistema operacional.

A questão testa o conhecimento sobre as diferentes abordagens de desenvolvimento móvel e suas compensações em termos de desempenho e experiência do usuário. Embora outras abordagens possam ser mais rápidas de desenvolver ou multiplataforma, nenhuma supera o desempenho e a experiência do usuário de um aplicativo nativo bem construído.

Abordagem

Desempenho

Experiência do Usuário

Acesso a Recursos Nativos

Tempo de Desenvolvimento

Aplicativos Nativos

Máximo (código otimizado para a plataforma)

Melhor (integração fluida com SO e diretrizes de UI)

Total (câmera, sensores, notificações avançadas)

Maior (código separado por plataforma)

Aplicativos Híbridos

Inferior (camada de abstração, animações lentas)

Menos nativa (depende de container web)

Limitado (via plugins)

Menor (código único multiplataforma)

Aplicativos Web Progressivos (PWAs)

Limitado (executado no navegador)

Boa, mas sem acesso total a recursos nativos

Parcial (câmera, notificações básicas)

Menor (baseado em tecnologias web)

Aplicativos Multi-Plataforma (React Native)

Próximo ao nativo (ponte JS-nativo)

Muito boa (componentes nativos)

Quase total (via bridges)

Moderado (código único, mas com ajustes)

Aplicativos Responsivos

Dependente do navegador

Adaptável, mas não nativa

Mínimo (apenas recursos web)

Menor (site adaptável)

1Nativos
Melhor desempenho
Melhor UX
Acesso total ao hardware
Linguagens específicas (Swift, Kotlin)
2Híbridos
Desempenho inferior
UX menos nativa
Tecnologias web encapsuladas
3PWAs
Sem acesso total a recursos nativos
Executados no navegador
4Multiplataforma (React Native)
Desempenho intermediário
Código compartilhado
Abordagens de desenvolvimento móvel
LEVELsoulevel.com.br
Abordagens de desenvolvimento móvel: Nativos (Melhor desempenho, Melhor UX, Acesso total ao hardware, Linguagens específicas (Swift, Kotlin)); Híbridos (Desempenho inferior, UX menos nativa, Tecnologias web encapsuladas); PWAs (Sem acesso total a recursos nativos, Executados no navegador); Multiplataforma (React Native) (Desempenho intermediário, Código compartilhado)

Alternativa A — ❌ Incorreta

Os Aplicativos Web Progressivos (PWAs) são executados no navegador e, embora ofereçam boa experiência e possam funcionar offline, não têm o mesmo desempenho e acesso a recursos nativos (câmera, sensores, notificações push avançadas) que um aplicativo nativo. Portanto, não proporcionam a melhor experiência de usuário e desempenho otimizado.

Alternativa B — ✅ Correta ⟵ GABARITO

Os Aplicativos Nativos são desenvolvidos com as linguagens e ferramentas oficiais da plataforma (Swift/Objective-C para iOS, Kotlin/Java para Android), compilados diretamente para o sistema operacional. Isso permite total controle sobre hardware, desempenho máximo (código otimizado para a arquitetura), animações suaves e integração consistente com as diretrizes de interface da plataforma (Human Interface Guidelines, Material Design). Esses fatores garantem a melhor experiência de usuário possível.

Alternativa C — ❌ Incorreta

Os Aplicativos Híbridos usam tecnologias web (HTML, CSS, JavaScript) encapsuladas em um container nativo (como Cordova ou Ionic). Embora sejam mais rápidos de desenvolver e multiplataforma, sofrem com desempenho inferior (especialmente em animações e processamento gráfico) e experiência de usuário menos nativa, pois dependem de uma camada de abstração para acessar recursos do dispositivo.

Alternativa D — ❌ Incorreta

Aplicativos Responsivos são sites que se adaptam ao tamanho da tela, mas não são aplicativos móveis propriamente ditos. Eles executam no navegador e não têm acesso profundo aos recursos do dispositivo, resultando em desempenho e experiência inferiores comparados a aplicativos nativos.

Alternativa E — ❌ Incorreta

Frameworks Multi-Plataforma como React Native permitem escrever código uma vez para rodar em ambas as plataformas, usando JavaScript e uma ponte para componentes nativos. Embora ofereçam desempenho razoável e UX próxima do nativo, ainda há uma ponte de comunicação que pode introduzir latência, e algumas funcionalidades podem não ser tão fluidas quanto em um aplicativo puramente nativo. Não superam o desempenho otimizado de um aplicativo nativo.

PEGA ESSA DICA!

Em provas de arquitetura de software, lembre-se: a abordagem nativa é sempre a referência de melhor desempenho e experiência do usuário, mas nem sempre é a mais adequada em termos de custo e tempo de desenvolvimento. A escolha depende do contexto do projeto.

Gabarito: letra B

Link permanente: /questoes/qg053147