Personalizando o Client Magic RIA para Android®

Personalizando o Client Magic xpa RIA para Android®

Publicamos neste post do Blog Magic, as dicas de como instalar o client Android® para aplicações RIA.

Todos os clients RIA do Magic xpa, independente de qual plataforma estejamos, ou qual aplicação queremos fazer, tem sempre a mesma funcionalidade: conectar no Magic RIA Server, baixar as tarefas e os dados, e executá-las no lado client (do usuário). Por isso, ele é sempre o mesmo, tem sempre o mesmo tamanho e só precisa ser atualizado quando mudamos a versão do Magic RIA Server (ex: de 2.1 para 2.2, etc…).

E é por isso também, que o Magic xpa disponibiliza os clients para Windows, Windows Mobile e Android (para iOS e BlackBerry,é necessários compilar um na hora do deployment) na instalação.

Pois bem. Nos clients Windows e Windows Mobile, a aparência da interface para o usuário pode ser personalizada fora do pacote executável (MgxpaRIA.exe ou MgxpaRIAMobile_cf20.exe). Já para o Android®, isso fica fixo (compilado dentro do pacote .APK). Por isso que quando utilizamos o client padrão (Dev.APK), ícones, telas de fundo iniciais e nome da app ficam sempre os mesmos, com o marca do Magic xpa.

Então agora, vamos ver os passos para criar um client Android® com a nossa “cara”.

Usaremos o Magic xpa 2.2 para isso. Ele esta disponível no site de downloads oficiais da MSE.

Mesmo que não venhamos a utilizar os simuladores do Android®, o Android SDK é necessário estar instalado na máquina de desenvolvimento:

Como ele é baseado no Java, talvez você necessite também baixar e instalar o JDK antes (caso já não o possua na máquina). O JDK está disponível no site da Oracle:

(NOTA: opte pelo Java 32 bits)

Concluída a instalação do Android SDK, estarão disponíveis dois utilitários:

SDK Manager

É onde você controla quais pacotes/versões do SDK para  Android deseja baixar e instalar:

Você pode baixar todos, ou somente aqueles que lhe interessam. Neste ponto, é importante observar os requisitos de versões do RIA Android do Magic xpa:

Para SmartPhones: Android 2.3.3 (ou +)

Para Tablets: Android 3.2 (ou +)

O documento “RIA for Mobile Devices.pdf” do Magic xpa (instalado na pasta Support) tem mais detalhes sobre isto.

(NOTA: o download e instalação destes pacotes podem demorar várias horas)

AVD Manager

Não é necessário se você vai testar seu desenvolvimento em SmartPhones reais. Mas é claro que é muito melhor e mais versátil usar os emuladores, ao invés de recorrer a dispositivos diferentes (vários modelos estão disponíveis) para poder avaliar várias opções.

Com o SDK devidamente instalado, este utilitário é usado para criar as máquinas virtuais (emuladores) Android:

É possível criar várias VMs (emuladores), de versões diferentes inclusive. Dependendo da versão escolhida, irá variar a interface do usuário, tamanho da tela e recursos disponíveis.

Concluída estas etapas, você já possui um ambiente de desenvolvimento Android, através de emuladores:

 

(NOTA: o emuladores tem acesso normal à internet, através da conexão disponível na máquina ‘host’. Para acessar um webServer da própria máquina ‘host’, o endereço padrão de servidor é 10.0.2.2 [equivale ao ‘localhost’ ou ‘127.0.0.1’ da máquina ‘host’])

Para mais detalhes sobre a manipulação da interface dos emuladores Android, você pode pesquisar na internet.

Ok, passemos agora para a “personalização”.

Primeiro, por questões de segurança, vamos fazer um cópia da pasta que contém o código fonte do pacote .APK do Client RIA para Android:

A “aparência” da aplicação no dispositivo (ou emulador) é definida por várias imagens na pasta “RIAModules\Android\Source\res”. Neste exemplo vamos apenas adicionar a bandeira do Brasil na imagem oficial, para mostrar alguma diferença:

Respeite o formato e dimensões das imagens, mas pode mudar seu conteúdo à vontade.

(NOTA: Este logo não é oficial da Magic Brasil).

Na pasta “Source”, temos de editar 2 arquivos:

settings.properties

 

Definimos aqui:

  • Onde o Android SDK está instalado (sdk.dir).
  • Qual versão mínima de Android requerida (target).“android-10” significa Android2.3.3(respeite os limites mínimos do produto).
  • Tipo e versão da nossa aplicação (client.title, client.version.code e client.version.name).
  • Nome interno do nosso pacote (.APK) dentro do Android(package.name).
  • Localização do certificado digital necessário para assinar o pacote (.APK), já que isso é obrigatório (key.store, key.store.password, key.alias e key.alias.password). Existe um certificado padrão distribuído com o Magic xpa (test.keystore), mas se tiver outro e quiser utilizá-lo, pode fazê-lo.

execution.properties

Aqui, temos 3 opções:

  • Informar de forma “fixa” uma URL (key=”URL”) onde o client deverá baixar o TXT que define a localização do RIA Server. A informação deve ser colocada, entre aspas, no atributo val=””.
  • Informar de forma “fixa” todos os detalhes de conexão com RIA Server(key=”_protocol”, key=”_server”, key=”_requester”, key=”_appname”, key=”_prgname”). As informações devem ser colocadas, entre aspas, nos atributos val=””.
  • Ou, como fizemos neste exemplo, deixar tudo em branco (atributo val=””) para que o client pergunte ao usuário pela URL do TXT de informações de localização do RIA Server, no primeiro acesso.

Ok.

Isso feito, devemos entrar no prompt do DOS (cmd.exe) e ir até a pasta “RIAModules\Android\Source”. Lá devemos executar o programa “build.cmd” e aguardar a compilação do nosso pacote:

(NOTA: Isso pode demorar um pouco. A compilação é feita com o ANT)

Será criada uma pasta “output” e lá está nosso novo .APK:

Pronto!

Daqui em diante é só colocar este .APK debaixo do nosso webServer (acessível por um webAlias de sua escolha):

e repetir os passos de deployment descritos neste post anterior:

Viu como é simples?

E lembrando: o princípio de execução é o mesmo: ao acionar este módulo (nativo do SO), ele entra em comunicação com o Magic xpa RIA Server (via HTTP) para transferir os dados e as regras de negócio.

(NOTA: Está previsto no “Road Map” do Magic xpa Studio, wizards que automatizem estes processos. Aguardemos J).

 

Manoel Frederico - Gerente de Produto e Magic Evangelista

Manoel Frederico – Gerente de Produto e Magic Evangelista

 

Comentários1 Comment

  1. Não está descrito no ‘post’, mas:

    * Android SDK Tools
    * Android SDK Platforms-Tools

    também são pré-requisitos a ser instalados, para poder compilar o RIA Android Magic (para qualquer aplicativo Android, na verdade)

Novo Comentário