Italian Organizzazione di un progetto. Come fare?

davideb

Member
Licensed User
Longtime User
Dopo aver provato, testato, scritto le classiche cavolat-app (compresa una per calcolare il punteggio nelle gare di karate) mi sono finalmente deciso a scrivere un paio di applicazioni un attimo più serie, più che altro frontend per tablet di soluzioni gestionali che già girano in ambiente Windows (e qualcosa anche su mac).
Per fare le cose semplici ho deciso di partire da una app. per la creazione di fatture.
Ho preso carta e penna, e mi sono stilato l'elenco delle "FORM", o meglio ACTIVITIES, per fare questo tipo di gestione.
Mal contate, le tabelle da gestire sono, a questo punto dell'analisi, 7. Ovvero, Banche, Pagamenti, Tipi di documento, Clienti, Documenti, Righe dei documenti e Prodotti.
Sono ben consapevole che in realtà manchino ancora parecchie cose, ma l'importante, in questo momento, è mettere in piedi la soluzione.
Tralasciamo la gestione dei documenti e delle relative righe, che prevede ALMENO 5 activities, (Scelta documento, Inserimento dei dati di testata, di dettaglio, di piede, nonché un finale) ho deciso di suddividere la gestione delle altre tabelle in 2 activities (Scelta del record e dell'operazione, ovvero cancellazione, inserimento e modifica da una parte, gestione dei vari campi dall'altra) per cui, a conti fatti, solo per la gestione documentale sono necessarie 6*2 + 5 + main = 18 activities, con ancora da gestire statistiche (anche se mi chiedo che senso abbia fare statistiche su un tablet), stampe e menate varie.
Come si vede il progetto diventa un attimino complesso, con almeno una trentina di files da gestire.
Visto che non ho scoperto la luna, e che sicuramente c'è qualcuno che si è già ritrovato in una situazione del genere, vorrei capire come fare a (attenzione... best practice, non verità rivelate):
  1. Gestire un progetto base così, o anche più complicato
  2. Evitare la duplicazione con il copia-incolla di parti di codice
  3. Evitare di impazzire mancando una organizzazione gerarchica del progetto
 

maxware

Well-Known Member
Licensed User
Longtime User
Ciao Davide ..se vuoi ti vendo il codice sorgente di AlfaDesk ..scherzi a parte
Su un progetto simile al tuo ci lavoro ormai da 2 anni
all'incirca 40/50 Acrivity e un 100 di pannelli loyout ( magari meno visto che qualcuno e' obsoleto )
L'unico consiglio che posso darti e' in qualsiasi modo tu lo progetti c'e sempre qualcuno che ha buisogno di una cosa particolare
Ti faccio un esempio
In teoria il valore di una riga e' data da Qta * Prezzo ( non metto eventuali sconti condizioni ecc. ecc. )
Bene ho avuto una richiesta da uno che vende ferro che aveva bisogno del caolcolo per peso
Ossia Volume della barra in ferro * Peso specifico * Prezzo al Kg * Qta
Ciaoooooo
Mamo
 

davideb

Member
Licensed User
Longtime User
Ciao Davide ..se vuoi ti vendo il codice sorgente di AlfaDesk ..scherzi a parte
Su un progetto simile al tuo ci lavoro ormai da 2 anni
all'incirca 40/50 Acrivity e un 100 di pannelli loyout ( magari meno visto che qualcuno e' obsoleto )
L'unico consiglio che posso darti e' in qualsiasi modo tu lo progetti c'e sempre qualcuno che ha buisogno di una cosa particolare
Ti faccio un esempio
In teoria il valore di una riga e' data da Qta * Prezzo ( non metto eventuali sconti condizioni ecc. ecc. )
Bene ho avuto una richiesta da uno che vende ferro che aveva bisogno del caolcolo per peso
Ossia Volume della barra in ferro * Peso specifico * Prezzo al Kg * Qta
Ciaoooooo
Mamo
Ciao Mamo.
Fermo restando che per me il tablet rimane una cosa "collaterale", nel senso che le app che sto scrivendo non sono fini a se stesse ma frontend di soluzioni già fatte in ambiente Windows (e anche mac... anche se in percentuale residuale), mi rimane da capire come fare a gestire una app di 50 activity e di 100 pannelli di layout, in maniera da riuscire a sopravvivere (tra l'altro non mi quadrano questi numeri, giacché per mia semplicità ho strutturato ... 1 activity -> 1 Pannello di layout... BOH?)
Mi spiego meglio:
In visual studio o in eclipse ho il mio bel project Explorer nel quale ho la possibilità di ordinarmi il mio codice e raggrupparlo in cartelle. In B4A ho il tab Modules con un elenco ordinato alfabeticamente di tutti i moduli... che però non posso raggruppare.
Capisci anche tu che un programma con un centinaio di files sorgente è tutt'altro che gestibile con un sistema di questo genere, e 100 files di sorgente si raggiungono in poco tempo. Vorrei capire come fanno gli altri e adeguarmi o migliorare.
I miei dubbi riguardano anche le modalità di scrittura del codice stesso.
Mi spiego.
In vbnet, dovendo fare gestioni archivio, mi sono scritto il mio framework di classi per fare le cose più velocemente, tanto che una mia gestione archivio si risolve normalmente nell'override di 6 funzioni (nello specifico, se ti interessa, CaricaDati, RecordInit, DaRecordAVideo, DaVideoARecord, Controlli e SalvaDati), con il grosso vantaggio di avere un codice molto lineare e molto corto (la media è di 3 righe per ogni field di record... scusami se è poco!), con funzioni che fanno sempre le stesse cose nello stesso modo, e quindi con manutenzione semplificata, ed inoltre derivando da una serie di classi, se correggo un errore nella classe padre, mi ritrovo a tappeto tutto corretto sulle classi figlie.
Ti chiederei quindi, se ti va, di dare un'occhiata ai miei sorgenti e di darmi qualche suggerimento in merito, così da evitarmi degli errori di concetto che mi farebbero perdere solo del tempo.
P.s.
Queste applicazioni SE MAI FINIRANNO SULL'APPSTORE, non saranno certo gratuite né tantomeno adattabili ai "tiramenti" di ogni cliente.
Io sono dell'idea che le personalizzazioni si pagano, ed anche bene. Anche perché trovo poco giustificabile il vendere a 5 euro una applicazione che poi devo personalizzare quando altri clienti pagano 1500 euro ad installazione per un programma pc che fa la stessa cosa... personalizzazioni a parte.
 

AlpVir

Well-Known Member
Licensed User
Longtime User
Ciao Davide
Non è detto che un progetto con 50 activity debba comprendere 50 layout (e quindi un totale di 100 file). Personalmente ho trovato abbastanza comodo a volte non utilizzare i layout ma generare ogni videata da codice; si ha anche il vantaggio di poterle adattare meglio alle dimensioni dello schermo. Ad esempio se vuoi avere una serie di 30 (esempio) Label affiancate da altrettanti EditText (la solita mascheda di input) te la puoi cavare facilmente con un bel ciclo FOR NEXT impostando dinamicamente le proprietà left, top e persino width di ciascuna Label e di ciascun EditText.
Non possiedo un tablet ma avrei qualche minima perplessità nel consigliare un tale dispositivo per far girare un gestionale un po' corposo; sarà anche figo amministrare (ad esempio) un condominio durante le pallose riunioni ma permangono in me dei dubbi circa l'efficacia di tale soluzione.
In questi ambiti si potrebbero persino usare efficacemente prodotti tipo TeamViewer che si collegano ad un normale PC; in questo caso non sarebbe necessario alcun sviluppo di software ad hoc.
C'è poi il discorso del database: locale ? sul Web ? importato dal PC ? come tenere sincronizzati i 2 database (se esistono) PC e tablet ?
Per adesso ho realizzato solo 2 app più "serie" ed entrambe prevedono un ruolo assai importante per il PC a cui è deputata (in linea di massima) l'immissione dei dati lasciando allo smartphone (non al tablet che per ora ignoro) il compito della visualizzazione dei dati in mobilità.
Mi pare una risoluzione sensata: "ofelè fa el to mestè". Il piccolo smartphone visualizza in mobilità (e senza rete) mentre col PC e la sua tastiera digito comodamente quello che voglio e preparo al meglio il materiale da caricare sullo smartphone.
Con il tablet le cose possono cambiare ma non di tantissimo.
Sono forse opinioni controcorrente ma sono le mie.
Un'ultima considerazione circa il mondo delle app ed il loro bassissimo prezzo: sono conseguenza del fatto che sono vendute (debbono essere vendute) in un numero grandissimo di esemplari per giustificare l'investimento di tempo da parte del/dei programmatori. Ho l'impressione che molti di quelli che si approcciano al mondo delle app credano, sperino, di inventare la killer application che li porterà a trascorrere il resto della loro vita alle Seychelles. Molti saranno i delusi.
 

davideb

Member
Licensed User
Longtime User
Ciao Ugo.
Credo che sia chiaro che il mio, più che un discorso "tecnico", ovvero "Come faccio a fare questo", vuole essere un discorso di filosofia progettuale.
Perché le applicazioni vanno progettate, almeno questa è la mia opinione, più che scritte. La scrittura normalmente è una fase che personalmente trovo abbastanza noiosa.
Io non sono molto favorevole alle autocomposizioni di form... a meno che queste vengano caricate magari fa un file di testo, in maniera da poterle configurare una ad una. Questo mi fa venire una certa voglia, anche perché alla terza gestione archivio sono già stufo di scrivere e di andare dietro alle cose... visto che ho appena finito di "smadonnare" dietro ad una che aveva i riferimenti dei pulsanti sbagliati, perché presi con il copia-incolla.
Discorso "funzionalità app per tablet, smartphone".
Il primo a dire che le app, almeno le mie, sono "complementari" ad una più complessa e completa gestione su PC sono io.
Una app su un tablet ti serve quando vai in giro... Comperi e carichi la merce a magazzino, vendi e scarichi la merce e fai un proforma.
Sincronizzi su PC, stampi, mandi al commercialista, al cliente... Ma il cuore, almeno per il momento, rimane il PC.
Anche perché ho dei seri dubbi che un tablet possa gestire una fatturazione reale fatta e finita (penso al fatto che Venerdì un mio cliente ha caricato una fattura con 470 codici diversi, beeppati con il barcode ed è venuta fuori una cosa di 60 pagine e 9000 euro, per un totale di 4 ore di lavoro... metti che si scarichi la batteria).
Discorso Database... Per il momento uso SQLITE in locale, ho un paio di DB su azure che appena possibile proverò a collegare a B4A, più un server dedicato sul quale fare esperimenti. Il Sqlite è favoloso per il fatto che gira realmente dappertutto, e dai miei programmi lo gestisco comodamente... almeno in import ed export.
Sul Teamviewer... da possessore di licenza, va molto bene per la teleassistenza o per l'insegnamento a distanza. Ma usato sui tablet... non mi ha soddisfatto.
Infine...
Lascio le Killer app ad altri più in gamba di me... a me interessa un altro tipo di cose.
 

maxware

Well-Known Member
Licensed User
Longtime User
Ciao raga
Due anni fa quando ho iniziato a pensarci ho semplicemente cercato di vedere cosa facevano le altre app di settore per farmi un mezza idea se vi era spazio per crearne una nuova. Ce ne sono tante , quindi ti consiglio anche a te di vedere cosa propone il mercato per non fare doppioni , e principalmente due cose mi "davano fastidio" . La prima all'avvio pagina di registrazione e la seconda i documenti che si potevano creare " Fattura ddt preventivi e basta. Da qui l'idea di AlfaDesk il cui cuore e' la tipologia di documenti completamente personalizzabile in modo da cercad i coprire un piu' i piu' ambiente piu' disparati. Per il prezzo concordo con AlpVir . e' un tipo di app particolare difficle fare grossi numeri . Poi ( parlo esclusivamente per esperienza personale , e' difficilissimo far capire che all'utente che ti chiede una modifica il valore della stessa , visto che l'app lòa paga pochi euri.
Per quanto mi riguarda ne ho vendute poche come potete vedere ( anche se e' in vendita da meno di un mese prima era gratis ) ma la soddisfazione a volte sono altre e non per forza devono essere economiche. nel mio caso la primissima versione , la Sunrise , e' stata recensita su AndropidMagazine e per me che scrivo codice ormai da 20 anni e' stata una enorme soddisfazione
Il fatto poi delle numerose activity ecc.ecc. e' dato dal fatto che Alfadesk non fa la fattura e basta . a volte mi dimentico pure io le cose che puo' fare. ( magazzino , statistiche closud, scadenze storico , promozioni listini visite percorsi ecc....... )
Ciauzzzzzzzzzzzz
Mamo
 

davideb

Member
Licensed User
Longtime User
Due anni fa quando ho iniziato a pensarci ho semplicemente cercato di vedere cosa facevano le altre app di settore per farmi un mezza idea se vi era spazio per crearne una nuova. Ce ne sono tante , quindi ti consiglio anche a te di vedere cosa propone il mercato per non fare doppioni , e principalmente due cose mi "davano fastidio" . La prima all'avvio pagina di registrazione e la seconda i documenti che si potevano creare " Fattura ddt preventivi e basta. Da qui l'idea di AlfaDesk il cui cuore e' la tipologia di documenti completamente personalizzabile in modo da cercad i coprire un piu' i piu' ambiente piu' disparati.
Ciao Massimo.
E' mia abitudine guardare cosa fanno gli altri ma non fermarmi a quello.
Peraltro vedo in b4a alcuni "limiti" che sto cercando di capire come gestire e/o superare.
Come ho già abbondantemente detto, vedo nelle soluzioni "all tablet" una serie di limiti.
Ad esempio, alcune parti di contabilità analitica ed analisi di fatturato su PC credo che sarebbero difficilmente replicabili as is su un tablet, almeno con pari facilità. (se vuoi ti faccio anche vedere cosa intendo).
Questa è la mia opinione.
Quanto alla ricerca di soluzioni adatte a tutti sono molto scettico in merito, avendo provato sulla mia pelle cosa significa gestire progetti PC da un migliaio di installazioni (si... 1200 installazioni in 5 lingue e 7 paesi) per cui sto arrivando alla amara conclusione che...
Ti piace? Bene.
Non ti piace? Comperati qualcos'altro.
 
Top