Cordova — desenvolvendo aplicativos sem tanta complicação

André Terceiro
4 min readMay 27, 2022

Cordova

O mundo do desenvolvimento para celular surgiu com Apple e Google (depois do Symbian e outros) cada um fazendo o seu. Aí não era tão simples fazer uma coisa única ou ter uma equipe que entendia de Java, Objective-C (depois Kotlin e Swift) e das outras plataformas.

O que o Cordova usa? Mesma coisa que usa para fazer um site, HTML, CSS e JavaScript.

Antigamente surgiu o Phonegap com a seguinte ideia: ok, o interno de cada sistema é diferente, mas todos tem um componente de renderizar conteúdo web, chamado de Webview. Então “eu” usar a webview, será tetra.

Veja, antigamente (não estou dizendo que tais soluções são velhas e ultrapassadas) você tinha outras coisas como o App Accelerator também.

Com o tempo a Adobe comprou o projeto do PhoneGap e passou a o chamar de Cordova. O doou à Apache Fundation e por isto tamém poderá ouvir o termo “Apache Cordova”.

A Adobe tinha o Phonegap Build, uma ferramenta via web que você poderia usar para gerar um aplicativo. Sem precisar ter o Cordova instalado.

O Cordova obviamente não é a única alternativa para desenvolver um app híbrido. O Flutter, o React Native e o Xamarim são alternativas, tendo diferenças conceituais (como a geração de aplicativos nativos através da conversão de código e a linguagem usada, como o Dart para Flutter e a plataforma Microsoft para o Xamarim).

Hoje em dia usar o Cordova é bem simples. E a respeito de um blá blá blá de desempenho, já fiz app comercial usando websocket (client), API Rest (client) e streaming (client) e não tive problemas de desempenho, Claro que não é um jogo 3D de última geração, mas o que quero dizer é que em boa parte dos casos o desempenho não será um problema para ti. Não sou só eu que estou dizendo. Se na Google Play o aplicativo tem mais de 4 estrelas, bem, ruim não está. Não vou colocar um print aqui porque quero evitar algum problema que eu não prevejo, depois aparece a notificação de um processo…

Execute a instalação do Cordova:

$ npm install -g cordova

Crie o projeto:

$ cordova new hello-world

Entre no diretório criado.

$ cd hello-world

O Cordova entrega o resultado para iOS, Android etc. As plataformas disponíveis são vistas executando o comando abaixo na raiz do diretório do projeto

$ cordova platform

Ok, mas não é porque a plataforma está disponível que ela é instalada por padrão. Não é. Vou adicionar uma plataforma com o comando abaixo para ver o resultado no navegador:

$ cordova platform add browser

Execute o comando abaixo, para abrir um navegador:

$ cordova run browser

Ok, mas eu quero desenvolver para uma plataforma específica. Ok, adicione a plataforma, por exemplo com os comandos abaixo:

$ cordova platform add android

$ cordova platform add ios

E se eu quiser personalizar algo para a plataforma? Pode sim, veja a documentação abaixo:

Quero um exemplo de alteração! Ok, edite o www/index.html. Tendo conhecimento de “web” já entenderá. Para testar só coloquei o “wow” no final da linha abaixo:

<p class=”event received”>Device is Ready wow</p>

Rode novamente o comando abaixo e verá a diferença:

$ cordova run browser

Ok, mas não dá para acessar coisas internas do dispositivo, fazer um “toast” nativo do Android por exemplo… Dá sim, o Cordova resolve isto através de plugins. O plugin faz o lado do “código da plataforma” e te fornece uma forma de você acionar via JavaScript. Ninja, né? Veja um exemplo de plugin abaixo:

Veja a documentação da parte de plugins para detalhes por favor:

https://cordova.apache.org/docs/en/11.x/guide/cli/

Tem detalhes que são específicos de cada plataforma e terá que personalizar. Em um aplicativo simples provavelmente não terá que fazer isto.

Uma coisa que aprendi naquele App que falei acima: em Androids abaixo de 4, a webview não é tão bacana. Como eu resolvi? Com o Crosswalk:

https://github.com/crosswalk-project/cordova-plugin-crosswalk-webview

Este projeto não é atualizado mais, não sei o motivo, possivelmente porque não tem mais o que fazer e com o tempo nem será necessário mais.

E como saber quanto da minha base de usuários usa que versão do Android? Parece besta, mas pode usar o Google Analytics para isto :)

Se for me perguntado o que escolher para uma solução de aplicativo híbrido para celular, eu escolherei Cordova, não tenho nada contra nenhuma outra, já fiz aplicativo com Flutter e nativo Java por exemplo, mas Cordova se encaixa mais com minha produtividade.

Bem, é isto :)

--

--