Creare app Android nativa di un sito web – parte 2

In questa seconda parte del tutorial vediamo come importare un progetto di esempio ed adattarlo.

E’ possibile scaricare il progetto da GitHub.
Come già detto il progetto sfrutta il componente WebView per visualizzare una pagina web.

Decomprimere tutti i files in una cartella a piaciamento, esempio C:\ProgettiAndroid\WebView.

Aprire Android Studio appena installato, cliccare su File -> Open e selezionare il percorso appena creato dove abbiamo decompresso il progetto.
Il progetto richiede Build Tools 23.0.3, se non lo avete installato nella finestra dei messaggi apparirà l’errore Failed to sync Gradle project ‘Webview’.
Sarà sufficiente cliccare su Install Build Tools 23.0.3 and sync project, il pacchetto verrà scaricato automaticamente ed installato.

Il progetto richiede Gradle 2.10, per semplificare diciamo che Gradle è uno strumento che si occupa della build dei progetti in Android Studio, ovvero effettua la compilazione vera e propria.
Anche in questo caso se la versione corrente non è 2.10 apparirà un messaggio di errore.
Sarà sufficiente cliccare su Fix Gradle wrapper and re-import project.
Potrebbe presentarsi una popup che richiede di aggiornare Gradle, fatelo pure senza problemi.

La struttura si presenterà come da seguente schermata:

Android Studio

Per semplificare:

app: l’applicazione vera e propria con le sottocartelle manifests (contiene AndroidManifest.xml, file che fornisce le informazioni essenziali dell’app al sistema Android), java (contiene il codice Java, qui sono presenti le varie classi java), res (contiene le risorse come immagini, icone, layout).

Gradle Scripts contiene gli script di Gradle, il tool per la build del progetto. In particolare date un’occhio al file build.gradle relativo a Module:app, qui ci sono impostazioni importanti, vediamo successivamente cosa sono e come modificarle.

Innanzitutto vorremmo cambiare il nome del package com.androidworks.nikhil.webview.
Aprire il file AndroidManifest.xml sotto app\manifests e cambiare la seguente riga

package="com.androidworks.nikhil.webview" >

ad esempio

package="com.android.digitalking.webview" >

Quindi cliccare con il tasto destro su app\java e selezionare New -> Package, chiamarlo esattamente come abbiamo deciso da esempio.
Selezionare le tre classi java presenti (MainActivity, MyFirebaseIstanceIDService, MyFirebaseMessagingService) quindi con il tasto destro selezionare Refactor – Move e come destinazione su To package navigare con i tre puntini fino a com.android.digitalking.webview quindi premere Refactor.

Nella finestra di messaggio chiamata Find Refactoring Preview verranno visualizzate le occorrenze trovate in tutto il codice, è possibile scegliere quindi se fare il refactor premendo Do Refactor oppure cancellare l’operazione.

Una volta effettuato lo spostamento è possibile cancellare il package androidworks.nikhil.webview rimasto vuoto (tasto destro sul nome e quindi Delete).

Ora selezioniamo sempre app cliccando con il tasto destro, quindi Open Module Settings (oppure premendo F4). Qui sono presenti impostazioni importanti che possiamo lasciare così oppure modificare.
Vediamo le principali.

Sotto Properties:

Compile Sdk Version: indica la versione dell’API con cui viene compilata l’app.

Sotto Flavors:

Min Sdk Version: indica la versione di API minima.
Target Sdk Version: rappresenta un valore intero che indica il livello di API ideale per il quale l’applicazione è stata sviluppata. E’ consigliato di utilizzare sempre l’ultima versione delle API. Se non viene specificato di default viene utilizzato il valore di Min Sdk Version.
Min Sdk Version: rappresenta un valore intero che indica il livello minimo di API necessario per utilizzare l’applicazione.
Application Id: ogni app Android ha un application ID univoco che identifica l’app nel dispositivo e nel Play Store di Google. Possiamo cambiarlo e mettere il nome scelto con il nuovo package, ovvero com.android.digitalking.webview.
Version Code: valore integer utilizzato come numero per versione interna.
Version Name: una stringa utilizzata come numero di versione da mostrare agli utenti.

Ricordate il file delle impostazioni di Gradle build.gradle relativo a Module:app? Qui trovate i valori di queste impostazioni.

In questo file è anche possibile configurare i tipi di build tramite il blocco buildTypes. Di default il sistema definisce due tipi di build: debug e release. Il tipo di build debug non è esplicitamente mostrato nella configurazione di default della build ma include strumenti per il debugging ed è firmato con chiave di debug.
Il tipo di build release applica le impostazioni Proguard (permette di rilevare e rimuovere il codice non usato riducendo le dimensioni dell’APK generato) e di default non è firmato.

La compilazione del progetto dovrebbe dare degli errori per il fatto che è stato modificato l’application id ed il nome del package.
Per risolvere occorre modificare il nome del package all’interno del file google-services.json (presente sotto la directory C:\ProgettoAndroid\WebView\app\google-services.json) utilizzando un qualsiasi editor di testo e all’interno di Android Studio sulla classe MainActivity e MyFirebaseMessagingService rinominare tutte le vecchie referenze com.androidworks.nikhil.webview con il nome scelto.

Per verificare se la compilazione non da errori lanciare una nuova build (menu Build -> Rebuild project).

Android Studio

Nella terza ed ultima parte vedremo come modificare il codice sorgente adattandolo, testare l’applicazione e quindi generare l’APK pronto per essere installato.

Creare app Android nativa di un sito web – parte 1

Se non siete sviluppatori Android ma volete realizzare un’app del vostro sito web questo è il tutorial che fa per voi.
Avete un blog WordPress o un sito realizzato in Joomla già responsivo? (adatto ad essere visualizzato correttamente sia su desktop che su mobile).
Esistono diverse soluzioni per creare un’app Android, quella che verrà illustrata in questa guida si avvale dell’uso di Android Studio, l’IDE (Integrated Development Environment) ufficialmente supportato da Google per lo sviluppo Android.
Per chi non lo sapesse per sviluppare in Android si utilizza il linguaggio Java, se non siete esperti di programmazione non vi preoccupate!
In questa prima parte del tutorial verrà illustrato tutto ciò che occorre installare per utilizzare Android Studio in ambiente Windows.
Nella seconda parte verrà fornito un progetto Android Studio già pronto da modificare secondo le proprie esigenze.

Scaricare ed installare Android Studio

E’ possibile scaricare ed installare Android Studio dal sito https://developer.android.com/studio/index.html.
Il bundle completo include tutti gli strumenti necessari per iniziare a sviluppare le proprie app:

– IntelliJ IDE + Android Studio plugin
– Android SDK Tools
– Android Platform-tools
– Una versione di Android platform
– Emulatore Android con immagine di sistema Android incluso Google Play Services

ATTENZIONE: Android Studio richiede che sia installato Java (JRE/JDK) per funzionare.
Link JRE: https://java.com/it/download/
Link JDK: http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
fare attenzione ad installare la versione corretta in base al proprio sistema operativo, se 32 o 64bit.

Alcune volte il wizard di Android Studio non trova Java installato.

Cliccare su Browse e indicare il percorso al JDK (ad esempio C:\Program Files\Java\jdk1.8.0_77).

Si può ovviare all’errore di cui sopra definendo una nuova variabile di sistema chiamata JAVA_HOME che punta alla cartella JDK.

In Windows 10 basta andare su Pannello di controllo\Sistema e sicurezza\Sistema quindi selezionare Impostazioni di sistema avanzate.
Selezionare variabili d’ambiente e definire la nuova variabile di sistema JAVA_HOME con il valore il percorso al JDK (ad esempio C:\Program Files\Java\jdk1.8.0_77).

Schermate di installazione di Android Studio:

View post on imgur.com

Durante l’installazione di Android Studio annotatevi il percorso dell’Android SDK, ad esempio C:\Users\NOMEUTENTE\AppData\Local\Android\sdk.
Da qui lanciate l’Android SDK Manager per scaricare i vari pacchetti, non sono necessari tutti, dipende quali API intendete utilizzare, sono consigliate sempre le più recenti.
Le varie system image e Intel x86 Emulator Accelerator (XAHM Installer) permettono di far girare l’applicazione su un dispositivo virtuale all’interno di Android Studio.
Sarà necessario creare e configurare un Android Virtual Device (AVD) in Android Studio.
Se non si vuole/può utilizzare l’emulatore è anche possibile far girare l’app su un dispositivo collegato al computer, a patto che lo smartphone sia correttamente visto dal computer (aver installato i driver Windows) e abilitato l’opzione Debug USB sulle opzione Sviluppatore nelle impostazioni del proprio dispositivo.

Se si vuole utilizzare le ultime API di Android Nougat (7.1.1) dall’SDK Manager si installerà:

– Tools: Android SDK Tools, Android SDK Platform-tools, Android SDK Build-tools
– Android 7.1.1 (API 25): SDK Platform più tutte le system image
– Extras: Android Support Repository, Google Repository, Google USB Driver, Intel x86 Emulator Accelerator (XAHM Installer).

Nella seconda parte del tutorial verrà importato un progetto in Android Studio che sfrutta il componente Webview per visualizzare pagine web, con le opportune modifiche verrà personalizzato ed infine compilato generando l’APK pronto per essere installato.

Android: scansionare gli APK prima di installarli

I files .APK sono i files di installazione delle applicazioni Android (packages).
Oltre il Play Store è possibile scaricare le app da altre fonti e poi trasferirle al dispositivo (questa operazione è detta anche sideload), una volta abilitato il flag di Origini sconosciute nelle impostazioni relative alla Sicurezza potete installare gli APK.

Nasce però un problema, gli APK provenienti da fonti sconosciute potrebbero contenere virus/malware.
Prima di installarli è sempre bene quindi effettuare una scansione.
Esistono vari servizi online molto validi che utilizzano vari motori per cui i risultati sono affidabili:

NVISO ApkScan
VirusTotal
Andrototal
NetQin
Metadefender

Come disassemblare qualsiasi APK con Apktool

Apktool

Apktool è una piccola ma potente utility che permette di fare reverse engineering sui compilati Android (.apk), permettendo quindi di estrarne, vederne e modificarne il contenuto.

L’ultima versione attualmente disponibile (2.x) richiede Java almeno in versione 7 installato.

Per installare Apktool in Windows è sufficiente scaricare dalla pagina Install uno script apktool.bat e Apktool-2 (apktool.jar).

Copiare entrambi i files in una cartella appositamente creata, ad esempio C:\apktool.

Aprire un prompt dei comandi con diritti di amministratore e posizionarsi dentro C:\apktool.

Apktool dispone di diverse opzioni ma quella che ci interessa a noi è quella che serve per disassemblare gli APK.

Proviamo per comodità a copiare un qualsiasi file .apk dentro C:\apktool.

Quindi dal prompt dei comandi digitiamo apktool d nomefile.apk (dove nomefile è il nome del nostro apk).

Poco dopo apktool creerà una cartella con il nome dell’apk e dentro troverete tutti i files sorgenti dell’app (cartelle assets, original, res, ecc…)

Le migliori alternative al Play Store di Google

Google Play non è il solo marketplace per le applicazioni Android, ecco le migliori alternative per trovare applicazioni e giochi rilasciate dagli sviluppatori.

Si ricorda che per abilitare l’installazione di terze parti occorre abilitare “origini sconosciute” nelle Impostazioni -> Sicurezza del dispositivo.

Amazon App Store

E’ l’app store più popolare dopo Google Play. Non ha interfaccia web ed occorre installare l’apposito apk.
Le app sono categorizzate in differenti sezioni, sono disponibili sia gratuite che a pagamento. Amazon offre gratis ogni giorno un’app normalmente a pagamento.

APKMirror (link)

Permette il download delle ultime versioni delle applicazioni Android. Non ha un’app ufficiale (per scaricare occorre visitare il sito web). Non sono presenti app a pagamento.

GetJar (link)

Se avete avuto un dispositivo basato J2ME o Symbian il nome non vi suonerà nuovo. E’ presente un’app ufficiale ma è possibile usare anche l’interfaccia web. Il sito è ben organizzato e categorizzato però le app potrebbero non essere sempre aggiornate.

AppBrain (link)

In questo marketplace spesso è possibile trovare app a pagamento messe gratuitamente a disposizione dagli sviluppatori per un determinato periodo di tempo. AppBrain offre sia app che sito web per accedere al suo catalogo. Per scaricare le app direttamente da AppBrain occorre registrarsi altrimenti si viene rediretti al Play Store.

Aptoide (link)

Ha una bella interfaccia grafica e le tabs e categorie ricordano molto il Play Store. Ha un’app dedicata la quale consente anche di rilevare se esistono aggiornamenti delle app già installate nel proprio dispositivo.

Ricevi gli aggiornamenti del blog

Vuoi rimanere aggiornato riguardo gli ultimi articoli pubblicati nel blog? Inserisci la tua email per sottoscriverti alla newsletter!