1- O Boonzi está em captive. Não dependemos do Air, e nenhum dos nossos
clientes vê sequer a palavra "Adobe"
2- Antigamente usávamos um install wizard qualquer (installshield? não
me recordo), mas tinha a desvantagem do user ter que descarregar 30Mb na
sua primeira interacção connosco. Too much.
3- Cagamos no wizard, e fizemos uma aplicação ranhosa em C que ocupa uns
500kb em cima do NSIS, que o que faz é:
3.1- Vai ao servidor ver qual é a versão mais recente (sacando o nosso
changelog)
3.2- Saca a versão mais recente (é um ZIP), descomprime para a pasta
correcta, e arranca o Boonzi
3.3- Em Air, temos um serviço que vai de vez em quanto ao servidor ver
se há uma versão mais recente. Se houver, saca-a em background, e depois
do utilizador autorizar 3.3.1 O Boonzi arranca o nullsoft installer
3.3.2 o Boonzi fecha-se 3.3.3 o Nullsoft installer detecta que há uma
versão nova em cache no disco e nem sequer vai ao servidor. Grava-a e
arranca o Boonzi
3.4- Em Mac usamos uma aplicação qualquer (paga) para fazer um wrapper
ao Air
Isto deu algum trabalho a montar, mas simplifica *muito* uma release:
1- No Idea, geramos a release.
2- Depois assinamos o .exe (para nos livrarmos dos avisos do Windows)
3- Apagamos uns ficheiros da release (webkit, p. ex) para que a
aplicação fique a ocupar uns 15Mb, e comprimimos num ZIP que tem o nº de
versão no nome.
4- Depois alteramos o changelog colocando o novo numero de versão e
enviamos tudo para o servidor. Pronto, release feita.
Uma release é basicamente colocar um zip no servidor, e alterar o nº de
versão no changelog.
Depois o que acontece, é que o Boonzi detecta a nova versão, e faz os
passos acima. Simples.
Em termos de espaço:
1- installer: boonzi-setup.exe: uns 600kb
2- pacote de update: uns 15Mb
A unica desvantagem é que alguns anti-virus (i.e. McAffee) não gostam
muito do NSIS, e volta e meia temos alguns clientes a queixarem-se que o
installer tem vírus. Depois lá tenho que enviar email à McAfee, que
resolve o problema por 15 dias... Face a todas as vantagens acima (para
o end-user, e para o development), compensa viver debaixo do fascismo da
McAfee. :o)
JS
On 23/02/2017 13:01, Hugo Ferreira wrote:
Isto veio tudo à baila porque passou a existir (em beta) o AIR de
Windos para 64 bits como já havia à anos para Mac mas só suportado em
captive runtime.
Existem vários casos de aplicações com uso intensivo que precisam de
consumir muito memória e não faz sentido o hardware de hoje em dia ter
essa disponibilidade mas o software limitar.
No dia 23 de fevereiro de 2017 às 12:55, Hugo Ferreira
<[email protected] <mailto:[email protected]>> escreveu:
João,
Isso na realidade já é suportado à algum tempo na generalidade das
Apps, ou seja, é um problema já resolvido na própria loja (pelo
menos para Android) e existem ANEs para ajudar nesse processo para
o caso de Apps em AIR mobile.
Ai o problema já se encontra resolvido e sinceramente acho que
para mobile não me importo que a App ocupe mais uns 20 MB e acho
que não vale o esforço (no entanto acho muito útil para jogos com
centenas de MB).
Aqui o que estamos a falar é do AIR para Windows (fora de uma
loja) que pode ter updates muito regulares e o ambiente desktop é
diferente do mobile.
Seja como for a solução há de ser semelhante, ou seja, partir em 2.
No dia 23 de fevereiro de 2017 às 12:49, João Fernandes
<[email protected]
<mailto:[email protected]>> escreveu:
O tamanho inicial, esse será sempre complicado diminuir no
entanto a PlayStore tem otimizado o processo de deploy de
updates e acho que já está em produção o sistema que na
realidade só obriga a descarregar os deltas entre as versões o
que diminui bastante o download dos upgrades.
2017-02-23 12:40 GMT+00:00 Hugo Ferreira
<[email protected] <mailto:[email protected]>>:
Exatamente como descreveste. Faço updates quase todas as
semanas desde à bastante tempo entre Windows e Macs.
Compilas em AIR e apenas atualizas o ficheiro AIR no
servidor e no ficheiro xml que está ao lado, atualizas o
número da versão (que serve para a framework comparar e
decidir se necessita ou não de atualizar) e não tens de
fazer mais nada.
Como é só o AIR (a tua App, o upload é muito rápido e o
download depois também).
É super prático, não envolve quase nenhum código e
funciona bem muito (até em Linux funciona).
A grande desvantagem é que a primeira instalação em
Windows por vezes pode dar raia se a máquina do cliente
tiver problemas nos registos, tal como acontece com
qualquer outro instalador mas uma vez instalado, nunca
mais tem problemas (os updates são internos da App, não
envolve o registry).
Uma desvantagem é que a framework de update demonstra bem
que é AIR na janela de update e assim dá um aspeto um
pouco menos profissional mas isso é só para nós. Os
utilizadores não fazem a mínima ideia e gostam que seja
tudo automatico, simples e rápido.
Esta lib que mencionei no e-mail anterior "pareçe" ser uma
cópia opensource da framework de updates do AIR SDK mas
redesenhado para captive runtime, permitindo no xml
indicares mais do que um ficheiro (exe, dmg, etc ...) e
segundo o autor copia por cima o exe (no caso do windows),
encerra e reabre (tenho de testar porque não deve ser bem
assim, pois o exe está em uso, devo usar um outro
processo). No caso de dmg (Mac), é o processo normal de
instalação de um dmg (mais chato do que usando AIR mas
também mais profissional).
Como a lib se aproxima ao AIR SDK, fiquei com a impressão
que a mudança deverá ser relativamente trivial para nós.
O chato é aumentar em muito o tamanho dos ficheiros e
demorar mais o downlaod para o cliente.
Quando tiver tempo poderei resolver isto mas vai envolver
algum código, ou seja, ter 2 packages (o primeiro com o
AIR + aplicação de update que eventualmente também poderá
ser atualizado e outro só com a App).
No dia 23 de fevereiro de 2017 às 12:28, Rui Cruz
<[email protected] <mailto:[email protected]>>
escreveu:
Acho que já uso esse (ou semelhante ou alterei) para
umas apps internas da empresa (mas sem
captive-runtime), e funciona bem.. no final de fazer o
download do instalador, executa o instalador e
fecha-se. depois ao abrir ja está actualizado..
No dia 22 de fevereiro de 2017 às 22:10, Hugo Ferreira
<[email protected]
<mailto:[email protected]>> escreveu:
Foi aqui que encontrei:
https://code.google.com/archive/p/nativeapplicationupdater/
<https://code.google.com/archive/p/nativeapplicationupdater/>
Isto parece que foi baseado no updater que vem com
o AIR.
No dia 22 de fevereiro de 2017 às 18:17, Hugo
Ferreira <[email protected]
<mailto:[email protected]>> escreveu:
Rui,
Já deparei com alguns casos (muito raros) de
utilizadores que não conseguem fazer a
primeria instalação da minha aplicação porque
fazem do Windows um autentico balde de lixo
com muitos anos sem nunca ter sido formatado.
Outros cenários (com pouca frequência mas
acontece) é não conseguirem instalar porque o
Windows 10 barra.
Apesar de captiva runtime aumentar o tamanho
da App, vou me livrar destes problemas e dar
uma experiência melhor, por isso agora a
adicionar os 64 bits, era a motivação que
precisava para fazer a mudança.
Acabei de ler um mecanismo de atualização que
parece que é feito da mesma forma que eu faço
hoje em dia mas com opções adicionais (que
desconhecia) que permitem encaminhar para um
ficheiro no servidor exe ou dmg em vez de air
e no caso do exe irá substituir por cima e
arrancar e no caso do dmg irá instalar por
cima (mais chato mas é mesmo assim).
Se funcionar partilho mas ainda tenho de validar.
Cumprimentos,
Hugo.
No dia 22 de fevereiro de 2017 às 18:11, Rui
Cruz <[email protected]
<mailto:[email protected]>> escreveu:
Boas Hugo,
Também gostaria de saber mais acerca desse
tópico.. de momento não tenho experiência
com runtime captive, se puderes
experimentar, vai reportando as tuas
considerações!
Sei que o Feathers SDK installer
https://github.com/BowlerHatLLC/feathers-sdk-manager
<https://github.com/BowlerHatLLC/feathers-sdk-manager>,
usa um instalador externo para win/mac.
Mas acredito que hajam soluções mais
amigáveis..
Cumprimentos :)
No dia 22 de fevereiro de 2017 às 17:58,
Hugo Ferreira <[email protected]
<mailto:[email protected]>> escreveu:
Boa tarde pessoal,
Atualmente utilizo shared runtime para
uma aplicação desktop minha.
As vantagens da opção captiva runtime são:
- 0 problemas de instalação;
- 0 conflitos entre versões do runtime
(apesar de isto ser improvável).
As vantagens da opção shared runtime são:
- Compilar no meu Mac e correr em todo
o lado (não tenho de ir a uma máquina
Windows e compilar novamente):
- Updates mais pequenos/rápidos (é
apenas a minha App e não o runtime
repetidamente);
- Funciona em Linux (se quiseres
suportar - menos importante mas possível);
- Posso usar a framework de updates do
Flex SDK que simplesmente funciona e
muito bem, com poucas linhas de código.
Caso alguém utiliza AIR captiva
runtime para desktop, como é que lidam
com os updates na vossa aplicação ?
Queria algo simples de implementar
(simples é melhor).
Porquê de agora considerar alterar ?
Porque acabou de saír a versão (em
beta) do AIR para Windows com suporte
a 64 bits e foi indicado que ficará só
suportado na versão captiva runtime.
Dá para perceber porque assim fintaram
já uma série de problemas de instalação.
Cumprimentos a todos,
Hugo.
--
Recebeu esta mensagem porque
subscreveu ao grupo "Mailing List da
Comunidade Portuguesa de Rich Internet
Applications - www.riapt.org
<http://www.riapt.org>" do Grupos do
Google.
Para anular a subscrição deste grupo e
parar de receber emails do mesmo,
envie um email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste
grupo, envie um email para
[email protected]
<mailto:[email protected]>.
Visite este grupo em
https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite
https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Recebeu esta mensagem porque subscreveu ao
grupo "Mailing List da Comunidade
Portuguesa de Rich Internet Applications -
www.riapt.org <http://www.riapt.org>" do
Grupos do Google.
Para anular a subscrição deste grupo e
parar de receber emails do mesmo, envie um
email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo,
envie um email para [email protected]
<mailto:[email protected]>.
Visite este grupo em
https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite
https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Recebeu esta mensagem porque subscreveu ao grupo
"Mailing List da Comunidade Portuguesa de Rich
Internet Applications - www.riapt.org
<http://www.riapt.org>" do Grupos do Google.
Para anular a subscrição deste grupo e parar de
receber emails do mesmo, envie um email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo, envie um
email para [email protected]
<mailto:[email protected]>.
Visite este grupo em
https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite
https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Recebeu esta mensagem porque subscreveu ao grupo
"Mailing List da Comunidade Portuguesa de Rich
Internet Applications - www.riapt.org
<http://www.riapt.org>" do Grupos do Google.
Para anular a subscrição deste grupo e parar de
receber emails do mesmo, envie um email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo, envie um email
para [email protected]
<mailto:[email protected]>.
Visite este grupo em
https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite
https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Recebeu esta mensagem porque subscreveu ao grupo "Mailing
List da Comunidade Portuguesa de Rich Internet
Applications - www.riapt.org <http://www.riapt.org>" do
Grupos do Google.
Para anular a subscrição deste grupo e parar de receber
emails do mesmo, envie um email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo, envie um email
para [email protected] <mailto:[email protected]>.
Visite este grupo em https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite
https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
João Fernandes
--
Recebeu esta mensagem porque subscreveu ao grupo "Mailing List
da Comunidade Portuguesa de Rich Internet Applications -
www.riapt.org <http://www.riapt.org>" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails
do mesmo, envie um email para
[email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo, envie um email para
[email protected] <mailto:[email protected]>.
Visite este grupo em https://groups.google.com/group/riapt
<https://groups.google.com/group/riapt>.
Para mais opções, visite https://groups.google.com/d/optout
<https://groups.google.com/d/optout>.
--
Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do
mesmo, envie um email para [email protected]
<mailto:[email protected]>.
Para publicar uma mensagem neste grupo, envie um email para
[email protected] <mailto:[email protected]>.
Visite este grupo em https://groups.google.com/group/riapt.
Para mais opções, visite https://groups.google.com/d/optout.
--
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie
um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para
[email protected].
Visite este grupo em https://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/d/optout.