Italian App base (o modello o template)

Discussion in 'Italian Forum' started by LucaMs, Oct 5, 2017.

  1. LucaMs

    LucaMs Expert Licensed 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 likes this.
  2. Star-Dust

    Star-Dust Well-Known Member Licensed User

    Non ho capito niente :eek::(:D
     
  3. LucaMs

    LucaMs Expert Licensed 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: Oct 5, 2017
  4. LucaMs

    LucaMs Expert Licensed User

    Ecco, mi sono fermato per niente :p.
    Era solo un:
     
  5. LucaMs

    LucaMs Expert Licensed User

    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: Oct 5, 2017
  6. LucaMs

    LucaMs Expert Licensed User

    Quindi, all'elenco del post #1, UNA delle cose da aggiungere è proprio una chat.
     
  7. LucaMs

    LucaMs Expert Licensed 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).
     
  8. LucaMs

    LucaMs Expert Licensed User

    Ah, all'elenco di cui al post #1 mancano anche:

    1) la gestione della pubblicità;
    2) i vari "share";
    3) già dimenticato :D:(
     
  9. udg

    udg Well-Known Member Licensed 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
     
  10. LucaMs

    LucaMs Expert Licensed 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: Oct 5, 2017
    udg likes this.
  11. udg

    udg Well-Known Member Licensed User

    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.
     
  12. LucaMs

    LucaMs Expert Licensed User

    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.
     
  13. Filippo

    Filippo Expert Licensed 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.
     
    Star-Dust likes this.
  14. udg

    udg Well-Known Member Licensed User

    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?
     
    LucaMs likes this.
  15. Star-Dust

    Star-Dust Well-Known Member Licensed User

    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: Oct 5, 2017
  16. LucaMs

    LucaMs Expert Licensed User

    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
     
  17. MaAncheNo

    MaAncheNo Member Licensed User

    Ma l'App base non potrebbe essere creata "al volo" da un programma apposito?

    B4Agenerator.png
     
    LucaMs likes this.
  18. LucaMs

    LucaMs Expert Licensed User

    Ancora più complesso! Sì, si potrebbe fare, ma già ciò (e non c'ho, @udg :p) che intendo io non è semplice (per me, da quando ho perso da qualche parte il 50% dei miei neuroni, che erano 4 :D).
     
    MaAncheNo likes this.
  19. MaAncheNo

    MaAncheNo Member Licensed 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 likes this.
  20. LucaMs

    LucaMs Expert Licensed 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).
     
    MaAncheNo likes this.
Loading...