Manipulação de dados em aplicações móveis multiplataforma

A Altova MobileTogether permite que empresas de qualquer dimensão criem e implementem soluções móveis personalizadas que funcionam em todas as plataformas móveis. Este artigo é a segunda parte de uma discussão sobre a caixa de diálogo "Ações" do MobileTogether, que permite aos desenvolvedores criar rapidamente mecanismos de tratamento de eventos sofisticados, fluxos de controlo e operações que funcionam da mesma forma em dispositivos iOS®, Android™ e Windows, bem como num cliente baseado em navegador HTML5, sem se preocuparem com os detalhes específicos da API ou do SDK de cada sistema operativo móvel.

Se perdeu a primeira parte, leia Definição do tratamento de eventos e do fluxo de controlo para se atualizar.

Este artigo aborda algumas das funcionalidades do MobileTogether que manipulam dados e que são flexíveis, poderosas e aceleram o desenvolvimento de aplicações empresariais móveis orientadas a dados, permitindo fornecer informações atualizadas a utilizadores ocupados que estão em movimento.

A captura de ecrã abaixo mostra a página de apresentação de uma aplicação móvel de gestão de inventário, com uma breve descrição e uma opção para visualizar uma descrição mais detalhada quando o utilizador clica no botão "mais".

A definição da ação para o botão é apresentada abaixo, na caixa de diálogo de ações do MobileTogether Designer. Quando o utilizador clica no botão, uma ação de "Atualizar Nó(s)" insere o valor fixo "true" no nó "ShowMore".

A caixa de texto que contém a definição longa possui uma propriedade de visibilidade que utiliza uma expressão para determinar se deve ser exibida.

Assim que o valor de "ShowMore" muda para "verdadeiro", a descrição expandida é automaticamente exibida no dispositivo móvel

O botão "Mostrar mais" estava simultaneamente oculto porque a sua propriedade de visibilidade continha uma expressão que verificava se o valor de "ShowMore" era igual a "false".

Esta definição de ação simples cria um botão que funciona em todos os dispositivos móveis, ou mesmo numa janela do navegador num computador de mesa. No entanto, a função "Atualizar Nó(s)" pode fazer muito mais! No nosso exemplo, tanto o nó de destino como o conteúdo foram valores fixos. No entanto, o nó de destino, o resultado – ou ambos – também podem ser definidos como expressões XPath que contêm referências a outros elementos de dados, operadores XPath, funções XQuery, funções especiais do MobileTogether e até funções definidas pelo utilizador.

Os programadores podem simplesmente clicar em qualquer um dos botões XPath para abrir.. Diálogo de edição da expressão XPath para criar e editar expressões, com acesso à estrutura de dados XML, uma biblioteca de operadores e funções XPath/XQuery 3.1, e funcionalidades de apoio para facilitar a criação de expressões XPath/XQuery 3.1 válidas.

Num exemplo simples de aplicação de uma expressão, a aplicação "Gestor de Inventário" regista a data de execução para verificar se é necessário inicializar a tabela para um novo mês quando for executada novamente. Esta ação "Atualizar Nó(s)" utiliza uma função de data XQuery:

Note que não é necessário fazer chamadas de API específicas para cada plataforma. Uma única expressão no MobileTogether é compatível com todas as plataformas móveis.

Inserir nó(s) e Anexar nó(s) são ações que criam um ou mais novos nós, conforme especificado numa expressão XPath. A diferença entre estas duas ações é que "Inserir nó(s)" adiciona o(s) nó(s) num ponto específico na estrutura de dados, enquanto "Anexar nó(s)" adiciona o(s) nó(s) como nós filhos do(s) nó(s) selecionado(s).

As opções "Inserir Nó(s)" e "Anexar Nó(s)" podem expandir um modelo de integração de dados em tempo real para lidar com conjuntos de dados de tamanho desconhecido. Por exemplo, o núcleo da aplicação "Gestor de Inventário" é uma tabela que descreve o estado das peças necessárias para a produção de vários produtos. No mundo real, as listas de materiais dos produtos mudam frequentemente, à medida que os gestores de produto adicionam ou removem variações de produtos ou alteram os fornecedores. Seria extremamente ineficiente criar uma solução móvel com um número fixo de peças. Em vez disso, um desenvolvedor pode simplesmente definir o conteúdo de uma única linha que descreve uma única peça, e fornecer valores padrão para cada elemento:

Quando a tabela é inicializada, a ação "Adicionar ao nó" pode ser configurada dentro de uma ação de loop para adicionar qualquer número de linhas. Na solução "Gestor de Inventário", a variável "PartNumbersCount" armazena o número de peças únicas, que pode ser lido a partir de uma consulta a uma base de dados ou de um ficheiro externo de lista de peças. O programador nem sequer precisa de conhecer o número exato.

Na definição acima, o novo nó é definido como uma expressão XPath que representa uma linha do modelo de dados. A função "Append Node" (Adicionar Nó) adiciona o nó referenciado, todos os seus filhos, e todos os seus elementos, atributos e conteúdo. O novo nó pode ser adicionado como o primeiro ou o último filho.

A execução de um projeto em desenvolvimento no simulador integrado do MobileTogether permite que os programadores analisem os dados enquanto a aplicação está em execução. Após a conclusão de todas as iterações do ciclo definido acima, podemos verificar que o valor de "PartNumbersCount" foi 167 e que o ciclo adicionou exatamente 166 linhas adicionais, cada uma preenchida de forma idêntica à definição original.

As opções "Inserir Nó(s)" e "Anexar Nó(s)" também podem criar novos nós que são introduzidos diretamente como construtores XML, como: Element Content, ou podem ser construídos através de construtores de nós calculados por XQuery, como: elemento MyElement-01 {xs:string("Conteúdo do elemento")} atributo myatt{"valor"}

Recarregar é outra ação poderosa para trabalhar com dados. A ação de recarregar pode ser aplicada a qualquer recurso externo incluído no design, incluindo consultas a bases de dados, ficheiros de dados externos, gráficos e imagens. A opção "Recarregar" inclui uma lista suspensa com todos os recursos externos já configurados. Na aplicação "Gestor de Inventário", $ProductSalesMTD é uma consulta SQL da base de dados de encomendas da empresa que obtém um número de vendas de cada produto individual até o momento no mês corrente. Os produtos são comparados com as listas de materiais para calcular as estatísticas de procura de cada peça individual.

É fácil recarregar mais de uma fonte de dados arrastando várias ações de recarregamento para a área de edição. Abaixo, está a definição parcialmente expandida das ações realizadas por outro botão no Gestor de Inventário. Depois de todas as fontes de dados serem atualizadas, a última etapa executa o recarregamento para redesenhar o gráfico de desempenho com base nos valores mais recentes.

Esta captura de ecrã, proveniente de um pequeno tablet Android, mostra a tabela de dados principal e o gráfico de uma versão do Gestor de Inventário configurada para subconjuntos, em vez de centenas de peças individuais. Se os níveis de qualquer componente estiverem abaixo do valor desejado, o utilizador pode inserir as quantidades na coluna à direita e, em seguida, clicar no botão "Enviar Encomenda" para autorizar encomendas aos fornecedores.

Num iPhone utilizado na horizontal, o ecrã apresenta uma visualização semelhante, onde o utilizador pode ver todos os dados percorrendo a página.

Uma série de pequenos.. demonstrações em vídeo O artigo publicado no site da Altova demonstra como é fácil começar a criar uma aplicação empresarial móvel com o MobileTogether Designer. Ou, consulte a versão web de.. Ajuda online do MobileTogether Designer Para obter informações mais detalhadas.

Para saber mais e descarregar o MobileTogether Designer gratuitamente, para criar a sua primeira solução móvel empresarial para iOS®, Android™, Windows® Phone 8 e Windows 8, bem como um cliente baseado em navegador HTML5, visite: www.altova.com/mobiletogether