Italian Sviluppo multipiattaforma con B4X stessa APP windows e android

Gnappo jr

Active Member
Licensed User
Longtime User
A quanto ho capito con B4X si può sviluppare un unico progetto che poi gira sia su windows che su android che ios.
Come si procede?
Ho creato un progetto in B4J selezionando Nuovo e poi b4xpages, vedo si generano tre cartelle B4J B4I B4A, ognuna contenente lo stesso progetto molto bene!
Faccio una modifica al codice b4j e la ritrovo in quello b4a, benissimo!
Ora voglio aggiungere un nuovo "form" o pagina o layout, quindi creo un Nuovo modulo di classe e fleggo [condiviso] ma, nel corrispondente progetto B4A non vedo il modulo creato e debbo aggiungerlo manualmente selezionando il file nella cartella principalle del progetto.
Ora chiedo a chi può fornirmi una risposta:
I moduli aggiuntivi vanno inseriti manualmente nei programmi corrispondenti?
I layout di interfaccia vanno creati ex novo ognuno le altre piattaforme oppure c'è un altro modo?
Qualsiasi suggerimento per creare un app che funzioni sia per windows e per android e gradito.

un saluto a tutti
 

udg

Expert
Licensed User
Longtime User
I moduli aggiuntivi vanno inseriti manualmente nei programmi corrispondenti?
No. Li poni nella stessa directory dove c'è il B4xMainPage e poi in ciascun tool (B4J/B4A/b4i) li aggiungi tramite l'opzione di menu "Aggiungi modulo esistente", pescandoli appunto dalla dir "radice" del progetto. Usa l'opzione "relative to path".

I layout di interfaccia vanno creati ex novo ognuno le altre piattaforme oppure c'è un altro modo?
Vanno ricreati, ma se utilizzi pevalentemente componenti B4x (vedi XUI/Xui Views) o comunque multi-piattaforma, in buona paret ti basta un copia&incolla da un layout all'altro. Ad ogni modo, adattamenti per la specifica piattaforma vanno effettuati comunque (anche nel codice con i vari #IF B4A.. etc).
Resta vero che un programma ben progettato lo ricicli al 90% e più tra una piattaforma e l'altra.

Qualsiasi suggerimento per creare un app che funzioni sia per windows e per android e gradito.
Direi che tu sia già sulla strada giusta. Adottare le B4xPages ti aiuta molto. Far uso di componenti multi-piattaforma contribuisce ad avere un'unica base di codice (utile in fase di manutenzione e successivi sviluppi). Se riesci anche a rimanere sul "semplice", senza complicarti troppo la vita per ottenere effetti speciali, hai buone probabilità di riuscire in poco tempo e senza sforzi.
Un altro aiuto ti arriva dall'uso delle classi. Più roba metti lì dentro e meno codice da sistemare ti trovi in giro.

Per darti un'idea, abbastanza recentemente ho avuto modo di convertire un sw POS dalla piattaforma Windows a quella Android in un paio di giorni (parte del tempo dedicato a qualche piccolo affinamento). Altri pochi giorni e ho potuto aggiungere la gestione SumUp.
 
Last edited:

Gnappo jr

Active Member
Licensed User
Longtime User
Bene, siccome il progetto è un progetto condiviso tra più piattaforme, non sarebbe utile un automatismo che aggiunga ai progetti paralleli i moduli appena creati e allo stesso tempo li elimini o rinomini all'occorrenza?
Vediamo se Erel ci da la sua opinione.
 

hatzisn

Expert
Licensed User
Longtime User
Devi anche dare un' occhiata al fatto che quando usi due IDEs allo stesso tempo (per esempio B4J e B4A) l' autosave ad ognuno IDE puo rovinare i cambi di codice ad altro. Intendo dire che se fai qualche cambio al codice in B4J e non clicchi Salva se il prossimo in tempo autosave succede in B4A tutti i cambi in B4J sarrano persi. Una soluzzione al questo problema e cliccare Salva ad ogni cambio di codice e usare paralelamente git.
 
Last edited:
Top