In questa seconda parte del tutorial vediamo come importare un progetto di esempio ed adattarlo.
E’ possibile trovare e scaricare uno dei tanti progetti presenti in GitHub, in questo esempio utilizzerò il codice di nikil07.
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:ProgettiAndroidWebView.
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:
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 appmanifests e cambiare la seguente riga
package="com.androidworks.nikhil.webview" >
ad esempio
package="com.android.digitalking.webview" >
Quindi cliccare con il tasto destro su appjava 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:ProgettoAndroidWebViewappgoogle-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).
Nella terza ed ultima parte vedremo come modificare il codice sorgente adattandolo, testare l’applicazione e quindi generare l’APK pronto per essere installato.
Link per scaricare il codice nikil07? Grazie
Il progetto non è più presente su GitHub, probabilmente è stato rimosso dall’autore. https://github.com/nikil07