• Nenhum resultado encontrado

Análise comparativa do desenvolvimento de aplicações nativas e

No documento Assistente pessoal hospitalar (páginas 103-108)

3. Revisão de Literatura

3.4. Dispositivos Móveis no Healthcare (caso prático)

3.5.5. Análise comparativa do desenvolvimento de aplicações nativas e

Tanto como a abordagem nativa ou a abordagem multiplataforma, ambas apresentam vantagens e desvantagens. Para efetuar uma análise comparativa mais aprofundada, a Tabela 13 apresenta de forma detalhada o resultado da comparação entre as duas abordagens com base nos seguintes critérios (Scandurra & Rosario, sem data; Serrano et al., 2013):

➢ Experiência e interface do utilizador - as aplicações nativas apresentam uma interface mais fluida e responsiva do que as aplicações multiplataforma, mais concretamente no caso das animações e dos gestos. Isto acontece porque quando se desenvolve uma aplicação nativa numa determinada plataforma, têm-se o acesso completo ao API de

80

todos os dispositivos. As soluções multiplataformas já estão a oferecer APIs nativos para utilização, mas estes referem sempre a um subconjunto limitado dos recursos do dispositivo e mesmo assim, muitas vezes é necessário esperar até que sejam disponibilizados de modo a serem utilizados.

➢ Desempenho - uma das principais vantagens de utilizar a abordagem de desenvolvimento nativo, é o fato de que as aplicações executarem mais suavemente em qualquer dispositivo móvel que utiliza o mesmo sistema operativo. Enquanto que, a abordagem multiplataforma pode às vezes ser mais lento do que quando é utilizado abordagens nativas para desenvolver uma aplicação. Tal diferença pode ser facilmente notada durante a representação gráfica e animações.

➢ Recursos específicos do dispositivo - as abordagens nativas oferecem aos programadores das aplicações a vantagem de ter o acesso a todas as funcionalidades da plataforma. Por outro lado, as abordagens multiplataformas oferecem vantagens para um número limitado de funcionalidades. Como por exemplo, as aplicações multiplataformas, o suporte aos gráficos high-end e 3D são muitas vezes limitadas.

➢ Distribuição via app store - podem existir requisitos rigorosos para a admissão das aplicações nas lojas online (Web Store) públicas. Por exemplo, no caso da Apple Inc., requerem que os programadores submetam aplicações para efeito de testes e verificação da compatibilidade com os dispositivos móveis antes de serem disponibilizados nas lojas

online. Neste sentido, as aplicações desenvolvidas com ferramentas nativas são

geralmente aceites de forma mais fácil nas lojas online do que as aplicações multiplataformas, devido ao facto que as aplicações nativas foram desenvolvidas por programadores com vasto conhecimento da plataforma de destino.

➢ Custo de desenvolvimento multiplataforma - os programadores nativos, quando pretenderem direcionar às suas aplicações para múltiplas plataformas móveis, deverão adotar boas práticas da arquitetura da aplicação, de modo que sejam utilizados o modelo de dados que otimiza o esforço do desenvolvimento para múltiplas plataformas. No caso do desenvolvimento de aplicações nativas, requerem que os programadores tenham

81

conhecimento das plataformas de destino. Já no caso de desenvolvimento de aplicações multiplataformas, o custo de desenvolvimento é reduzido, ou seja, menor do que custo de desenvolvimento das aplicações nativas, pois não é necessário que os programadores tenham conhecimento da plataforma de destino. Talvez esta seja a maior vantagem, porque o esquema de compilações múltiplas faz com que as empresas ou marcas obtenham as aplicações para outras plataformas sem terem a necessidade de investir em novas equipas ou programadores específicos para determinado ecossistema.

➢ Suporte a desenvolvedores - os programadores geralmente preferem mais o desenvolvimento de aplicações nativas, pelo fato de ser mais fácil obter ajudas a partir dos fórums online, para obter respostas rápidas de outras pessoas que já desenvolveram estas aplicações há mais tempo. O desenvolvimento multiplataforma é uma técnica mais recente, pelo que é um bocado mais difícil obter ajudas. Mas, no entanto, já existem

frameworks de desenvolvimento de aplicações multiplataformas que oferecem uma boa

documentação a APIs, o que torna mais fácil a obtenção de ajudas.

➢ Segurança - as aplicações multiplataformas apresentam maiores riscos do que as aplicações nativas. A razão está diretamente ligada com os riscos do HTML5. A título de exemplo, para citar algumas das vulnerabilidades da segurança do URL, devido aos dados armazenados na cache do browser do dispositivo móvel. Contrariamente, os sistemas operativos com o iOS e o Android oferecem serviços de segurança dos dados integrados, tais como a criptografia dos dados. As técnicas de ataque como a manipulação de cookies e SQL injection para obter o acesso aos dados sensíveis no servidor back-end, bem como para os dispositivos móveis em si não são possíveis em aplicações nativas bem construídas.

➢ Acesso atempadamente às novas inovações das plataformas móveis - as frameworks multiplataformas podem não suportar todas as funcionalidades do sistema operativo ou do dispositivo móvel. Quando uma nova funcionalidade ou um novo recurso for adicionado no sistema operativo, esta não fica imediatamente disponível para a

framework multiplataforma que está a ser utilizado. Para isso, é necessário um tempo de

82

➢ Reutilização do código - normalmente o código das aplicações multiplataformas são consideradas reutilizáveis. Em vez de ter que desenvolver uma ação específica ou uma sequência específica de ações para cada plataforma em particular, o programador escreve apenas um código uma única vez e depois pode reutilizá-la em outras plataformas ou mesmo outros projetos. Porém isso nem sempre é verdade, pois algumas frameworks multiplataformas utiliza muitas vezes o seu próprio subconjunto do JavaScript, o que significa que para mudar de plataforma o código utilizado anteriormente não poderá ser reutilizado sem algumas alterações substanciais.

➢ Desafios do design - as aplicações desenvolvidas segundo a abordagem nativa, tem o

design simplificado devido ao suporte e aos serviços disponibilizados pelo sistema

operativo. Por exemplo, o sistema operativo pode notificar as aplicações acerca dos eventos, tais como a chegada de mensagens e também sobre o nível da energia. No caso de aplicações desenvolvidas segundo a abordagem multiplataforma, os programadores têm de adicionar estes recursos de forma explícita. Além disso, nas frameworks multiplataformas, os programadores têm de projetar o design como é que cada recurso que podem precisar tem de ser implementada para cada plataforma de destino. Como por exemplo, projetar o design de uma aplicação para iOS é diferente de projetar o design uma aplicação para Android, pois as convenções da interface do utilizador e a experiência do utilizador são diferentes, e o touch point e os menus funcionam de maneira diferentes.

➢ Disponibilidade do conhecimento de programação - está amplamente reconhecido que existem mais programadores WEB do que nativos. Como a grande maioria das

frameworks multiplataformas são baseadas em HTML e CSS, assim torna mais fácil a

obtenção de conhecimentos necessários para os desenvolvedores WEB. As habilidades dos programadores nativos, geralmente são mais custosos e são mais difíceis de os obter.

83

Tabela 13 - Abordagem Nativa vs Multiplataforma retirado de (IBM, 2012; Scandurra & Rosario, sem data)

Nativo Multiplataforma

Experiencia do utilizador e interface do utilizador Melhor Pior

Desempenho Melhor Pior

Recursos específicos do dispositivo Melhor Pior Distribuição via app Store (Web Store) Melhor Pior Custo de desenvolvimento multiplataforma Melhor Pior Suporte a desenvolvedores Melhor Pior

Segurança Melhor Pior

Acesso atempadamente às novas inovações das plataformas móveis

Melhor Pior

Reutilização do código Pior Melhor

Desafios do Design Pior Melhor

Disponibilidade do conhecimento de programação Pior Melhor

A análise comparativa entre a abordagem nativa e a abordagem multiplataforma, presente na Figura 22, ilustra de forma resumida e concisa a comparação. O principal objetivo da abordagem multiplataforma é a redução de custos e o tempo de desenvolvimento, de forma a ser possível que um único código fonte desenvolvido pode gerar aplicações para diferentes plataformas móveis. Enquanto que, a abordagem nativa apresenta melhor interfaces do utilizador (UI) e melhores desempenho.

84

Figura 22 - Comparação entre abordagem nativa e abordagem multiplataforma retirado de (AllianceTek Inc, 2016)

No documento Assistente pessoal hospitalar (páginas 103-108)