• IT
betterdocs-cat-icon 1-svg

Qualcosa è andato storto?

Condividi con noi la tua opinione per migliorare la nostra documentazione.

    Getting Started

    • Introduzione Instant Developer Cloud
    • Composizione della piattaforma
    • Struttura dei progetti
    • La programmazione relazionale
    • Apprendere l’uso di Instant Developer Cloud

    Struttura di un'applicazione

    • Introduzione (applicazione e sessione)
    • Le videate
    • Classi e librerie
    • Risorse e CSS
    • I pacchetti
    • Programmazione asincrona

    Struttura del database

    • Introduzione (struttura del database)
    • Definizione degli schemi relazionali
    • Scrittura di query ed esecuzione di comandi
    • Gestione dei database nel cloud
    • Il Cloud Connector

    Document Orientation

    • Introduzione Document Orientation
    • Definire Documenti e Collection
    • Utilizzo dei documenti
    • Estensione dei documenti

    Datamap

    • Introduzione Datamap
    • Creazione di liste di documenti
    • Modifica dei documenti con videate di dettaglio
    • Datamap innestate e ricorsive

    IonicUI

    • Introduzione IonicUi
    • Le pagine IonicUI
    • Definire il contenuto delle pagine
    • Il page controller
    • Il metodo app.popup
    • Videate come elementi visuali
    • Personalizzazione di IonicUI
    • Configurazione dei ruoli e degli accessi

    Pannelli e Griglie

    • Introduzione (Pannelli e Griglie)
    • Anatomia di un pannello
    • I pannelli a runtime

    Web API e file system

    • Introduzione Web API
    • Il file system
    • Consumare Web API
    • Esporre Web API
    • Web API in formato OData
    • Utilizzare Web API Instant Developer Foundation
    • Web API in formato OpenAPI

    Sincronizzazione

    • Introduzione sistema di sincronizzazione
    • Scambio di messaggi in tempo reale
    • Document Orientation Remota
    • Sincronizzazione del database offline

    Debugging e Test

    • Introduzione Debugging e Test
    • Strumenti e tecniche di debug
    • Test automatico delle applicazioni

    Traduzioni

    • Introduzione (traduzioni)
    • Processo di traduzione
    • Funzionamento del framework di localizzazione
    • Localizzazione di numeri e date

    Integrazioni di componenti esterni

    • Introduzione (integrazioni di componenti esterni)
    • Integrazione di componenti JavaScript
    • Integrazione di librerie di back-end
    • Integrazione di un plugin Cordova

    Launcher e Pubblicazione

    • Introduzione Launcher
    • I plugin nativi
    • Test delle applicazioni nei launcher
    • Pubblicazione sugli store
    • Configurazioni per gli store
    • Fase di build e di invio
    • Gestione dell’applicazione

    Analitiche e Feedback

    • Introduzione Analytics e Feedback
    • Installazione ed uso di Analytics
    • Raccolta dei feedback degli utenti

    Server di Produzione

    • Introduzione server di produzione
    • I server di Instant Developer Cloud
    • I server My Cloud
    • I server Self Managed
    • Tabella comparativa

    Cloud Connector

    • Cos’è il Cloud Connector
    • Installazione Cloud Connector
    • Configurazione
    • Installazione come servizio
    • Esempio di utilizzo
    • Controllo remoto
    • Note

    Team Works

    • Perché non basta GitHub?
    • Team Works: concetti base
    • Organizzazione del lavoro consigliata
    • Risoluzione dei problemi relativi a Team Works
    • Domande sull’utilizzo di Team Works

    Manuale PWA

    • Cos’è una PWA?
    • Creazione di una PWA su Instant Developer Cloud
    • Life Cycle
    • Installazione PWA
    • Funzionalità
    • Plugin
    View Categories

    Integrazione di librerie di back-end

    Contenuti
    • Integrazione di una libreria JavaScript
    • Integrazione di un pacchetto Node.js

    I componenti di back-end sono la seconda tipologia di integrazione di cui vogliamo illustrare il funzionamento.

    Un componente di back-end è costituito da una libreria di codice JavaScript in grado di interagire con l’ambiente operativo di back-end. Questa libreria può essere integrata come elemento a sé stante, sotto forma di un insieme di file JavaScript, ed in questo caso si tratta solitamente di librerie di calcolo, oppure come pacchetto Node.js, codice che può utilizzare l’intero ambiente Node.js in cui sono in funzione le applicazioni.

    Vediamo adesso due esempi di integrazione, partendo dalla libreria word-freq, una libreria di codice JavaScript che calcola la frequenza di parole in un testo, che viene integrata come libreria JavaScript a sé stante. Un esempio funzionante di questa libreria è contenuto nel progetto Extensibility Design Patterns. 

    Integrazione di una libreria JavaScript #

    Per integrare una libreria JavaScript, il primo passo è quello di ottenere un file JavaScript che la contiene. Solitamente si ottiene scaricandolo dal repository GitHub della libreria.

    A questo punto occorre inserire la definizione degli oggetti della libreria all’interno di una libreria del progetto di tipo Applicazione. Nel caso di esempio useremo ancora MyAppLibrary.

    Per ogni oggetto che si desidera utilizzare dal codice di back-end di Instant Developer Cloud, è necessario creare una classe in cui vengono definiti i metodi e le eventuali proprietà dell’oggetto. Nel caso di WordFreqSync, viene definito il solo metodo process, che, a fronte di un testo, restituisce l’array delle parole marcate con la frequenza relativa.

    Infine è necessario caricare il codice JavaScript della libreria all’interno della classe come risorsa di tipo Script server. Il nome di questa risorsa solitamente deve coincidere con il nome della classe, perché quando l’applicazione è in funzione in un server, il framework esegue la seguente riga di codice per ogni risorsa di tipo Script server.

    App.[nome-risorsa] = require(“url script server”);

    In questo modo il codice della risorsa viene caricato nella sessione e viene assegnato ad una classe che può essere istanziata. Nel caso dell’esempio, la classe WordFreqSync viene usata come segue:

    let vv = App.WordFreqSync();
    let wordList = vv.process(txt);

    Si noti che non esiste un unico metodo per utilizzare gli oggetti derivati dalle librerie JavaScript di back-end, dipende infatti da come la libreria espone i metodi interni all’ambiente esterno. È quindi richiesta la conoscenza dell’ambiente operativo JavaScript e Node.js per avere successo nell’operazione di integrazione.

    Quando l’applicazione è in esecuzione locale (modalità “offline”), non è possibile effettuare il require, quindi le risorse di tipo Server script vengono semplicemente caricate nella webview quando l’applicazione è in fase di inizializzazione. Per ottenere una libreria equivalente può essere necessario adattare l’interfaccia. Questo avviene nell’evento onStart tramite il seguente codice:

    if (app.runsLocally()) {
      App.WordFreqSync = window.WordFreqSync;
      delete window.WordFreqSync;
    }

    Integrazione di un pacchetto Node.js #

    L’integrazione di un pacchetto Node.js è la soluzione migliore per aggiungere librerie di back-end che devono essere utilizzate solo nell’ambiente Node.js, cioè quando l’applicazione è in esecuzione in un server.

    Il primo passo è identificare il pacchetto che implementa la funzionalità desiderata, solitamente tramite il sito npm. Nel nostro caso utilizzeremo basic-ftp, un client ftp che può servire alla nostra applicazione per interagire con un server ftp di esempio, posto all’indirizzo: https://www.wftpserver.com/onlinedemo.htm.

    A questo punto è necessario inserire il pacchetto Node.js nel proprio server, prima di tutto nel server IDE e poi, prima di installare l’applicazione, anche nei server di produzione.

    La definizione dei pacchetti da aggiungere ai propri server viene effettuata tramite la console di Instant Developer Cloud, nella pagina Impostazioni del proprio server nella console, come si vede nell’immagine seguente:

    image 6 Instant Developer

    Nel campo “Pacchetti npm personalizzati” è necessario aggiungere nome e versione dei pacchetti da caricare nel server, separati da virgole e senza spazi. Siccome il valore precedente del campo era “speakeasy@2.0.0”, per aggiungere il pacchetto basic-ftp è stato modificato in “speakeasy@2.0.0,basic-ftp@4.6.6”.

    A questo punto è possibile utilizzare le funzionalità aggiuntive, descritte nella documentazione del pacchetto. È opportuno considerare che le funzioni del pacchetto non possono essere sincronizzate con yield, quindi bisognerà scrivere il codice tramite callback o promise. Per questa ragione è necessaria la conoscenza dell’ambiente operativo Node.js e delle relative tecniche di programmazione asincrone.

    Nell’esempio seguente effettuiamo la connessione al server, cambiamo la directory di lavoro in download e poi stampiamo a video la lista dei file.

    App.FirstForm.prototype.onLoad = function (options)
    {
      const ftp = require("basic-ftp");
      const client = new ftp.Client();
      client.ftp.verbose = false;
      //
      client.access({
              host : "demo.wftpserver.com",
              user : "demo",
              password : "demo",
              secure : false
      }).catch (e=>console.error(e))
        .then(s=>client.cd("download"))
        .then(s=>client.list())
        .then(function (s) {
            let msg = "";
            for (let i = 0; i < s.length; i++) {
              msg += s[i].name + "\n";
            }
            $helloTxt.innerText = msg;
            //
            client.close();
      });
    };
    Ti è stato utile?
    Aggiornato il 15 Aprile 2024
    Integrazione di componenti JavaScriptIntegrazione di un plugin Cordova
    Contenuti
    • Integrazione di una libreria JavaScript
    • Integrazione di un pacchetto Node.js

    Caratteristiche

    • Perché Instant Developer
    • IDE e Ambiente di Sviluppo
    • Pubblicazione Web & Mobile
    • Software Life Cycle & DevOps
    • Database, Integrazione, Sync
    • Collaboration & Workflow

    Soluzioni

    • Freelance
    • Software House
    • Company IT
    • Casi di successo
    • Applicazioni Sviluppate

    Azienda

    • Chi Siamo
    • Contatti
    • Lavora con noi

    Risorse

    • Documentazione
    • Risorse e Tutorial
    • Blog
    • Starter Kit
    • Pricing
    • Inizia Ora
    Crea un account e Inizia Gratis
    • Seguici su Twitter
    • Seguici su Facebook
    • Seguici su LinkedIn
    • Seguici su YoutTubeSeguici su YouTube
    Questo sito è protetto dalla tecnologia reCAPTCHA Enterprise e si applicano l'Informativa sulla privacy e i Termini di servizio di Google.
    Google Policy | Termini
    © Pro Gamma - p.iva, c.f. e iscr. Camera di Commercio Bologna 01985091204 - Sede legale Via D'Azeglio, 51 40123 Bologna - Italia Pro Gamma Instant Developer® è un marchio registrato.
    Privacy Policy | Cookie Policy
    • IT