Recursos/White Papers

Opinião

O modelo multiplataforma conduzirá o futuro da interface com o usuário

A multiplataforma tornou-se viável na indústria tecnológica com a popularização de arquiteturas de software que segmentam a aplicação em camadas

Will Soares *

Publicada em 24 de outubro de 2018 às 16h36

A necessidade de acessar as mesmas informações através de diversos dispositivos diferentes é uma demanda que só tende a crescer nos próximos anos. A limitação física de armazenagem de dados, associada à computação em nuvem cada vez mais barata permite agora concentrar nossas vidas em contas virtuais, que se fazem disponíveis em qualquer dispositivo com acesso à internet.

As particularidades de cada dispositivo acabam tornando-se uma barreira para os provedores, que precisam se dedicar ao desenvolvimento de interfaces distintas para cada cenário. Isso vem popularizando o termo “multiplataforma”.

A multiplataforma tornou-se viável na indústria tecnológica com a popularização de arquiteturas de software que segmentam a aplicação em camadas. A arquitetura mais popular é a MVC (Model-view-controller) que, embora exista desde 1979, passou a ser utilizada em larga escala com o advento do AJAX – método de transação de dados capaz de permitir a renderização de páginas web sem necessidade de recarregamento de páginas HTML – em 2006 nas aplicações Web.

A MVC, basicamente, divide a aplicação em três camadas distintas, as quais podem ser desenvolvidas e evoluídas separadamente:

Model, ou modelo, é onde se concentram os dados e principais regras de negócio. Evoluções nessa camada costumam ser essenciais para novas funcionalidades do projeto. Trata-se do coração da aplicação;

- View, ou visão, é a forma como o usuário final visualiza a aplicação e interage com uma determinada finalidade. É muito comum que cada dispositivo possua uma visão diferente, e não necessariamente tenha acesso a todas as regras de negócio do modelo;

- Controller, ou controlador, é a camada responsável pela transação de dados entre model e view. É o controller que recebe interações do usuário a partir da view e envia os dados para que uma ação esperada aconteça.

Usando um exemplo prático de aplicação multiplataforma, pensemos no aplicativo e website do seu banco e numa finalidade hipotética: pagar uma conta em atraso.

- Você pode escolher uma das duas views disponíveis: aplicativo ou website;

- Independente da escolha, para ambos você precisa efetuar login;

- Quando efetua o login, o acesso é exatamente no mesmo sistema, independente da interface;

- Cada view foi desenvolvida de forma distinta, mas o controller recebe os dados da mesma maneira;

- O botão “Pagar conta” vai estar por ali. No aplicativo de uma forma, no website de outra;

- Ao acessar, no celular você tem o recurso da leitura de códigos de barras. Já no computador, o copy-paste é uma mão na roda. Em muitos casos, sua view preferida tende a ser aquela que proporciona mais conforto. No primeiro caso para um boleto digital e no segundo para um impresso. Legal!

- Independente da view e do formato, a numeração do boleto é a mesma. O código de barras está dentro da interface e você clica/toca em “Enviar”;

- Nesse momento, a view envia seu código de barras ao controller, que normaliza os valores e envia para o model, que vai buscar por aquele número de boleto no banco de dados;

- O model responde para o controller: Encontrei o boleto, mas está com a data vencida. Aqui está o cálculo dos juros e multa;

- O controller, recém-atualizado, já recebe a informação, calcula os juros e multa, e informa à view;

- O website (mais antigo) ainda não sabe que esses cálculos existem. Se resume a dar a má notícia com uma mensagem de erro, e pede para o usuário calcular e preencher multa e juros manualmente. Faz-se necessária uma consulta ao boleto e, com uma calculadora em mãos, o usuário se arrisca nos cálculos;

- Já o aplicativo (mais recente) está preparado para receber essas informações adicionais e, automaticamente faz o cálculo dos juros, deixando o usuário a um clique de finalizar o processo;

- Depois da autenticação por senha, o processo se finaliza.

UX

O exemplo serve para mostrar o ciclo de vida de cada uma das camadas. Enquanto as views mudam com grande velocidade para acompanhar as tecnologias móveis, as regras de negócios são mantidas, com pequenas evoluções para que a experiência do usuário seja melhorada em versões mais recentes de interfaces. Com isso os sistemas deixaram de sofrer grandes reformulações, e passaram a disponibilizar controllers cada vez mais sofisticados.

Com a popularização da realidade virtual e realidade aumentada, as views serão cada vez mais imersivas, enquanto funções triviais poderão perpetuar em controllers. A experiência de escolher um sofá, que o comprador pode ver virtualmente em sua sala de estar será muito cômoda e assertiva, porém o model continuará processando uma venda da mesma maneira.

Evoluções no núcleo do sistema serão focadas em outros pontos de interesse para o negócio, como a produção, logística e preparo para ações de pós-vendas. Cada uma das iniciativas, demandando evoluções no controller e desenvolvimento de suas respectivas views.

Embora as evoluções mais significativas das aplicações multiplataformas tenham se destacado nas views, uma tendência crescente é a de que o maior passo na evolução de interfaces com usuários para a próxima década esteja na introdução de inteligência artificial ao controller.

Os algoritmos genéticos, que otimizam resolução de problemas e possuem capacidade de aprendizado cada vez mais eficiente, já oferecem experiências impressionantes através de comandos de texto e de voz. E tudo leva a crer que tecnologias usadas por Tony Stark estejam cada vez mais próximas de fazer parte do nosso cotidiano. Com menos foguetes e titânio, claro.

 

(*) Will Soares é fundador da Ever



Reportagens mais lidas

Acesse a comunidade da CIO

LinkedIn
A partir da comunidade no LinkedIn, a CIO promove a troca de informações entre os líderes de TI. Acesse aqui