Arquitetura Mobile

Arquitetura

Arquitetura é a técnica para criar um projeto que servirá de base para uma edificação ou um ambiente de uma construção, usada para projetar espaços organizados e criativos para abrigar os diferentes tipos de atividades humanas. Na arquitetura são utilizados vários conhecimentos, que envolvem desenho, matemática, arte, urbanismo, história, engenharia, entre outros que permitirão ao arquiteto criar espaços a serem construídos de maneira organizada a fim de atender algum tipo necessidade do homem.

“Arquitetura é antes de mais nada construção, mas, construção concebida com o propósito primordial de ordenar e organizar o espaço para determinada finalidade e visando a determinada intenção. …há sempre, para cada caso específico, certa margem final de opção entre os limites – máximo e mínimo – determinados pelo cálculo, preconizados pela técnica, condicionados pelo meio, reclamados pela função ou impostos pelo programa, – cabendo então ao sentimento individual do arquiteto”
Lúcio Costa, Arquiteutra

Arquitetura de software é um daqueles termos que todo mundo sabe (ou acha que sabe) o que é, mas não consegue definir. É por isso também que os termos acabam ainda tendo várias classificações, para tentar restringir os conceitos englobados pela definição mais genérica. No caso específico de arquitetura acaba gerando tipos como: arquitetura corporativa, arquitetura de informação, arquitetura de sistemas, etc.

“Arquitetura é a definição dos elementos que compõem uma estrutura e como eles se relacionam”
O que é Arquitetura de Software?

A arquitetura define como são organizados elementos para montar um software e o arquiteto é o responsável pela sua criação. Mas o mais importante é saber quais as possíveis escolhas e que fatores influenciam na sua decisão.

Na construção de um sistema é preciso que alguém consiga organizar o seu conteúdo de maneira que o usuário possa acessar com facilidade e eficiência, e esse é o trabalho do arquiteto da informação, seja na estruturação de um site ou no projeto de um aplicativo qualquer.

O Information Architecture Institute define Arquitetura de Informação como:

The art and science of organizing and labeling web sites, intranets, online communities and software to support usability and findability.
What is information architecture?

Esta definição foi criada em um momento onde não existia smartphones, tablets, aplicativos, totens e pulseiras que medem o desempenho físico diário de um usuário. O arquiteto da informação é responsável por traçar quais os pontos principais do produto que atendam as necessidades do usuário.

Mas porque o arquiteto de software não deveria se preocupar com a apresentação da informação para o usuário? A definição da arquitetura não está diretamente ligada em como a aplicação deverá se comportar? A experiência do usuário para ser completa não deve ser tratada desde a definição do escopo e da tecnologia que será utilizada na concepção do projeto? Quem é seu usuário? O que ele quer? Quais são as suas necessidades? Ele conseguiu realizar o que precisava? Ele navegou com facilidade? A experiência foi prazerosa? Ele usaria seu produto ou serviço novamente?

O Uber é excelente exemplo de como sua arquitetura precisou ser repensada para proporcionar uma melhor experiência para o usuário, já que era necessário saber a localização dos carros a cada 3 segundos e que esses enviassem informação de sua localização neste intervalo de tempo. A solução adotada utilizou tecnologias como NodeJS e Riak. Veja os artigos sobre a arquitetura do Uber:

Native, Hybrid or Web

O aplicativo deverá executar em quais ambientes (IOS, Android, WindowsPhone)? Qual é o nível de conhecimento da equipe para desenvolvimento mobile? E para desenvolvimento web? Qual o tempo disponível para desenvolver a aplicação?

native-hybrid-web-mobile-app-development-jpg
Nativo, híbrido ou web

Todos estes questionamentos também devem influenciar na escolha de qual arquitetura deverá ser usada para desenvolvimento do sistema mobile. Se o sistema deve ser desenvolvido utilizando tecnologia híbrida ou nativa, quais fatores influenciam nesta escolha? Existe tempo hábil para desenvolver duas aplicações nativas para atender Android e IOS? Qual o conhecimento da equipe sobre desenvolvimento mobile? A equipe possui conhecimento web para desenvolvimento? Quanto é o custo de desenvolvimento de aplicações nativas? E para aplicações híbridas?

hybrid-html5-apps-27-638
Hybrid HTML5 Apps

São diversos os questionamentos que podem influenciar nas definições de uma arquitetura e que interferem diretamente nas decisões do arquiteto de software. É possível que um arquiteto de software consiga interagir de forma complementar com outras áreas, utilizando o conceito da interdisciplinaridade para atender uma necessidade do cliente, proporcionando um resultado que atenda melhor suas expectativas.

outsystems-native-web-hybrid-infographic-l
Native vs Web vs Hybrid: Which Mobile Architecture is Right for Your App?

A escolha

Arquitetura da informação é uma das etapas de pré-projeto para o desenvolvimento de qualquer tipo de estrutura digital, seja site ou aplicativo, que ofereça informação e interação com o usuário. Seu objetivo principal é satisfazer o usuário quanto a cobertura de suas necessidades e experiência com o produto, quanto mais útil e fácil de usar, melhor. E que a arquitetura de software trabalhe em conjunto para que seja possível proporcionar a melhor experiência para o usuário.

A escolha de uma primeira arquitetura sobre uma segunda não diminui as qualidades de uma sobre a outra. Usar uma arquitetura em um determinado projeto não significa que esta deve ser utilizada em todos os outros projetos futuros. Também não significa que determinada arquitetura seja melhor do que a outra. O que deve ser considerado são os requisitos, necessidades, pessoas(cliente/usuário/desenvolvedor), escopo, experiência do usuário e tudo o que for necessidade para cada projeto. Hoje, determinar a arquitetura que será utilizada sobrepõe a integração de componentes e frameworks.

Busque mais

♦ 10 Best Hybrid Mobile App UI Frameworks: HTML5, CSS and JS

♦ A arquitetura de sistemas de tempo real da Uber

♦ Aplicativo nativo ou aplicativo híbrido: qual a melhor solução?

♦ Arquitetura

♦ Desenvolver um Aplicativo Nativo ou um Aplicativo Híbrido?

♦ Hybrid HTML5 Apps

♦ Nativo, híbrido ou web

♦ Native vs Web vs Hybrid: Which Mobile Architecture is Right for Your App?

♦ O que é Arquitetura de Software

♦ The Mobile App Comparison Chart: Hybrid vs. Native vs. Mobile Web

♦ The Top 7 Hybrid Mobile App Frameworks

♦ What are Progressive Web Apps?

♦ What is information architecture?

♦ What is the Uber software architecture?


1 comentário

Igor Lucas · 11 de julho de 2016 às 14:54

Vale a pena conhecer também o Xamarin (https://www.xamarin.com/) que, até onde entendi, é um meio do caminho entre o Híbrido e Nativo, visto que você desenvolve uma única versão e gera o código nativo para os três grandes SOs Mobile (Android, iOS e Windows). Em fevereiro deste ano a Microsoft adquiriu a empresa e liberou sem custo sua utilização, obviamente com o interesse em aumentar a disponibilidade de Apps para Windows Phone.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *