Italian App base (o modello o template)

LucaMs

Expert
Licensed User
Longtime User
Tempo fa (parecchio) feci qualcosa del genere ma non mi convince, non mi soddisfa (come sempre, no? :p).

Avreste voglia di collaborare allo sviluppo di un'app che sia appunto una sorta di "app base" grazie alla quale ci si possa poi concentrare solo sulla specifica app da realizzare?

Ad esempio, l'app che ho consigliato ad un amico di sviluppare è realizzabile... in un giorno (8 ore) o due al massimo, se si avesse a disposizione tutto il "contorno".

In questo momento ho un po' di fretta ma provo spiegare cosa intendo con "app base".

Se si potesse aprire un progetto base e questo contenesse (vediamo se mi viene in mente tutto):

1) splash screen (il mio vecchio progetto ha un'animazione come splash screen);
2) verifica connessione Internet attiva (mixai con la 1 ed il flusso dell'app divenne alquanto incasinato);
3) registrazione - login utente (dove? Classico spazio web gratuito? Utilizzo proprio server su VPS? Utilizzo di Firebase?)
4) gestione preferenze utente;
5) gestione dati remoti (e di nuovo, dove?, come al punto 3)

Va beh, tanta altra roba.

Se voleste collaborare (temo che abbiate poco tempo e voglia, tranne forse uno o due membri italiani) mi piacerebbe avere anche diagrammi vari dell'app, come minimo uno a blocchi.


Mi sa che ho scritto un inutile post; del resto, non è che gli altri che scrivo siano sempre così indispensabili :p
 

Star-Dust

Expert
Licensed User
Longtime User
Non ho capito niente :eek::(:D
 

LucaMs

Expert
Licensed User
Longtime User
Forse ho trovato ancora un po' di tempo, in modo da poter peggiorare questo thread, già pessimo :p.

Proprio oggi ho letto un post di @Star-Dust nel quale lui ha inserito un link ad un'app sul Play Store.
Bene, quest'app (dato solo un'occhiata al volo) "promette" di consentirti di comunicare con tutto il mondo (esagerati :D). Ma che significa, questo?
Che probabilmente affianca al gioco anche una chat, cosa che io da sempre penso sia un'atout che tutti i giochi dovrebbe avere.

Dato che in questo momento leggo...
upload_2017-10-5_11-13-7.png


mi fermo e proseguo successivamente (anche perché di sicuro perdo il filo di ciò che stavo per scrivere :p
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Non ho capito niente :eek::(:D
Non è difficilissimo capire cosa intendo, benché io non mi spieghi benissimo.

Hai presente cosa avviene quando crei un nuovo progetto b4a?

1) vengono creati alcuni file e cartelle;
2) viene creata l'activity Main con alcune righe di codice già inserite;
3) viene creato il modulo di servizio Starter, anch'esso con righe di codice già immesse.

Ora immagina che invece, alla creazione del nuovo progetto, vengano create N activity base, moduli di servizio, classi varie e moduli di codice.
Immagina che tutta questa roba si occupi della gestione dei tanti aspetti comuni a molte (se non a tutte) le app che sviupperai.

Se fosse così, dovresti giusto aggiungere poche activity e moduli vari per realizzare la tua app, senza dover ogni volta reinventare (e costruire) la ruota.

Quindi chiedevo se voleste collaborare a creare questa sorta di "app base".
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Forse ho trovato ancora un po' di tempo, in modo da poter peggiore questo thread, già pessimo :p.

Proprio oggi ho letto un post di @Star-Dust nel quale lui ha inserito un link ad un'app sul Play Store.
Bene, quest'app (dato solo un'occhiata al volo) "promette" di consentirti di comunicare con tutto il mondo (esagerati :D). Ma che significa, questo?
Che probabilmente affianca al gioco anche una chat, cosa che io da sempre penso sia un'atout che tutti i giochi dovrebbe avere.

Dato che in questo momento leggo...
View attachment 60326

mi fermo e proseguo successivamente (anche perché di sicuro perdo il filo di ciò che stavo per scrivere :p
Quindi, all'elenco del post #1, UNA delle cose da aggiungere è proprio una chat.
 

LucaMs

Expert
Licensed User
Longtime User
Il mio problema principale, comunque, è decidere come gestire gli account per le mie app.

So (vagamente) che i Google Play Game Services sono di grande aiuto, in questo, ma so anche che Google cambia spesso.... tutto (!!!) e che affidarsi ad una libreria (quella di Informatix) che non sarei (saremmo?) in grado di aggiornare da soli potrebbe essere un grosso problema.

Questo, quindi, è per me il punto cruciale (legato anche alla possibilità di aggiungere SEMPRE una chat alle nostre app).
 

udg

Expert
Licensed User
Longtime User
Per i punti 1) e 2) non basta una classe con tre funzioni: ShowSplash, HideSplash, CheckInternet ?
Fai partire Main, questi lancia ShowSplash poi esegue CheckInternet e chiude con HideSplash. A quel punto sa se caricare il normale lytMain (ovvero quello per proseguire con autenticazione o altro) oppure un lytNoInternet che mostra un messaggio opportuno e consente solo di chiudere l'app in attesa di tempi migliori.
Lo splash potrebbe essere una semplice immagine, oppure immagine più alcune label opzionali (se vuote non appaiono) per versione, licenza etc etc
 

LucaMs

Expert
Licensed User
Longtime User
Il punto sarebbe stabilire cosa e come sia meglio fare e sviluppare un progetto.

Ad esempio, hai "preso in esame" solo i primi 2 punti (il mio era un PICCOLO elenco) e già questi si possono realizzare in molti modi diversi.
Oltre a quanto scritto da te...
Parli di classe ma:
1) dove andrebbe istanziato l'oggetto? Nella Main?
2) si potrebbe (come feci) creare un'animazione che faccia da splash, anziché una semplice immagine;
3) si potrebbe fare un'activity separata che faccia solo questo (magari con verifica connessione ad internet, ma questa funzionalità potrà essere utile / necessaria anche altrove) e, sempre in questa activity si potrebbe scrivere tutto il codice necessario al suo interno oppure usare la classe di cui parlavi.

Come vedi, già solo per una piccola parte, comune praticamente a tutte le app, ci sono decisioni da prendere, tenendo in considerazione soprattutto la pulizia della "app base".
 
Last edited:
  • Like
Reactions: udg

udg

Expert
Licensed User
Longtime User
Il punto sarebbe stabilire cosa e come sia meglio fare e sviluppare un progetto.
Temo che difficilmente si possa imbastire un oggetto unico che vada bene per tutti in ogni occasione. Per quello pensavo ad una classe che esponesse delle funzioni di base richiamabili dalle varie Activity. Che poi, invece di un'unica mega classe, si sia costretti a produrne due o tre per coprire necessità diverse, ci può stare. Ci troveremmo ad utilizzare Classe1 per X progetti e Classe2 per altri Y progetti.
 

LucaMs

Expert
Licensed User
Longtime User
Temo che difficilmente si possa imbastire un oggetto unico che vada bene per tutti in ogni occasione.
E' come se dicessi che il modulo di servizio Starter non si possa creare ed inserire in ogni progetto perché ogni progetto sarà diverso dall'altro.

Se si progetta (analizza) bene, secondo me si può fare.

Certo, poi magari ci sarà un'activity utile a mostrare delle classifiche (se si trattasse di un gioco) ed una classe che si occupi di aggiornarle e questa servirebbe solo per alcuni giochi, non per ogni app. Proprio per questo ritengo che un'app di base vada progettata bene, affinché sia possibile, una volta caricato il progetto, eliminare l'activity, deselezionare una libreria ed utilizzare il resto.
 
D

Deleted member 103

Guest
Secondo me non è una cosa fattibile!
Perchè? Perchè si cambia spesso il modo die creare una App, sia perchè ogni App ha qualche cosa di molto diverso da un'altra, sia perchè si impara sempre qualche cosa di più.
Se guardo una App svilupata es. un anno fa, già usava una logica differente da oggi, quindi se devo fare alcune modifiche, devo per forza usare la logica usata un anno fa.

L'unica cosa che, secondo me, si può fare è usare delle classe e Moduli con Sub generali.
Questo è quello che uso io.
 

udg

Expert
Licensed User
Longtime User
Proprio per questo ritengo che un'app di base vada progettata bene, affinché sia possibile, una volta caricato il progetto, eliminare l'activity, deselezionare una libreria ed utilizzare il resto.
Quindi se capisco bene tu vorresti imbastire l'equivalente di B4A Example. Una volta caricato il progetto, elimini le activity o le librerie che non ti servono e tieni il resto cui aggiungi le parti nuove o peculiari al progetto che stai creando. Giusto?
 

Star-Dust

Expert
Licensed User
Longtime User
Secondo me non è una cosa fattibile!
Perchè? Perchè si cambia spesso il modo die creare una App, sia perchè ogni App ha qualche cosa di molto diverso da un'altra, sia perchè si impara sempre qualche cosa di più.
Se guardo una App svilupata es. un anno fa, già usava una logica differente da oggi, quindi se devo fare alcune modifiche, devo per forza usare la logica usata un anno fa.

L'unica cosa che, secondo me, si può fare è usare delle classe e Moduli con Sub generali.
Questo è quello che uso io.
Esistono siti che ti permettono di creare un App (ios o Android) partendo da una scelta grafica(5 o 6 scelte di stile e colore) e puoi creare un app di tipo base (con DB , accesso a internet) ma sono molto limitate.
Vedi 1 Qui , 2 Qui , 3 Qui . Affascina l'idea trasmessa dallo spot CREA UN APP IN 100 SECONDI
Sono io scemo che ci metto settimane o peggio LucaMS che sono anni per il suo gioco... A sto punto preferisco App Inventor (Qui)

Credo siano indirizzati ai non programmatori, già é un risultato se produci un App che risulta piu o meno uguale ad altre centinaia create prima di te, poco versatile in quanto obiettivo o scopo dell'App. Di certo non puoi creare un App che segue il budget della famiglia, ne app meteo, ne una gestione Ristorante o Albergo, Ne un App che mette password alle altre App (Vedi MarcoRome) ne un Kiosco, ecc...
Forse puoi creare una calcolatrice, un App che consulta dati in un database, oppure potrei avere un carrello della spesa elettronica per acquisti on line....(perché esiste nel wizard)

Concordo con Filippo che non è fattibile una idea che sia anche utile/appetibile a uno sviluppatore
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Di certo non puoi creare un App che segue il budget della famiglia, ne app meteo, ne una gestione Ristorante o Albergo,
Vediamo quali "oggetti" comuni potrebbero avere i tipi di app che hai elencato.

1) Splash screen
Questa potrebbe un'activity "elastica". Ad esempio io creai un'activity actSplashScreen che contiene un'animazione; questa è fissa, ma gli passi 3 bitmap che la rendono "differente". Andando MOLTO oltre, si potrebbe pensare a creare delle animazioni come classi (librerie) da passare a questa activity.
Potrebbe contenere il logo della tua "azienda". Nel mio caso, verifica anche se ci sia una connessione ad Internet attiva.

2) registrazione utente dell'app. Magari non servirà sempre, ma nel 90% dei casi penso di sì.

3) salvataggio preferenze utente

4) una TUA classe per esecuzione di suoni (non serve per i tipi citati di app? La togli dal progetto; MA LA COSA IMPORTANTE E' CHE NON CI SIANO RIFERIMENTI A QUESTA CLASSE NEGLI ALTRI MODULI DEL PROGETTO BASE. Per questo penso che andrebbe analizzata benissimo.

5) classi o moduli di codice per "effetti grafici" (ad esempio, prima per me era indispensabile il metodo FitCenterBitmap creato da Klaus), ma anche routine per autodimensionare delle view o dei testi, per caricare i font, etc.

6) gestione dati remoti (anche questa funzionalità penso sia spesso presente in molte app).


Tanto altro a cui ora non ho la forza di pensare :D
 

MaAncheNo

Member
Licensed User
Longtime User
Nell'ipotetico programma di "generazione semiautomatica" di un progetto, quanto potrebbe essere utile la possibilità di variare alcuni parametri del modulo?
Nell'esempio ho preso il codice SplashDemo ed ho sostituito le dimensioni e il valore di un timer che sarebbero inserite al volo, diverse per ogni esigenza, nel nuovo progetto al posto di $$$VAR1, $$$VAR2 e $$$VAR3.
Utile?

gen001.png
 

LucaMs

Expert
Licensed User
Longtime User
Beh, si, in un "ipotetico" generatore di SW dei place holder farebbero molto comodo.

Cmq, ripeto, io non pensavo ad un obiettivo del genere, trovando già complicato il mio intento iniziale, che non è altro che preparare oggetti vari (activity, classi, moduli di servizio e di codice) sufficientemente "standard", facilmente modificabili e soprattutto il più possibile indipendenti, "legati" insieme da un file di progetto (.b4a).

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).
 
Top