Quello di oggi sarà un tutorial un pò diverso, non vedremo infatti dei componenti nuovi ma vi spiegherò come sia possibile con dei "trucchetti" creare un applicazione multiscreen riutilizzando il codice che abbiamo inserito nello Screen1.
Mettiamo ad esempio che abbiate un applicazione creata tanto tempo fa quando ancora il multiscreen non esisteva.
Avevate fatto tutto con i metodi "visible" per simulare il multiscreen (come nel mio Tutorial 21 - Realizzare un applicazione con schermate multiple) ed ora vorreste utilizzare la nuova funzione nativa per gli schermi multipli.
Che fare? copiarsi a mano tutti i blocchi da diciamo Screen1 allo Screen2 e poi allo Screen3?
Non esistendo il copia incolla su screen diversi sareste costretti a stamparvi le schermate del blocks editor di Screen1 e poi reinserire a mano il tutto in Screen2 o dove ne avete bisogno.
Questo processo è ovviamente lungo, faticoso incline all'inserimento di errori non voluti!
Fortunatamente i soliti smanettoni che sviscerano tutti i segreti di AI han trovato un metodo un pò "brutale" ma efficace per risolvere velocemente la cosa.
In pratica si tratta di scaricare il file .zip del progetto, scompattarlo sul nostro pc e rinominare ad hoc i file del design e del blocks editor per fargli credere che abbiamo editato veramente a mano i nostri nuovi schermi :)
Nel video vedrete tutti i passaggi, in breve ve li riassumo anche qua:
1 - Prendete il vostro progetto e fatene una copia
2 - Aggiungete i nuovi schermi che vi servono
3 - Scaricate il file zip del progetto originale
4 - Scompattate e navigate in src\appinventor\ai_vostrousername\vostroNomeProgetto
5 - Copiate Screen1.blk (file del blocks editor) e Screen1.scm (design editor) in due nuovi file
6 - Questi due nuovi file devono chiamarsi come i nomi degli screen che avete aggiunto al punto 2
7 - Modificate in project.properties i nomi degli screen con quelli assegnati al punto 2
8 - Ricompattate il file .zip
9 - Caricate tramite "Upload Source" in App Inventor
10 - Il vostro progetto avrà una copia di Screen1 negli schermi che avete aggiunto al punto 2
11 - A questo punto potete modificare tutti gli screens a seconda delle vostre necessità! :)
Fantastico!!! Aspettavo da tanto qualcosa che permettesse di copiare i blocchi, come dici tu è un metodo un po' "brutale" ma alla fine copiarsi tutti quei blocchi sopratutto quando hai fatto un'app abbastanza complessa con tanta roba dentro, beh è ottimo anche questo metodo, ho seguito il video che era perfetto e beh che dire grazie mille!!!!
RispondiEliminami associo a mikebasta, dire che il video e l'idea erano fantastici è veramennte poco.. BRAVOOOOOO!!!
RispondiEliminaEccomi, fatto tutto, avevo fatto il primo livello di un giochino memory, seguendo le dritte di Sebby, poi quando credevo di averlo perfezionato mi sono accorso che per riopiare il codice e fare altri 2 livelli, ci avevo messo dimedia un'altra giornata di lavoro, che come sapete non è mai continuativa, quindi un progettino anche semplice, si porta via (a tempo perso ovvio) minimo un mesetto, se poi bisognava copiare il tutto (e che avevo ridotto i tempi usando procedure) per competare il gioco con i suoi 8 livelli m vedevo già l'uscita per natale.. invece tra ieri e l'altro ieri ho gia ricopiato gli altri 5 livelli che mancavano adessom i basta fare due modifiche , diciamo una giornata intera di lavoro e loposso pubblicare.
RispondiEliminaunici poblemi riscontrati, ma non so se dipende dal mio p.c. dal mio java o cosa, difficoltà nel ricreare una copia di sicurezza del mio progetto, io sto lavorando su memory free e volevo salvare come memory free copy e mi dava errori, poi sono riuscito e volevo risalvare come memory_Full, ma non me lo fa fare. diciamo anche che il file è grossetto..., ma per il resto tutto ok
Anche a me ci sono stati dei problemi nel eseguire la funzione copy , credo che se la effettui con il block editor chiuso e non lavori con niente sia meglio...fra l'altro l'operazione non è immediata ma ci mette un po. Ciao.
EliminaMeglio di sicuro chiudere il blocks editor ed essere nella schermata my project quando si fanno queste operazioni.
EliminaPer progetti grossi ovviamente il tempo di download e upload della nostra app può risultare abbastanza lungo, basta avere pazienza e sperare che i server AI reggano :)
ciao seba nella mia pagina ho pubblicato un metodo piu semplice per copiare i block. questo è il link : http://www.gd-web.eu/appinventor/app-inventor-copiare-gli-screen-e-relativo-blocks-editor/
RispondiEliminagrazie per la segnalazione, preferisco però il mio metodo che anche se un pò più lungo ci permette di cambiare nome ai nuovi schermi che creiamo e sopratutto fa capire cosa succede "dietro le quinte"
EliminaAd ogni modo anche l'utility di Tair è molto comoda e sopratutto rapida
Ciao salvo mi dispiace essere arrivato un po tardi peccato comunque per l'altra domanda che mi fai puoi provarci da te oppure aspettare il mio prossimo tutorial che tratterà proprio quell'argomento
RispondiEliminablueberry flashback express, questo il nome del programma che uso io
RispondiEliminaciao
Ciao ragazzi, ho due domande da porevi. POSSO USARE X LA MIA APPLICAZIONE L IMMAGINE DEL ROBOTTINO ANDROID MODICANDOLO TIPO AGGIUNGENDO UN CAPPELLO O PATTINI, o RISCHIO DI VIOLARE QUALCHE COPYRIGHT? C'è un modo x uplodare tramite facebook...es faccio un disegno su canvas,posso uplodarlo tramite un tasto sulla mia pagina facebook??
RispondiEliminanessun problema di Copyright, puoi usare Androidify per creare i tuoi personaggi volendo.
EliminaPer caricarli su FB servono le api di FB e di sicuro in App Inventor non ci sono,però puoi magari caricarlo su un server web che faccia da tramite (col componente web e il metodo Post) che poi riprende l'immagine e la carica su Fb.
grazie mille! solo una cosa seba, non è che potresti fare un tutorial sul problema facebook?? NN HO CAPITO QUESTO SERVER WEB DOVE LO VADO A PRENDERE?? ... UN'ALTRA INFO: POSSO VISUALIZZARE LO STESSO CANVAS PRESENTE SUL MIO CELL SU UN ALTRO CELL??
RispondiEliminail server web deve essere tuo e devi avere te il codice che prende in ingresso l'immagine tramite POST e poi la ricarica su Facebook, onestamente non saprei neanch'io come farlo perchè non ho esperienza di server web "miei"
RispondiEliminal'altra domanda non l'ho capita sinceramente, cmq scrivimi per email visto che questo tutorial non c'entra nulla con quello che mi stai chiedendo ... :)
DOVE TROVO LA TUA MAIL?
RispondiEliminaSe mi posso permettere: ecco la sua email seblogapps@gmail.com
Eliminagrazie mille!!
EliminaPrima di tutto ti ringrazio per il grande aiuto che dai ai neofiti come me, io stò cercando di realizzare un app che carica gli rss di un mio sito.
RispondiEliminaIl primo problema era come prelevare l'rss questo lò superato utilizzando http://appinventorapi.com/rss-feeds/
Il secondo era duplicare nell'app Tiny RSS,e questo mè l'hai risolto tu.
Ora però ti chiedo Tiny RSS permette di inserire l'url io invece vorrei preinpostare l'url e non farla visualizzare, così da avere le pagine che mi interessano nell'app.
Ultima domanda, cosa per me difficilissima, e capire come importare un certo numero di notizie nell'app, cosi da avere le ultime notizie disponibili anche in modalità off-line.
Grazie di tutto.
Ciao Gianluca, non ho visto molto bene il Tiny RSS (che è un utility creata da un gruppo di appassionati di AI ma non è parte del progetto ufficiale)
Eliminacmq da quel che vedo ti danno il sorgente per AI, quindi lo puoi modificare per fargli cmq caricare il feed RSS ma tu puoi impostare l'indirizzo da blocks editor e non far vedere il campo con l'indirizzo in design editor,non dovrebbe essere una modifica complessa.
Anche per importare solo un tot numero di notizie, dovresti invece studiarti il codice pyton che han dato nello stesso sito, modificarlo in base alle tue necessità (la cosa è complessa,dipende da quanto te ne intendi di programmazione) per fargli caricare solo tot notizie...
Altrimenti potresti cmq caricare tutte le notizie in app inventor e poi sempre tramite app inventor visualizzare solo le ultime,
il tutto ovviamente può essere abbastanza complesso e lungo da realizzare
Per salvarle per la lettura offline devi usare il TinyDb, dopo che hai caricato tutto tramite Tiny RSS salvi tutti i dati col TinyDb,
quando carichi l'app controlli se il TinyDb non è vuoto (se non lo è vuol dire che hai dei dati salvati dall'ultimo accesso all'app), carichi i dati e li visualizzi.
spero di averti dato qualche "dritta",ripeto il tutto non è proprio alla portata di un neofita ma con studio e impegno ce la puoi fare :)
Scusatemi, con AI2 come si scarica il file source per eseguire la sostituzione degli screen e come poi si ricarica?
Eliminahttp://seblogapps.blogspot.it/2012/07/tutorial-34-copiare-screens-blocks-e.html?showComment=1392644633096#c8697227863864247273
EliminaGrazie sei molto gentile
Elimina