Distribuindo Seus Apps

Temos o aplicativo pronto, mas falta saber como fazemos para distribuir o treco. Neste capítulo veremos como distribuir o seu aplicativo fora do Firefox Marketplace. Como vimos na Introdução, a Mozilla não tenta impedir sua liberdade de maneira nenhuma. Portanto, podemos distribuir nossas criações como acharmos melhor.

Essa parte de distribuição fora do Firefox Marketplace faz mais sentido (na minha opinião) para aplicativos de interesse segmentado, como por exemplo:

 1 1. para utilização interna em empresas ou somente para os seus clientes. Aplic\
 2 ativos no marketplace estão disponíveis para qualquer um baixar ou comprar. A \
 3 única maneira de um app que está no marketplace restringir a utilização é com \
 4 algum sistema de usuários dentro do app (e mantido por um backend), como é o c\
 5 aso de apps como o *Evernote*, que pede uma conta do seu próprio sistema para \
 6 utilização. 
 7 
 8 2. Outro caso onde faz sentido uma distribuição fora do Marketplace é quando v\
 9 ocê já tem um canal de marketing montado e é capaz de atingir um grande número\
10  de pessoas independente do mercadinho. Por exemplo, se um site como o *Jovem \
11 Nerd* faz um app para Firefox OS, faz sentido distribuir o app no próprio site\
12  (além de distribuir também no marketplace).

O processo de distribuição de aplicativos hospedados e empacotados é semelhante, porém com chamadas a funções diferentes – por isso vou mostrá-los separadamente. Independente do fato de seu app ser hospedado ou empacotado, você deve criar um botão ou página que execute a chamada de instalação. Isso pode ser um botão tipo Instale o Nosso App ou um endereço especial que, quando aberto, causa a execução da rotina de instalação. Ao executar as chamadas de instalação, o Firefox OS pergunta para o usuário se ele deseja instalar o app ou não. Portanto, não tem como instalar um app sem a confirmação do mesmo.

Aplicativos hospedados

Rotina para instalação de uma app hospedada


1 var installapp = navigator.mozApps.install(manifestURL);
2 installapp.onsuccess = function(data) {
3   // A App foi instalada
4 };
5 installapp.onerror = function() {
6  // A App não foi instalada, informações em 
7  // installapp.error.name
8 };

No exemplo acima, manifestURL deve conter o endereço do arquivo de manifesto. Ao executar essa rotina o Firefox OS pede para o usuário confirmar a instalação do app e, dependendo da ação do mesmo, o callback de erro ou de sucesso é chamado.

Para maiores informações sobre essas rotinas veja a página na MDN sobre instalação de aplicativos.

Aplicativos empacotados

A instalação de aplicativos empacotados é bem semelhante, porém, em vez de chamar mozApps.install(), devemos chamar mozApps.installPackage(), como podemos ver no exemplo abaixo.

Rotina para instalação de uma app empacotado


1 var packageURL = "http://myapp.example.com/myapp.zip"; // <-- absolute url to \
2 package
3 var installapp = navigator.mozApps.installPackage(packageURL);

Perigo: Eu tenho a impressão de que a instalação de apps empacotados fora do marketplace ainda não é possível na versão 1.0.1 do Firefox OS. Por mais que a API esteja documentada, acho que ela ainda não foi totalmente implementada. Eu nunca testei. Aviso dado. Se funcionar, me manda email para eu atualizar o livro.

Conclusão

Vimos rapidamente como é realizada a instalação de um aplicativo fora do Firefox Marketplace através das rotinas de instalação e gerenciamento de Open Web Apps. Existem várias outras rotinas, por exemplo, para detectar se a app está instalada ou não (assim você pode esconder o botão de instalar se a app já está instalada). Para saber mais sobre essas rotinas não deixe de ver a página na MDN sobre instalação de aplicativos (eu já falei isso nesse capítulo, dessa vez clique no link! Tem coisas importantes nele).

No próximo capítulo vamos ver como distribuir seu app no Firefox Marketplace.