Creare un’applicazione standalone con il componente Build4D

Tradotto automaticamente da Deepl

Da qualche mese è disponibile su GitHub un nuovo componente di build4D. Permette di creare senza sforzo un progetto compilato o un componente. Le cose stanno migliorando ulteriormente: questa nuova versione del componente vi permetterà di generare un’applicazione a utente singolo, ampliando le possibilità del vostro flusso di lavoro di sviluppo.

Con tool4D disponibile dalla versione 20, l’integrazione del processo di generazione di applicazioni negli strumenti di CI (Continuous Integration) è diventata estremamente conveniente.

Approfondiamo i dettagli!

Il componente Build4D

Cosa fa il componente?

Ecco un elenco non esaustivo di ciò che il componente consente di fare:

  • compilare il progetto,
  • unire il 4D Volume Desktop al progetto,
  • aggiungere le informazioni dell’applicazione come il Copyright, la Società…,
  • aggiungere l’icona,
  • scegliere le cartelle da aggiungere, come Documentation, WebFolder, Default Data…,
  • selezionare le cartelle da rimuovere, come la cartella Dev nelle Risorse,
  • scegliere i moduli da rimuovere, come CEF, Mecab, php…,
  • generare la licenza di distribuzione,
  • e firmare l’applicazione.

Qual è la differenza con il comando Build application?

In entrambi i casi, è possibile generare un’applicazione monoutente perfettamente utilizzabile. Il comando Build Application è monolitico. Se si desidera personalizzare un file o aggiungere o rimuovere una cartella, è necessario farlo dopo aver creato l’applicazione. E per un’applicazione macOS, è necessario firmare nuovamente l’applicazione.

Il componente Build4D è composto da diverse classi e funzioni codificate in 4D. Quindi, se la vostra applicazione è molto particolare e diversa dalle altre. È possibile aggiungere facilmente una nuova funzione o migliorare quella esistente.

Come fare?

Il codice seguente è un esempio di generazione di un’applicazione standalone da un progetto esterno.

var $build : cs.Build4D.Standalone
var $settings : Object
var $success : Boolean

$settings :={}
// Define the external project file
$settings .projectFile:=Folder(fk documents folder).file("Contact/Project/Contact.4
folderDProject")

// Configure the application
$settings .buildName:="myApp"
$settings .destinationFolder:="Test/"
$settings .obfuscated:=True
$settings .packedProject:=False
$settings .useSDI:=False$settings .startElevated:=False
$settings .lastDataPathLookup:="ByAppPath"

// Define the 4D Volume Desktop path
$settings .sourceAppFolder:=Folder(fk documents folder). xml-ph-0034@deepl.internaapp")

// Specify the components required for compilation
$componentFolder :=Folder(fk documents folder).folder("4D v20.0/4D.app/Contents/Components")
$components :=[]
$components .push($componentFolder.file("4D WritePro Interface.4dbase/4D WritePro Interface.4DZ"))
$settings .compilerOptions:={components: $components}

// Delete the unnecessary module
$settings.excludeModules:=["CEF"; "MeCab"]

// Include the folders and files
$settings .includePaths:=[]
$settings .includePaths.push({source: $componentFolder.folder("4D WritePro Interface.4dbase").path; destination: "../Components/"})
$settings .includePaths.push({source: $componentFolder.folder("4D SVG.4dbase").path; destination: "../Components/"})

// Delete the folders and files
$settings .deletePaths:=[]
$settings .deletePaths.push("Resources/Dev/")

// Add the application icon
$settings .iconPath:="/RESOURCES/myIcon.icns"

// Add the application information
$settings .versioning:={}
$settings .versioning.version:="version"
$settings .versioning.copyright:="copyright"
$settings .versioning.companyName:="companyName"
$settings .versioning.fileDescription:="fileDescription"
$settings .versioning.internalName:="internalName"

// Create the deployment license file
$settings.license:=Folder(fk licenses folder).file("XXXXX.license4D")

// Sign the macOS appplication
$settings .signApplication:={}
$settings .signApplication.macSignature:=True
$settings .signApplication.macCertificate:="xxxxxx"

// Launch the build
$build:=cs.Build4D.Standalone.new($settings)
$success:=$build.build
()

Per maggiori dettagli su ciascun attributo, leggere la documentazione di ciascuna classe di componenti.

Per le applicazioni macOS, per poterle distribuire, è necessario autenticarle. Per maggiori dettagli, consultare la documentazione di Apple.

Avanti…

Andare su GitHub per scaricare il componente “Build4D”. Inoltre, per rimanere informati su tutte le nuove funzionalità del componente, fate clic sul pulsante “Guarda” o inserite 4D Depot o Build 4D nei vostri preferiti. Se avete bisogno di aiuto, potete leggere questo post sul blog, che illustra in dettaglio tutte le organizzazioni 4D e come utilizzare tutte le funzionalità di Github.

Vanessa Talbot
- Product Owner - Vanessa Talbot è entrata a far parte del team di 4D Program nel giugno 2014. In qualità di Product Owner, è incaricata di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente. Ha lavorato sulla maggior parte delle nuove funzionalità di multi-threading preemptive e anche su un argomento molto complesso: la nuova architettura per le applicazioni con motore. Vanessa si è laureata presso Telecom Saint-Etienne. Ha iniziato la sua carriera presso il Criminal Research Institute come sviluppatrice per il dipartimento audiovisivo. Ha lavorato anche nei settori dei media e della medicina come esperta di supporto tecnico, produzione e documentazione di nuove funzionalità.