Italian Creare una libreria per B4X

Aldo's

Active Member
Licensed User
Buona domenica a tutti.
Vorrei creare una libreria di funzioni richiamabili da B4A/B4I/B4J.
Potete darmi delle indicazioni su come creare ciò?
Grazie
 

Star-Dust

Expert
Licensed User
Longtime User
Si, potremmo
 

Elric

Well-Known Member
Licensed User
Non l'ho mai fatto ma credo che "Menù Project --> Compile To Library Alt+5" potrebbe essere una strada da provare.
 

Aldo's

Active Member
Licensed User
Specifico la domanda:
1) Che tipo di progetto devo aprire (B4XPage... mi sembra strano, B4X Turtle... altrettanto strano, ecc.)?
2) Le funzioni/routine dove le scrivo (nella Main o in un'altra Page)?
3) Le dichiamo come public o come semplici Sub?
4) Ovviamente compilo come libreria... ma devo mettere parametri specifici?
 

LucaMs

Expert
Licensed User
Longtime User
Suppongo (spero) che tu voglia creare una B4XLib. Se è così, fai una bella cosa:

apri la cartella B4X delle librerie addizionali, ordina le librerie per dimensione e, iniziando dalle più piccole, guarda come sono fatte, ovvero "unzippale" (meglio in una cartella sul desktop).
 

Aldo's

Active Member
Licensed User
Suppongo (spero) che tu voglia creare una B4XLib. Se è così, fai una bella cosa:
Spero di fare una bella cosa...certo B4XLib
 

udg

Expert
Licensed User
Longtime User
Ciao, da quanto scrivi direi che sei già orientato sulla creazione di una b4xlib.
In sostanza, crei una nuova cartella, copi tutte le classi che vuoi rendere disponibili in questa cartella, eventualmente poni nella sottocartella Files le parti grafiche utilizzate dalle classi e aggiungi il file manifest.txt con i pochi campi illustrati da Erel.
Una volta pronto, salvi l'intera cartella come file zip e cambi l'estensione in b4xlib
Non ti resta che copiare il file con estensione b4xlib nella tua Additional Libraries e spuntare la libreria quando ne vuoi utilizzare una o più classi dal codice che scriverai.

Nota: ricorda che in questo modo distribuisci i sorgenti delle tue classi. Se preferisci mantenerli "segreti" allora devi tornare sulle librerie classiche (una per ogni piattaforma), senza dimenticare che un unico file sorgente può discriminare tra le varie piattaforme tramite i simboli #IF B4x
 

udg

Expert
Licensed User
Longtime User
e/o moduli di codice.
Yessa..è spiegato bene nel link di cui sopra:
Code modules. All types are supported including activities and services

Ad esempio, AppUpdating include una classe ed un service.
Con il formato b4xlib si può fare un po' di tutto. L'importante è non essere troppo gelosi del proprio codice..
Comunque, decompilando, si ricava ciò che occorre anche dal formato jar, quindi bisogna sempre valutare quanto valga la pena proteggere il proprio "tessorooo". In un forum di programmatori, poi.. :)
 

Aldo's

Active Member
Licensed User
Provo tutto e vi dico il risultato...e magari lo posto anche
 
Top