Stefan Horochovec
Possuo 20 anos de experiência no desenvolvimento de soluções web. Nos últimos 10 anos tenho atuado como Arquiteto de Soluções auxiliando empresas a desenvolver projetos para nuvem com um grande foco em Java EE como tecnologia voltada ao backend, Angular e React voltada ao frontend e Flutter voltado ao desenvolvimento móvel. Com relação a plataformas na nuvem, atuo com projetos consumindo serviços da AWS, Azure, e GCP.

AIR — Criando uma aplicação com atualização automática — Parte III

Na última parte do artigo, a última configuração que deve ser feita dentro do projeto, é que dentro da pasta src, você deve criar um arquivo chamado update-config.xml. Esse arquivo irá conter as informações de como o processo de atualização deve se comportar.

http://www.seusite.com.br/air/update-config.xml
1

Todas as opções foram marcadas como true, para que você possa acompanhar todas as etapas do processo.

A partir deste momento, o trabalho fica todo por conta do Flex. Não há mais necessidade de você se preocupar com nada. Ele será responsável por fazer a verificação, sugerir ou não o download, e caso o usuário opte por baixar a aplicação, ainda irá sou salva-lá em seu HD, ou atualizar automaticamente a aplicação. Fácil não é?

Mas como ele sabe que existe uma nova versão para ser baixada?

Através de um arquivo XML que deverá ser publicado no servidor na mesma URL foi informada na propriedade URL do objeto autoUpdater.

Vamos dar uma conferida em como deve ser esse XML para que o autoUpdater possa fazer as verificações necessárias.

1.1  
http://www.seusite.com.br/air/AIRAutoUpdate1-1.air
v1.1
* Adicionado novos feeds para leitura
]]>

Simples não é? Poucas informações são necessárias para que a atualização ocorra. Você deve informar apenas a versão da aplicação que deverá ser atualizada. Ou seja, minha primeira compilação da primeira versão do projeto era 1.0, a próxima versão, ela foi compilada como 1.1, então é essa versão que eu devo passar para o update-config.xml.

Depois, devo informar a URL que está o arquivo que deverá ser feito o download para a atualização. E por ultimo, posso descrever quais foram as alterações na versão que geraram a nova atualização.

Dessa forma, quando iniciarmos a aplicação, o aplicativo irá ler esse XML, verificará que existe uma nova versão disponível, e irá inicializar o processo de atualização.

De uma forma simples assim, você não precisará mais se preocupar com atualizadores ou em informar seu cliente que existe uma nova versão para o sistema. Deixe o AIR trabalhar um pouco por você!

Com os códigos informados acima, temos a primeira versão do sistema completa, exceto o XML de atualização, que só deve ser publicado quando houver uma nova versão. Abaixo, seguem os fontes para a versão 1.1 do projeto. Esses sem comentários adicionais, já que o intuito do artigo era apenas explicar como é feita a atualização de forma automática em aplicações em AIR.

AIRAutoUpdate-app.xml

AIRAutoUpdate
1.1
AIRAutoUpdate
AIRAutoUpdate - Tutorial IMasters
Horochovec/AIR/AIRAutoUpdate
Horochovec/AIR/AIRAutoUpdate
Exemplo de app que faz sua atualização automática
Stefan Horochovec (stefan@horochovec.com.br)

AIRAutoUpdate
AIRAutoUpdate.swf
none
true
true
true
false
false

Posts.mxml

xmlns:mx="http://www.adobe.com/2006/mxml" 
layout="absolute"
width="500"
height="250"
showCloseButton="true"
creationComplete="creationCompleteHandler(event);"
close="onCloseHandler(event);"
title="Feeds Imasters - Seção Flex">



import flash.desktop.NativeApplication;
import mx.events.CloseEvent;
import mx.events.FlexEvent;
import mx.rpc.events.ResultEvent;

/**
* Dataprovider do grid
*/
private var xmlList : XMLList;

/**
* Evento disparado na finalização da construção do componente
* Responsavel por iniciar o HTTPService para leitura do feed
*/
private function creationCompleteHandler(event:FlexEvent) : void
{
this.service.send();
}

/**
* Evento disparado no termino com sucesso da leitura do HTTPService
* Responsavel por adicionar ao grid o dataProvider
*/
private function serviceHandler(event:ResultEvent) : void
{
var result : XML = new XML(event.result);
xmlList = result..item;
this.grid.dataProvider = xmlList;
}

/**
* Evento disparado no fechar da TitleWindow, ele é responsável por fechar a aplicação
*/
private function onCloseHandler(event:CloseEvent) : void
{
NativeApplication.nativeApplication.exit();
}

/**
* Quando ocorrer um click no grid, o botao para abrir o link do post
* sera habilitado, e coloca os textos para os componentes do autor
* e descrição do post
*/
private function onClickGridHandler(event:MouseEvent) : void
{
this.btnLink.visible = true;
this.autor.text = ((this.grid.selectedItem) as Object)['author'];
this.descricao.text = ((this.grid.selectedItem) as Object)['description'];
}

/**
* Click do botao para visualizar o artigo
*/
private function onBtnLinkClickHandler(event:MouseEvent) : void
{
navigateToURL(new URLRequest(((this.grid.selectedItem) as Object)['guid'].toString()), "_blank");
}

]]>


showBusyCursor="true" resultFormat="e4x"
result="serviceHandler(event)"/>


bottom="5" left="5" right="5" top="5"
height="50%" width="100%"
click="onClickGridHandler(event);">







borderStyle="none" selectable="false" mouseFocusEnabled="false"
mouseEnabled="false"/>
id="btnLink" click="onBtnLinkClickHandler(event);"/>

Espero ter ficado claro o processo de atualização automática no AIR.

Abraços a todos.

Share

You may also like...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *