Italian App base (o modello o template)

LucaMs

Expert
Licensed User
Longtime User
(che davvero sto pensando di chiamare Penelope, oppure il suo nome originale greco o inglese :D).
upload_2017-10-13_11-25-55.png


:p


N.B. Ovviamente i nomi di persona non andrebbero "tradotti" (a meno che non si torni al ventennio :mad: oppure non si sia un telecronista sportivo che sfoggi la sua non conscenza delle lingue, pronunciando con "accento francese", ad esempio, un cognome inglese di un calciatore nato in Francia! Ma queste sono eccezioni che Sgarbi chiamerebbe "capre, capre, capre").


P.S. Capre che guadagnano un botto, dai nostri canoni, e che nemmeno ci trasmetto partite, se non al massimo la Coppa Italia (pure sponsorizzata, quindi gli hanno pure cambiato nome; oh, ma possibile che mi faccia tutto schifo oggi, maremma smandrappata? Sarà la vecchiaia? E non chiamatemi Brontolo, che la mia unica qualità è essere alto 1.84m :p)
 
Last edited:

MaAncheNo

Member
Licensed User
Longtime User
.... In realtà, l'obiettvo finale è lo stesso da almeno 4 anni: rimandare la pubblicazione della mia prima app (che davvero sto pensando di chiamare Penelope, oppure il suo nome originale greco o inglese :D).

No! non puoi scaricare su di me questa responsabilità :D

Come dici tu si tratta di standardizzare.... i problemi che ho incontrato riguardano, oltre il nome dei moduli, gli eventuali files di supporto, come i layout o le immagini che non possono avere lo stesso nome in quanto la destinazione è univoca.
In quel caso il processo di generazione si interrompe.
Discorso diverso per le librerie *.jar dove verifico solo che siano presenti e al massimo appare un "warning".
 

LucaMs

Expert
Licensed User
Longtime User
Beh ma i layout, "standard", sarebbero legati alle activity "standard". Magari usando delle variabili per le bitmap, con documentazione ben fatta all'inizio dell'activity stessa (io continuo a parlare di una cosa diversa, non della generazione automatica che, secondo me, sarebbe molto complessa e richiederebbe parecchio tempo per lo sviluppo - e parecchi bug :D).
 

MaAncheNo

Member
Licensed User
Longtime User
Prendendo spunto dall'idea di LucaMs sta nascendo il "programmino"... Pensavo di chiamarlo Penelope2 :eek: :p ma credo sarebbe un affronto intollerabile!

Ho modificato l'idea iniziale di avere un contenitore "tutti i moduli" e poi togliere il ciò che non è necessario in ho tutti i moduli da parte e seleziono/copio solo ciò che mi serve. A mio avviso questo potrebbe semplificare anche le revisioni dei moduli base.

Quindi la prima opzione prevede di selezionare i moduli che saranno contenuti singolarmente o raggruppati per necessità, ed in base alle informazioni dei percorsi "copiare" ciò che serve nella posizione del nuovo progetto. Al momento viene effettuato il solo test di duplicazione di nome del modulo e per sicurezza la directory target deve essere vuota, il programma NON sovrascrive. E' presente anche un'anteprima del modulo visibile con un doppio click sul nome.

La seconda possibilità è quella di generare "al volo" anche il file progetto.b4a con tutte le relative sottocartelle e quindi avere già inseriti tutti i moduli necessari direttamente nel progetto *.b4a.
Questa seconda opzione è già funzionante, sono in fase finale, ho solo il problema relativo alle LIBRARY.
Infatti se un modulo necessita di Libreria esterna (p.es Network.jar) nel modulo "esterno" compare solo una cosa del tipo:

B4X:
Private myUDP As UDPSocket

ma la chiamata alla libreria è "scritta" nel *.b4a (LibraryX=Network).
In questo caso dovrei partire dal nome (UDPSocket) collegare a quel nome la relativa libreria e inserirla al volo nel file *.b4a questo per tutti i moduli.
Mah! Quasi più facile farlo che spiegarlo..... e comunque far lavorare il cervello preserva dalla demenza senile o ne allontana almeno l'arrivo:rolleyes:.
Ovviamente Place Holder e altri ...bubboli sono in coda..... insieme alla fusione di due o più progetti già realizzati (appena vado in pensione ovviamente:D).
Info e suggerimenti sono ben accetti!

gen001.png gen002.png
 

MaAncheNo

Member
Licensed User
Longtime User
Mah... il progetto non sembra riscuotere particolare interesse, metto il link alla versione ultra beta se qualcuno lo vuole provare e/o suggerire modifiche. ma credo che lo sviluppo continuerà in versione privata :D
B4A Generatot 0.1
 

LucaMs

Expert
Licensed User
Longtime User
Ehm... avevo letto di sfuggita il tuo ultimo post e poi ho dimenticato di approfondire e commentare, sorry.
(In effetti dovrei prima dedicarmi a trovare una soluzione per altro, ma prometto che seguirò eccome i tuoi post; anche perché il thread l'ho aperto io stesso :)
 

LucaMs

Expert
Licensed User
Longtime User
Non so esattamente (letto forse troppo in fretta) cosa dovrebbe fare il tuo progetto per Windows ma la mia idea è diversa.

Non pensavo ad un generatore, ma ad un (o magari più d'uno) progetto base, con le funzionalità (e moduli di base.

A parte che penso che nella maggior parte delle app alcuni moduli (vari tipi, activity, di codice, di servizio), si potrebbero creare dei modelli di app.

Cioè, sempre tramite un sw per Windows (o in b4j, così può girare anche su altri S.O.), si potrebbero gestire dei progetti modello; il sw mostrerebbe un elenco dei nomi di questi progetti, tu ne selezioni uno, tasto "crea" ed il sw copia i file necessari in una nuova cartella di progetto. A questo punto si potrebbe anche creare il file b4a, usandone uno base ed aggiungendovi il necessario ma temo che questo file b4a potrebbe cambiare struttura, in futuro, nelle future versioni di b4a.

Potrebbe appoggiarsi ad un db che contenga appunto i nomi dei progetti modello (tabella principale) ed una tabella per ogni tipo di modulo, con relativo path; però quale db? Un SQLite? Si può fare anche in altro modo, salvare una o più map (ad esempio una map per ogni progetto modello).

L'importante è però tenere in considerazione le eventuali relazioni tra moduli; ad esempio, un'activity o una classe potrebbero sfruttare routine di un modulo di codice.

Penso che la prima cosa da fare potrebbe essere quella di elencare le funzionalità base di un'app android ed i moduli necessari, come ad esempio, Main (quali funzioni dovrà svolgere), Activity per registrazione-login-autenticazione utente, activity separata per splash screen? etc.
 

Star-Dust

Expert
Licensed User
Longtime User
Appena ho tempo lo guardo
 

Star-Dust

Expert
Licensed User
Longtime User
Lazarus bellissimo. Ma il Delphi successore del pascal compila direttamente per Andoird e ios
 

MaAncheNo

Member
Licensed User
Longtime User
Cioè, sempre tramite un sw per Windows (o in b4j, così può girare anche su altri S.O.), si potrebbero gestire dei progetti modello; il sw mostrerebbe un elenco dei nomi di questi progetti, tu ne selezioni uno, tasto "crea" ed il sw copia i file necessari in una nuova cartella di progetto. A questo punto si potrebbe anche creare il file b4a, usandone uno base ed aggiungendovi il necessario ma temo che questo file b4a potrebbe cambiare struttura, in futuro, nelle future versioni di b4a.
Potrebbe appoggiarsi ad un db che contenga appunto i nomi dei progetti modello (tabella principale) ed una tabella per ogni tipo di modulo, con relativo path; però quale db? Un SQLite? Si può fare anche in altro modo, salvare una o più map (ad esempio una map per ogni progetto modello).
L'importante è però tenere in considerazione le eventuali relazioni tra moduli; ad esempio, un'activity o una classe potrebbero sfruttare routine di un modulo di codice.
Penso che la prima cosa da fare potrebbe essere quella di elencare le funzionalità base di un'app android ed i moduli necessari, come ad esempio, Main (quali funzioni dovrà svolgere), Activity per registrazione-login-autenticazione utente, activity separata per splash screen? etc.

Il programma fa questo al 90%.... manca solo parte che dici tu, cioè quella di mettere mano ai sorgenti per poterli "preparare" all'applicazione.
Per quanto riguarda invece la possibilità di far girare il programma su altri S.O. Lazarus è un CrossCompiler che, a patto di non usare librerie specifiche di un S.O. , genera eseguibili per varie piattaforme.
 
Top