MICHELEPISANI.IT
 

Applicazioni ibride facili e veloci con il framework Ionic

Come Creare un'App Ibrida con Ionic in 3 Semplici Passaggi

Come creare un'app ibrida con ionic in 3 semplici passaggi
July 23
07:042016

Tra i miei articoli uno di queli che ha più successo è "COME CREARE UN'APPLICAZIONE IBRIDA PER DISPOSITIVI ANDROID", nel caso specifico spiego come realizzarla utilizzando Apache Cordova (Phonegap) preparando l'ambiente di sviluppo per Android su dispositivi Windows.
Da quando scrissi quella guida, tutt'oggi valida a livello di procedura e di comandi da lanciare (anche se l'organizzazione dei file generati nelle cartelle dell'app potrebbe non risultare coerente con le immagini di esempio per via di ottimizzazioni che la piattaforma ha subito nel tempo) sono seguiti Framework che da un certo punto di vista possono facilitare alcuni aspetti importanti, tra questi quello di interesse in questo articolo si chiama IONIC.

Dal mio punto di vista il vantaggio offerto da questo Framework è la facilità di creazione di interfacce grafiche per le applicazioni ibride risultanti che ben si allineano alle aspettative che un'applicazione nativa ha in termini di elementi e usabilità, per Android o iOS che sia. Di contro, a differenza del mero utilizzo di HTML5, Javascript e CSS gestibile con Cordova, il framework Ionic utilizza AngularJS come motore per definire i componenti dell'interfaccia grafica il quale, a differenza ad esempio di jQuery, non è una libreria ed ha un'infrastruttura ed un approccio tutti suoi per la realizzazione delle applicazioni, va detto anche che rispetto all'uso di solo Javascript nativo, o con appoggio a librerie come jQuery Mobile, Angular JS è molto più performante in termini di reattività.
Questa premessa è doverosa per chi intende cimentarsi nella realizzazione di app ibride con Ionic perchè senza una conoscenza, anche generale, di come funziona AngularJS il risultato sperato potrebbe non prendere mai vita.

Veniamo ora ai 3 passaggi per ottenere subito un'applicazione funzionante da utilizzare come base per il proprio progetto:

STEP 1 - INSTALLARE IONIC E CONFIGURARE L'AMBIENTE DI SVILUPPO

L'installazione di Ionic prevede come prerequisito che sul vostro PC o MAC sia installato Node.js.
Successivamente installare lo strumento CLI (Command Line Tools) di Cordova e Ionic, trovate le indicazioni ufficiali su npmjs.com.
A quel punto è necessario configurare l'ambiente di sviluppo. Trovate le indicazioni per le piattaforme di interesse sul sito ufficiale di cordova.apache.org: documentazione per Android, documentazione per iOS.
Faccio presente che per poter sviluppare un'applicazione per dispositivi iOS è necessario disporre di un MAC.

I passaggi di cui sopra sono stati da me descritti in altre guide in italiano presenti sul mio blog che per semplicità (e per evitare che Google mi penalizzi con la duplicazione dei contenuti) non riporto esplicitamente ma rimando ai relativi link che sono:

PREPARARE L'AMBIENTE DI SVILUPPO ANDROID (se non utilizzate Eclipse come IDE, ed immagino di no, potete fare a meno del relativo passaggio all'interno della guida in quanto mirato all'uso dell'IDE per lo sviluppo di applicazioni native. Per di più le linee guida di Ionic invitano gli utenti Windows ad utilizzare Visual Studio per la realizzazioni di progetti con quel sistema operativo).
COME CREARE UN'APPLICAZIONE IBRIDA PER DISPOSITIVI ANDROID (nella prima parte di questa guida è descritta l'installazione di Node.js e di Cordova)

Se qualcuno ha bisogno di aiuto per la preparazione dell'ambiente di sviluppo su MAC mi scriva nei commenti a fine articolo.

Comunque sia, una volta installato Node.js, l'installazione di cordova è delegata al relativo comando npm che sarà semplicemente il seguente:

> npm install -g cordova ionic

 

STEP 2 - CREARE UN PROGETTO IONIC

Terminata la parte di configurazione dell'ambiente di sviluppo, che è anche la più noiosa ma che fortunatamente una volta fatta non vi sarà più necessario intervenire, la strada per la realizzazione del nostro progetto è veramente tutta in discesa.
Suggerisco di creare sul vostro computer una cartella dedicata dove ospitare il primo ma anche i successivi progetti che realizzerete, in questo modo sarà tutto più organizzato e semplice da ritrovare anche dopo un eventuale periodo di inattività. Nel mio caso creo i miei progetti in "D:ionic" in ambiente Windows (sul Mac ho replicato una situazione simile).
A questo punto non resta che aprire la command line (meglio se come amministratore per evitare potenziali problemi di permessi) e spostarsi all'interno della cartella che fungerà da contenitore dei nostri progetti (con Windows tramite il comando "cd").

Ora con un semplice comando da lanciare il nuovo progetto verrà creato:

> ionic start nomeApp blank

Nel caso specifico verrà creata una cartella chiamata "miaApp" con all'interno tutti i file necessari, sia per la successiva compilazione dell'app stessa, sia per la modifica effettiva dei file html, js e css che rappresenteranno la nostra applicazione ibrida.

L'immagine seguente rappresenta la struttura del file system di un nuovo progetto Ionic creato con il comando di cui sopra e dove ho dato "appTrackingTest" come nome per la mia app:

Ionic - File system di un nuovo progetto
Fig. 1 - Ionic - File system di un nuovo progetto

I file prettamente di interesse per lo sviluppo dell'applicazione si trovano all'interno della cartella "www":

Ionic - Struttura dei file della cartella www
Fig. 1 - Ionic - Struttura dei file della cartella www

Il progetto appena creato, come sottolineato dal termine "blank" all'interno del comando lanciato, risulterà in un'unica pagina bianca con titolo, da utilizzare come base pulita su cui andare a costruire la nostra app. Ionic però mette a disposizione anche alcuni template preimpostati con interfaccia e funzionalità generiche al fine di facilitare alcune implementazioni che, con la stessa semplicità del comando di cui sopra, saranno subito disponibili.
Per ottenere un progetto contenente già un template grafico basterà sostituire il termine "blank" al comando lanciato per la sua creazione con "tabs", per ottenere una base di app con alla base una barra contente icone divise in tab dove alla pressione sulle stesse si passa da una pagina (view) all'altra, oppure "sidemenu" per predisporre la nostra base di un menù a comparsa laterale, l'immagine di esempio seguente, prelevata dalle specifiche di Ionic, mostra quanto appena descritto:

Ionic - Tipologie standard di progetto
Fig. 1 - Ionic - Tipologie standard di progetto

Ovviamente il contenuto iniziale della cartella "www", nel caso di creazione con uno dei template proposti, sarà più ricco di file rispetto all'esempio con pagina bianca.
L'avvenuta creazione del progetto da CLI dovrebbe mostrare sul terminale qualcosa come questo:

Ionic - Nuova applicazione creata con successo
Fig. 1 - Ionic - Nuova applicazione creata con successo

 

STEP 3 - AVVIARE IL PROGETTO

Una volta che il progetto è stato creato sarà necessario aggiungervi le piattaforme su cui si intende farlo girare, come Android e/o iOS. Non è necessario aggiungerle tutte insieme, io ad esempio eseguo la prototipazione su Android e successivamente aggiungo la piattaforma di iOS e faccio le dovute correzioni.
Anche l'aggiunta della piattaforma è un processo semplice, dalla CLI recarsi all'interno della cartella del progetto su cui si intende lavorare (con Windows tramite il comando "cd"), quindi nel mio caso "cd D:ionicappTrackingTest" e lanciare il seguente comando:

> ionic platform add android

Se state lavorando invece in ambiente iOS e volete aggiungere la piattaforma per far girare la vostra app su iPhone, iPad e altri dispositivo che supportano quel sistema operativo dovrete cambiare ovviamente il nome della piattaforma: $ ionic platform add ios

L'avvenuta installazione della piattaforma dovrebbe risultare in un messaggio simile al seguente:

Ionic - Piattaforma Android aggiunta con successo
Fig. 1 - Ionic - Piattaforma Android aggiunta con successo

A questo punto compilare la propria app con il comando:

> ionic build android

Stesso discorso di cui sopra nel caso di compilazione di un progetto per iOS: $ ionic build ios

Dovrete attendere che la compilazione giunga al termine, solitamente impiega pochi secondi a completarsi (la prima volta può richiedere qualche secondo in più).
N.B.: se nella vostra CLI visualizzate alcuni messaggi in rosso, legati al fatto che alcuni file utilizzano o sovrascrivono API deprecate, non vi allarmate, non sono messaggi bloccanti per la compilazione bensì informativi. Un esempio potrebbe essere il seguente:

:CordovaLib:compileDebugJavaNote: Some input files use or override  a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

L'importante è che a fine compilazione visualizzate il messaggio:

BUILD SUCCESSFUL

A quel punto potete provate a lanciare la vostra app tramite il seguente comando che la eseguirà all'interno di una finestra del vostro browser:

> ionic serve

Nel caso dell'app creata con template "blank" vedrete qualcosa simile a questo:

Ionic - Avvio applicazione blank con comando ionic serve
Fig. 1 - Ionic - Avvio applicazione blank con comando ionic serve

Come è possibile notare in CLI, per il comando "ionic serve", vengono suggeriti a sua volta ulteriori comandi da utilizzare per riavviare il progetto nel browser (restart o r), per visualizzare l'output in console (consolelogs o c), per uscire dall'applicazione (quit o q) ed altri...

Nel caso invece di utilizzo del template con "sidemenu" avrete una lista di elementi e la possibilità di aprire e chiudere un menù laterale dal quale selezionare altre pagine preimpostate, una tra queste è un modello per la pagina di login:

Ionic - Avvio applicazione sidemenu con comando ionic serve
Fig. 1 - Ionic - Avvio applicazione sidemenu con comando ionic serve

Per questo potrebbe esservi utile il mio articolo su come effettuare il DEBUG DI APPLICAZIONI CORDOVA/PHONEGAP CON CHROME.

Potete far girare la vostra app anche su un emulatore presente sul vostro computer con il comando:

> ionic emulate android

Per questo forse potrebbe interessarvi il mio articolo su come CREARE E CONFIGURARE UN EMULATORE PER ANDROID.

Se invece collegate direttamente il vostro dispositivo potrete far girare l'app direttamente sullo smartphone, il comando per farlo è il seguente:

> ionic run android

 

A questo punto... buona app!
Se avete domande o suggerimenti lasciate un commento qua sotto!

Tags

Autore

Michele Pisani

Michele Pisani

Ho uno spiccato orientamento al problem-solving, se è troppo facile non mi diverto :)
Credo nella volontà e nel cambiamento perchè hanno fatto della mia passione il mio pane quotidiano.
Se devo descrivermi con una sola parola direi... "Concretezza", la mia stretta di mano è una garanzia.

8 Commenti

  1. Sebastiano Friday, January 4, 2019 alle ore 10:55

    Ciao, ho seguito la tua guida spiegata molto bene... volevo chiederti una precisione, io sviluppo app in android con cordova e androidstudio ma adesso sto cercando di vedermi anche ionic per prepararlo in IOS, quindi ho una domanda, ma se io ho un app già in codova android, devo ricrearne un altra a parte perchè dovrò usare "ionic build android" ? grazie.

    Rispondi a questo commento
  2. Michele PisaniAutore Saturday, January 5, 2019 alle ore 12:11

    Ciao Sebastiano,
    sinceramente ho sempre usato due modi diversi di sviluppo per Cordova e Ionic, il primo con Javascript puro il secondo con AngularJs, pertanto non so darti una risposta certa alla tua domanda anche se Ionic dovrebbe occuparsi di 'avvolgere' il progetto Cordova.

    Rispondi a questo commento
  3. Sebastiano Tuesday, January 8, 2019 alle ore 21:54

    Si infatti pare che è cosi, però forse la soluzione migliore è separarli. Grazie per la risposta.

    Rispondi a questo commento
  4. Daniele Wednesday, October 16, 2019 alle ore 12:12

    Ciao avrei una domanda da farti , ti volevo chiedere se puoi darmi qualche indicazione su come posso fare all'avvio dell'app un menu di scelta di opzioni dove l'utente sceglieuna di queste io la salvo da qualche parte e in base alla scelta fatta dall'utente fa vedere una schermata relativa a quella scelta. In sostanza é un app per l'università dove l'utente all'avvio deve scegliere la sua facolta e ai succesivi avvi devo presentargli la cartella o il peogetto relativo alla sua facoltà. Puoi darmi qualche indicazione grazie in anticipo

    Rispondi a questo commento
    • Michele PisaniAutore Wednesday, October 16, 2019 alle ore 21:54

      Ciao Daniele,
      prova a cercare info su cordova-sqlite-storage e su native-storage. L'approccio è quello di salvare le preferenze localmente e recuperarle. Nel tuo caso le salvi al momento della scelta effettuata dall'utente e le leggi all'apertura dell'app per scegliere la schermata da mostrare.

      Rispondi a questo commento
  5. Salvatore Friday, May 21, 2021 alle ore 07:03

    Buongiorno, nell'articolo si crea un app da zero ma se l'applicazione è già sviluppata con Angular come si può fare?
    Grazie.

    Rispondi a questo commento
    • Michele PisaniAutore Friday, May 21, 2021 alle ore 18:13

      Ciao Salvatore, in tal caso dovresti fare riferimento alla specifica documentazione di Ionic con Angular: https://ionicframework.com/docs/angular/overview

      Rispondi a questo commento

Scrivi un Commento

Il tuo indirizzo email non sarà pubblicato.
I campi contrassegnati da un * sono obbligatori

Articoli e Argomenti correlati

Il Canale YouTube in ITALIANO

1 VIDEO GRATIS ogni 2 settimane! ISCRIVITI!

Entra a far parte della community su Facebook

Categorie popolari

Iscriviti alla mia newsletter

La tua e-mail con me sarà al sicuro.
Non fornirò mai le tue informazioni a nessuno!

Ultimi commenti

Michele Pisani

Hai verificato se succede per tutte le pagine da un certo periodo di tempo in poi o solo su alcune?

Tecnowiz

Sono amministratore di un blog pure io... Intanto ti faccio i complimenti per questo articolo. …

Michele Pisani

Ciao Antonio, grazie per la fiducia :) In caso di più fogli è necessario inserire il codice del …

Antonio

Ciao Michele, ho acquistato il tuo libro che unitamente ai tuoi video sta diventando il mio corso …