xMova Android

As sessões abaixo visam exemplificar como fazer uso da plataforma xMova Android, demonstrando quais recursos estão disponíveis e como utilizá-los. Para desenvolver um aplicativo nesta plataforma deve-se configurar três partes do aplicativo APP, MODEL e LANG. Abaixo pode-se acessar a sessão relacionada a configuração de cada parte.

APP

Comandos de Socket

Danger

Guarde esses pontos com sua própria vida.

Cada versão publicada em produção é um pacote único, com a mesma versão do server, center e mobile. Uma versão do mobile 1.5 deve obrigatoriamente rodar no center 1.5 e no server 1.5.

Quando fizer uma alteração em um fluxo de versão antiga, por exemplo 1.4, não deve-se atualizar a plataforma mobile (apk) para a versão mais nova, e sim manter a versão antiga, para que os usuários não sejam forçados a atualizarem o APK nos celulares.

Quando for duplicar e compilar um fluxo em uma versão antiga, deve-se usar o xmova-center na versão antiga, a mesma versão que o APK estiver. Se usar o xmova-center com uma versão nova para compilar um fluxo de versão antiga o fluxo ficará incompatível com os celulares em campo e os celulares em campo irão parar de funcionar.

Só deve-se duplicar/compilar um fluxo antigo numa versão center nova, quando realmente se deseja que os celulares em campo recebam o apk atualizado pelo fato de o antigo não ter uma nova funcionalidade.

Sempre que for disponibilizar uma versão da plataforma mobile (apk) em um fluxo, no xmova-center podem ter várias versões de build de plataforma. Use sempre a última versão de build. Exemplo, se estiverem disponíveis 1.6.0, 1.6.1 e 1.6.8, disponibilize a 1.6.8.

Suporte

Abaixo você encontrará mais informações para dar suporte a um aplicativo xMova.

Roteiros de Testes

Teste MultiFluxos

  • Sempre que for testar qualquer versão nova de APK, deve-se testar a funcionalidade de múltiplos fluxos.
  • Baixar aplicativo em uma versão de plataforma e tentar instalar o fluxo de outra versão de plataforma (Não deve permitir).
  • Instalar um aplicativo e tentar instalar outro com versão de plataforma diferente (Não deve permitir).
  • Verificar se a limpeza de fluxo não está corrompendo os outros. Instalar diferentes fluxos e limpar um deles, para verificar se somente o fluxo ativo é removido. Fazer isso com todos os fluxos instalados. Após cada remoção usar os fluxos que ficaram, criar apontamentos, fazer sync, com um boletim aberto sair do app (Menu Sair) e entrar novamente, etc.
  • Iniciar a instalação de um novo fluxo e desistir antes de concluir a instalação, clicando no botão voltar do device, para verificar na tela main se volta ao último fluxo ativo e se remove a instalação do fluxo que estava sendo instalado.
  • Testar o envio/recebimento de mensagens em diferentes fluxos e em fluxos que nao estejam ativos.
  • Realizar apontamentos offline nos fluxos instalados, depois voltar o aplicativo para online e verificar no painel se todos os apontamentos de todos os fluxos estão chegando.
  • Alterar a plataforma de um dos aplicativos instalados para uma plataforma diferente dos demais e tentar atualizar o aplicativo (Não deve permitir).
  • Alterar a plataforma de todos os aplicativos instalados para a mesma plataforma e atualizar o aplicativo.

Teste de Performance

  • Sempre que liberar um fluxo, deve-se testar a performance do fluxo com muitos apontamentos.
  • Criar 50 Boletins, com 50 apontamentos cada um. A performance não deve ser afetada.

Log Realtime

É possível acompanhar os logs de comunicação do mobile com o servidor em tempo real, acessando o painel xMova no xmova-server.

Envio de Log e Banco de Dados ao Suporte

Para enviar os logs e o banco de dados do celular, é necessário acessar o menu do aplicativo e selecionar a opção Enviar log ao suporte.

Esses dados são recebidos no servidor linux, na pasta /usr/share/tomcat7/data

O acesso a esse servidor é restrito ao pessoal do departamento do xMova, e os arquivos devem ser requisitados a eles.

O nome arquivo recebido possui a seguinte composição:

Data/hora do envio do arquivo + UID do celular que enviou + extensão .db

Exemplo: 2014-09-03_10-59-27_355445058115260.db

Instalar o Banco de Dados em outro celular

Para instalar o banco de dados em outro celular, é necessário conectá-lo ao computador e copiar o arquivo com extensão .db para a pasta Downloads/xmova

Após copiado para a pasta, renomeie o arquivo para simova-in.db

Ao iniciar o aplicativo novamente, abrirá com o banco de dados copiado.

Configuração do xmova-server para rodar no cliente

  • Java 7
  • Apache Tomcat 7
  • commons-lang3-3.1.jar (Deve ser copiado para a pasta de libs do Tomcat)

O war deve ser copiado da pasta de distribuições de produção que fica no servidor do Jenkins (ant-dist-prod), de acordo com a versão que está em uso no cliente. No fluxo deve ser colocado o atributo serverUrl com o endereço do server que está no cliente.

Endereços do xMova que devem ser liberados na rede

Para que o aplicativo mobile se comunique com o servidor, os seguintes endereços devem estar liberados na rede para o mobile:

  • xmova-server.simova.ws:80
  • xmova-center.simova.ws:80
  • gpg.tw:80

Para o servidor web do painel receber os dados do mobile, deve ser liberado o acesso externo à porta 80 para o DNS xmova-server.simova.ws. O tráfego será sob o protocolo HTTP.

Warning

Devem ser liberados sempre os hostnames, não apenas os IPs, pois os IPs podem mudar.

Protocolo de Comunicação

Quando o simova Apps precisa enviar ou receber dados para o servidor de terceiro (BoB-Agro/ConstruMobil), ele envia os dados para o xMovaServer, que então redireciona os dados para o servidor de terceiro.

No fluxo define-se a URL do servidor de terceiro para onde o xMovaServer enviará as informações. Se nessa URL for definido o protocolo HTTPS, a comunicação será sobre SSL, se for definido HTTP, será usado comunicação HTTP não segura.

Protocolo de Comunicação do xMova Android Nativo

Mobile - xMovaServer: Comunicação via HTTP pela porta 80, usando formato de dados binário próprio. xMovaServer - Servidor de Terceiro: Comunicação via HTTP pela porta 80, usando formato de dados JSON.

Protocolo de Comunicação do xMova Android JavaScript

Mobile - xMovaServer: Comunicação via HTTP pela porta 80, usando formato de dados JSON. xMovaServer - Servidor de Terceiro: Comunicação via HTTP pela porta 80, usando formato de dados JSON.

Arquitetura do Projeto

Os fontes são separados em vários projetos eclipse com objetivo de reuso de código entre os projetos, e reuso pela Simova.

Projetos

xMova Compiler

O xMova Compiler é o projeto onde está a lógica de parse e compilação de um modelo de aplicativo xMova (fluxo: app, model e lang).

xMova Compiler Shared

Constantes, tipos e classes básicas do projeto, usadas nos projetos JME, Android, Compiler, Server e Center.

Warning

Por ser usado para o JME deve ser escrito em Java 1.3.

xMova Java

É o Core do xMova. Possui classes que são usadas pelos projetos Android JME.

Warning

Por ser usado para o JME deve ser escrito em Java 1.3.

xMova Android

Projeto do app Android. Estende as classes do xMova Java.

xMova JME

Projeto do app JME. Estende as classes do xMova Java.

xMova Server

Projeto web responsável pela comunicação do mobile com servidores de terceiros. Busca informações nos servidores de terceiros e envia aos aplicativos móveis.

xMova Center

Projeto web centralizador dos fontes do xMova. Toda a compilação é feita nesse ambiente. Armazena os códigos fontes dos fluxos xMova em banco de dados MySql.

Simova Basic

Biblioteca de classes básicas Java para reuso pela empresa. .. warning:: Por ser usado para o JME deve ser escrito em Java 1.3.

Simova Java

Biblioteca de classes Java para reuso pela empresa.

Simova JavaEE

Biblioteca de classes JavaEE para reuso pela empresa.

Simova JavaME

Biblioteca de classes JavaME para reuso pela empresa.

xMova Doc

Projeto onde fica este documento que você está lendo.

Procedimentos para editar uma versão publicada do XMOVA

Caso seja necessário editar uma versão já publicada do XMOVA, é necessário fazer o checkout da versão desejada no SVN, seguindo os passos a seguir.

Warning

Caso as alterações sejam feitas em uma das classes do Compiler, ou Compiler Shared é necessário replicar a alteração e fazer a publicação do Center, Server e Android. Caso contrário só é necessária a publicação do projeto alterado.

Danger

As configurações dos projetos estão configuradas para produção, se for realizar testes devem ser alteradas para a configuração de teste.

xMova Android

Fazer o checkout da versão na tag correspondente:

URL SVN: http://192.168.0.20/svn/simova/Projetos/Mobile/xMova/xmova-android/tags

Configuração do Projeto:
  • Faça o checkout do projeto android-support-v7-appcompact, faça o clean/build e certifique-se de que o arquivo “android-support-v7-appcompat.jar” esteja dentro da pasta bin do projeto.
  • Faça o checkout do projeto android-support-v7-gridlayout, faça o clean/build e certifique-se de que o arquivo “android-support-v7-gridlayout.jar” esteja dentro da pasta bin do projeto.
  • Faça o checkout do projeto xmova-android
Em caso de testes:
  • Alterar arquivo “/xmova-android/xmova-android/xmova-java.properties” para as configurações de teste.
Publicação:
  • Antes de gerar o apk para publicação é necessário incrementar a versão no arquivo “xmova-android/AndroidManifest.xml” (Deve-se incrementar o version code e o version name).
  • Usar a chave para assinar o apk (Servidor: 192.168.0.21 - Caminho: D:\tools\sign\android-key).
  • Para enviar o APK para o servidor de produção, coloque-o na pasta pub do tomcat (Servidor: 192.168.0.21 - Caminho: D:\tools\tomcat7\webapps\pub)

URL para publicação do APK:

http://xmova-server.simova.ws/center{Versão*}/upload?v={Verão Completa**}

&apk=http://ci.simova.ws/pub/{Nome APK COM a biblioteca de codigo de barras}

&apk2=http://ci.simova.ws/pub/{Nome APK SEM a biblioteca de codigo de barras}

&apkJs=http://ci.simova.ws/pub/{Nome APK que executa o core em JavaScript}

&jar=http://ci.simova.ws/pub/download-jme.png

&jad=http://ci.simova.ws/pub/download-jme.png

  • Quando fizer o upload do apk, deve-se também fazer o upload do core do js com a mesma versão
  • Para enviar o arquivo do JS SOURCE para o servidor de produção, coloque-o na pasta pub do tomcat (Servidor: 192.168.0.21 - Caminho: D:\tools\tomcat7\webapps\pub)

URL para publicação do JS SOURCE:

http://xmova-server.simova.ws/center{Versão*}/uploadjssource?v={Versão Completa**}

&jssource=http://ci.simova.ws/pub/{Nome do arquivo do JS SOURCE}

*Versão: exemplo (1_32)

**Versão completa: exemplo (1.32.48)

xMova Center

Fazer o checkout da versão na tag correspondente:

URL: http://192.168.0.20/svn/simova/Projetos/Mobile/xMova/xmova-center/tags

Configuração do projeto:
  • Faça o checkout do projeto
Em caso de testes:
  • Alterar arquivo “center{Versão}/WebContent/META-INF/context.xml” para usar as configurações de teste.
  • Alterar arquivo “center{Versão}/src/config.properties” para usar as configurações de teste.
Publicação:
  • Gerar o war atualizado e substituir o arquivo no tomcat de produção.

xMova Server

Fazer o checkout da versão na tag correspondente:

URL: http://192.168.0.20/svn/simova/Projetos/Mobile/xMova/xmova-server/tags

Configuração do projeto:
  • Faça o checkout do projeto
Em caso de testes:
  • Alterar arquivo “server{Versão}/src/config.properties” para usar as configurações de teste.
Publicação:
  • Gerar o war atualizado e substituir o arquivo no tomcat de produção.