Tecnologias
Embarcadas

You’ll make breakthroughs by
extending the value of InterSystems’ products

Zen Mojo

O que é Zen Mojo?

Zen Mojo – uma extensão do InterSystems Zen™ – é um conjunto de classes Caché que lhe permitem construir rapidamente interfaces de usuário modernas para aplicações web móveis e de desktop.

Por que usar Zen Mojo?

O desenvolvimento de aplicações web é uma maravilha até que você percebe que você deve manter um monte de funcionalidades em diversas plataformas – o que interrompe a sua produtividade. A intenção por trás do Zen Mojo é permitir que você possa se concentrar nos aspectos importantes de sua solução: o design da aplicação e a experiência do usuário.

Como funciona

As aplicações criadas com o Zen Mojo utilizam uma Arquitetura de Página Única (SPA). Em vez de gerar o código HTML no servidor, o qual é então enviado para cliente, o servidor transmite pacotes JSON que conduzem o conteúdo da página. A transição entre as páginas é tão fácil quanto trocar os metadados subjacentes e nomear um método.

A renderização da página é feita por plugins do Zen Mojo que podem usar bibliotecas de terceiros para fornecer os widgets de ponta ou para usara sua própria biblioteca baseada em código.

O que torna uma Arquitetura de Página única diferente?

A Arquitetura de Página Única é uma abordagem eficiente para reduzir a comunicação cliente-servidor. A página consiste em uma pequena quantidade de código esqueleto de HTML e pode atualizar o seu conteúdo com metadados transmitidos por um servidor. Ao alterar os metadados subjacentes, a página pode alterar os dados exibidos no momento ou até mesmo fazer a transição para uma nova página de exibição – sem realmente se mover para uma nova página física. O Zen Mojo utiliza JSON (um formato de dados brutos eficiente) para a comunicação, de modo que o SPA minimize a carga útil entre o cliente e o servidor e garante o controle otimizado pelo desenvolvedor.

Como os plugins funcionam?

O Zen Mojo utiliza plugins para a fácil integração de bibliotecas JavaScript de última geração, como o jQuery Mobile ou o Dojo Toolkit. Portanto, os desenvolvedores podem selecionar novos paradigmas de interface de usuário conforme surgem.

São disponibilizados dois tipos de plugins: PageManager e Helper.

O PageManager cria o shell básico em que sua aplicação vive e define a forma de gerir as transições de página dentro da Arquitetura de Página Única.

Plugins auxiliares adicionam suporte para o posicionamento e objetos de renderização que podem ser definidos nos metadados. Alguns desses elementos podem ser muito simples e apenas apresentar uma página.

Outros podem ser muito potentes, proporcionando efeitos visuais complexos ou integrando bibliotecas de terceiros.

Construindo aplicações web móveis

Damos suporte a várias bibliotecas JavaScript móveis. O jQuery Mobile facilita a criação de um visual personalizado voltado a público multiplataforma, enquanto a interface de usuário Chocolatechip oferece componentes e stylesheets específicas que emulam a aparência do iOS, Android e Windows Phone.

jQuery Mobile

ChocolateChip UI

Posso criar aplicações móveis com o Zen Mojo?

Com certeza. Você pode configurar uma aplicação nativa escrita em Objective-C (para iOS) ou Java (para Android) e inserir a sua aplicação Web no mesmo. Esta abordagem é conhecida como aplicação híbrida, diferindo de uma aplicação construída de forma nativa. Uma boa ferramenta para isso é o PhoneGap baseado em Apache Cordova.

Por padrão, as aplicações de Zen Mojo são implantadas dentro de um ambiente de servidor. Tais aplicações são chamadas de aplicações da Web e exigem conectividade de servidor, pelo menos no momento de inicialização.

O Zen Mojo permite a compilação e o empacotamento de um conjunto (Bundle) de aplicações, que pode ser executado localmente a partir de qualquer lugar. Um conjunto ainda pode manter contato com um servidor, sem qualquer alteração no código, mas não requer o servidor na inicialização. Conjuntos são destinados para uso em aplicações híbridas.

PhoneGap

Construção de aplicações web de desktop

O uso dos plugins do Zen Mojo permite que você integre bibliotecas populares para o desenvolvimento de aplicações desktop. Atualmente nós suportamos o Dojo Toolkit com seu grande número de widgets Dijit e sua capacidade de processar gráficos 2D interativos.

The Dojo Toolkit

Como posso obter o Zen Mojo?

O Zen Mojo pode ser baixado a partir do Portal de Distribuição WRC. (O acesso é restrito aos clientes com uma licença válida.) A partir da versão 2.014.2, o Caché será lançado com a versão atual do Zen Mojo.

Portal de Distribuição WRC

O que há de novo?

O Zen Mojo é atualizado em ciclos regulares e apresenta novos recursos a cada versão. Aqui estão as mais recentes características-chave que gostaríamos de salientar.

Introdução da Referência Widget

A nova Referência Widget destina-se a fornecer amostras de códigos “ready-to-steal” e a encurtar a curva de aprendizado para o Zen Mojo. A referência widget mostra os widgets e demonstra seu uso em configurações comuns. Cada amostra inclui uma descrição, o(s) widget(s) prestado(s) e um botão para acessar o código fonte. Esse botão exibe um popup que descreve cada parte do código envolvido para produzir a amostra: o objeto de layout, os dados associados a qualquer CSS. Atualmente, a referência widget fornece conteúdo para JQuery Mobile 1.3.2. Highcharts and Chart.js.

Suporte avançado para a criação de gráficos

Enquanto o Zen IvMojo 1.0.9 adicionou suporte a uma biblioteca de gráficos livre — Chart.js — a última versão do Zen Mojo introduz suporte para uma biblioteca de gráficos profissional — Highcharts.js — que somente é gratuito para uso não-comercial. Ambas as bibliotecas de gráficos tem sua própria seção na Referência Widget.

Agrupamento de arquivos para a implantação de aplicação híbrida

Para facilitar a tarefa da inclusão de todos os arquivos necessários em um projeto PhoneGap. o ZEN.Mojo.Utils agora fornece um método utilitário que gera uma página off-line of Zen Mojo identifica os arquivos gerados necessários por essa página, e copia todos esses arquivos para um diretório de destino. Note que este utilitário não pode identificar todas as dependências, tais como aquelas implicadas pelos parâmetros CSSINCLUDES JSINCLUDES uma vez que algumas dessas dependências só podem ser determinadas durante a execução.