Como instalar e testar
Android
- Clone este projeto
git clone https://github.com/jfoclpf/form-for-parking-violation - Entre na pasta recém criada
cd form-for-parking-violation - Adicione a plataforma
cordova platform add android - Corra
cordova build androidpara construir o projeto na sua máquina. Em Android cria o ficheiro APK na pastaplatforms/android/build/outputs/apk
iOS
git clone https://github.com/jfoclpf/form-for-parking-violation.git
cd form-for-parking-violation
cordova platform add ios
open platforms/ios/Denúncia\ Estacionamento.xcworkspace/
Requisitos
Todas estas instruções estão otimizadas para uma máquina Ubuntu. É possível instalar noutras máquinas, mas as instruções terão de ser adaptadas em conformidade.
Node JS
O projeto necessita de alguns pacotes npm, sendo que o npm vem instalado com o nodejs. Alguns scripts do projeto também fazem uso do nodejs.
Apache Cordova
Este projeto faz uso de Apache Cordova para converter código HTML5 e Javascript para uma aplicação de dispositivo móvel, como Android ou iOS. Precisa, portanto, de ter Apache Cordova instalado na sua máquina.
[sudo] npm install -g cordova
Gradle
O gradle é usado para fazer o build dos projetos Apache Cordova. Instruções de instalação aqui.
Java
É uma exigência do Apache Cordova a instalação do Java (precisamos de várias versões)
sudo apt install openjdk-8-jdk openjdk-17-jdk openjdk-21-jdk
ADB
O ADB é usado para testar a APP no seu telemóvel Android
sudo apt install adb
sdkmanager
Preciamos apenas dos CMD line tools, descarregar aqui, e instalar em
/usr/lib/android-sdk/cmdline-tools/latest
Devemos ter ambas as diretorias bin/ e lib/ em $ANDROID_SDK_ROOT/cmdline-tools/latest/:
$ ls /usr/lib/android-sdk/cmdline-tools/latest/
bin lib NOTICE.txt source.properties
Variáveis do sistema
O ficheiro ~/.profile ou ~/.bashrc deve conter estas linhas:
# Android SDK
export ANDROID_SDK_ROOT=/usr/lib/android-sdk
export ANDROID_HOME=/usr/lib/android-sdk
PATH="$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools"
Eventuais problemas
Java
Um problema comum pode estar relacionado com as versões do Java. Para saber a versão corra java -version e javac -version (compilador).
Em Debian/Ubuntu para escolher a versão correta, corra sudo update-alternatives --config javac.
Edite também a variável JAVA_HOME em conformidade com a versão pretendida.
Gradle
O gradle é um executor de tarefas de compilação e é instalado aquando de cordova build. Pode dar problemas nesse comando (erro: Could not determine java version from 'x.x.x'). O gradle pode envolver diferentes versões:
- a versão global:
gradle -v - a versão local do project (wrapper):
./platforms/android/gradlew -v
Tal pode dar problemas porque diferentes versões de gradle dependem de diferentes versões de java. Verificar a variável JAVA_HOME com echo $JAVA_HOME. Para resolver o problema mudar esta variável e associá-la a outras versões de java, por exemplo:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/ ou
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131/ ou
mesmo apagar com export JAVA_HOME=
Testar num smartphone
Para testar num smartphone Android precisa de ativar nas configurações do smartphone o Developer options e dentro desse menu precisa de ativar a opção USB debugging.
Depois corra numa linha de comandos
adb devices
para listar os dispositivos Android detectados. Caso o dispositivo seja detetado, corra
cordova run android --device
Para fazer debug no Chrome aceda a chrome://inspect/#devices
Testar num emulador
Instalar o emulador
[sudo] sdkmanager --install "emulator"
Instalar as plataformas de teste, exemplo para Android 16 (API level 36):
[sudo] sdkmanager --install "emulator;36.3.4" "platforms;android-36.1" "build-tools;36.1.0"
Para ver todas as plataformas sdkmanager --list
Criar o dispositivo virtual (AVD), exemplo:
avdmanager create avd -n emulator -k "system-images;android-32;google_apis;x86_64"
Confirmar que ficou instalado
avdmanager list avd
Correr o emulador
cordova emulate android --target=emulator
Plugins necessários
- ver ficheiro
package.json.
Contribuições são muito bem-vindas
- Usamos StandardJS para o código
- Respeite a estrutura dos ficheiros
- Comente sempre o código (preferencialmente em Inglês), tal ajuda os outros a compreender as suas contribuiçes