Cerca con Google

Translate

12 febbraio 2015

Nuova versione di MIT App Inventor 2 (nb140)


Primo post del 2015 e primo aggiornamento per MIT App Inventor 2, il tool gratuito semplice e web based per la creazione di app Android.

Vediamo subito il changelog con le novità introdotte dalla versione

nb140 - 11 Febbraio 2015


Bisogna aggiornare il companion alla versione 2.24 (dovreste aver ricevuto l'aggiornamento tramite Play Store)


  • Aggiunta la proprietà "IgnoreSslError" al componente Web. Questo vi permette di interrogare contenuti protetti in SSL che hanno un certificato valido e/o scaduto. Attenzione, questo potrebbe introdurre problematiche di sicurezza visto che anche i certificati invalidi vengono accettati.
  • Aggiunto blocco "Obfuscated Text" (palette text). Con questo componente potete "offuscare" una stringa in modo che sia difficile decodificarla scompattando ed analizzando il file apk, può tornare utile se ci sono info sensibili da nascondere nelle vostre app (come una API key o altre info che devono essere secretate). Attenzione che il testo potrà comunque essere decodificato da un utente molto esperto.
  • Se si da il cancel ad un input testuale si nasconde automaticamente anche la tastiera.
  • Aggiunto il componente "Proximity Sensor" (palette "Sensors").
  • La proprietà "Padding" è stata aggiunta alle text labels (la proprietà "HasMargins" è stata aggiunta al componente "label"). Di default le nuove "label" avranno il padding (ovvero i margini). Le label esistenti nei vostri progetti non avranno il margine applicato automaticamente.
  • Il componente "BarCodeScanner" integra il codice di ZXing. Ed è stata aggiunta la nuova proprietà "UseExternalScanner". Se impostata a "true" verrà usato un barcode scanner esterno, se "false" verrà usato il barcode scanner integrato in App Inventor. Attenzione che il barcodescanner integrato non è così potente come quegli esterni, testate attentamente la vostra app prima di usarlo in maniera definitiva.
  • Migliorata la gestione degli errori in "FusionTablesControl". E' ora possibile leggere gli errori nelle Fusion Tables e gestirli nel proprio codice.
  • Aggiunta la proprietà "AppName" in Screen1. Questa proprietà è usata come nome della vostra applicazione in Android. Questo vuol dire che il nome della vostra app visualizzato non è più legato al nome del progetto ma può essere un testo qualsiasi e può avere degli spazi al suo interno (esempio: prima il nome della vostra app era sempre uguale al nome del progetto eg:"AcquaAltaApp" ora se settate la proprietà "AppName" potete cambiare il nome della vostra app in eg:"Acqua Alta Venezia"
  • Il testo scritto in un "Canvas" può ora essere allineato a sinistra,centro o destra.
  • Sistemato un errore nel componente "Spinner" che ritornava un evento extra "AfterPicking" durante lo sviluppo
  • Il componente "ListPicker" può ora avere colore di sfondo e del testo personalizzabile.
  • Il componente "ListView" ha ora la proprietà "TextSize" che permette di cambiare la dimensione del testo dei vari elementi
  • Aggiunto il metodo "RequestFocus" alle "TextBox", quando invocato il textbox selezionato diventa la posizione di default per l'input da tastiera.
  • Aggiunto il metodo "ClearCaches" al componente WebViewer. Quando invocato ogni elemento nella cache della WebView viene cancellato, così si è sicuri che i dati più recenti dal server sono caricati e visualizzati.
  • AI Companion carica ora i cambiamenti fatti nel designer più velocemente. Passare da uno screen all'altro durante lo sviluppo dovrebbe essere molto più veloce.
  • Bugfix e correzioni alla documentazione e migliorie al server che ci permetteranno di gestire meglio il servizio MIT App Inventor 2
Come vedete le novità sono molte, alcune di rilievo (il componete "ProximitySensor" di cui potete vedere un video tutorial qui sotto),



E altre piccole migliorie che potenziano le personalizzazioni della propria interfaccia utente (impostazione della dimensione testo, del colore, etc.. in vari componenti)
Altre ancora fortemente richieste (la proprietà "AppName" su tutte)

Ho realizzato un video in cui spiego velocemente tutte le nuove features,
se avete commenti usate quelli di YouTube o quelli del blog!



Buon App Inventing!!!

    17 commenti:

    1. good news, friend Sebastian T. I wonder if you can make a Recardo wall with inventor.Os app usuraios leave the comments in the app. See the example: https://lh4.ggpht.com/lj-zFKbmFCTVcD53drPagM6aLCYtkci_1uJQXBvJzm3m26NysKJYWx24-UQUEIt3k9U=h900-rw it is possible that with vafer inventor app? help me there friend.

      RispondiElimina
    2. Grazie Seb, stamattina avuto l'aggiornamento aspettavo il tuo articolo sulle novità.
      Spero in futuro l'app name (come avviene sul google store quando carichiamo le nostre app) ci possa dare la possibilità di usare più nomi (esempio: calcolatrice, calculator) per le varie lingue.
      Contatato Hal Abelson del MIT aspetto che anche il SoundRecorder possa salvare dove vogliamo e con il nome che vogliamo le registrazioni audio (me lo ha promesso, vediamo).

      RispondiElimina
      Risposte
      1. Ottimo Pier, ci spero anch'io, un bell'export del file con lo string.xml dove poter tradurre l'app in tutte le lingue sarebbe il massimo, vediamo che succede, per il momento son contento che il progetto prosegua :)

        Elimina
    3. Sarebbe bello che il ListPicker e la ListView avessero la funzione "sort".

      RispondiElimina
      Risposte
      1. in effetti dovrebbero implementare una cosa del genere, ad ogni modo hai visto il mio tutorial sull'ordinamento con javascript, è abbastanza semplice
        certo fosse integrato nel componente sarebbe meglio...
        https://www.youtube.com/watch?v=5C0S_DPFTo0

        Elimina
      2. Ho visto il video, interessante e intendo utilizzarlo. Il fatto è che serve sempre una connessione internet.

        Elimina
      3. no non serve perchè il javascript gira in locale ed è memorizzato nella tua app
        quindi l'ordinamento fatto in quel modo va anche senza connessione (però togli prima il controllo su www.google.it e magari metti un clock ad un paio di secondi per aspettare l'esito del sort)

        Elimina
    4. Ciao Seb
      Sto cercando di risolvere un problema.
      Sto usando delle tabelle di dati da cui estraggo info con SQLITE. Nel caso specifico ho come risultato della QUERY una stringa del tipo "Rossi Flavio Bianchi Emilio Verdi Giuseppe ecc" Vorrei smistare questi dati in un listpicker affinchè ogni elemento contenga un Cognome ed un Nome. Hai una qualche soluzione? Grazie , anche per il lavoro che svolgi

      RispondiElimina
      Risposte
      1. Cerca di convertire i dati in .csv, quindi ora io non so il risultato della tua query ma se è come l'esempio puoi sostituire poi gli spazi con delle virgole con le funzioni testuali di AI e poi con "list from csv row" crei una lista da mettere poi nel ListPicker,
        senza ulteriori info è difficile aiutarti ma la strada pressapoco è questa :)

        Elimina
    5. Grazie per le spiegazioni del nuovo changelog.
      Riguardo la proprietà "Padding", piuttosto che un checkbox "HasMargins" solo su TextBox e Label, sarebbe bello se tutti i componenti grafici avessero tale proprietà e sarebbe ancora più bello se si potesse aggiungere un valore numerico che determina quanto spaziare. Al momento, spesso sono costretto a inserire dei VerticalArrangement vuoti con le dovute dimensioni che mi creino la giusta separazione grafica tra un componente e l'altro!

      RispondiElimina
      Risposte
      1. hai ragione, fatto così secondo me è una mezza schifezza, speriamo implementino il padding con i valori in pixel per fare le cose fatte bene (anzi con i valori in DP sarebbe ancora meglio)

        Elimina
    6. Hello Sebastian, what the best affiliate ads to make money with app inventor?

      RispondiElimina
      Risposte
      1. I suggest that you buy the MIT App Inventor special version by Mr.Hossein that offer simple and one click integration with AdMob, the best and more efficient ad network in my opinion.
        More info at this page:
        http://goo.gl/3ZkCzH

        Elimina
    7. Hello Sebastiano T, I received this message in play.google publish.

      Phishing security alert: Some developers have received policy warning emails from a fake Google domain with variations of "Notification of Google Play Developer Term Violation" in the subject line. Please don’t click on any links in the email or other suspicious looking emails. The sender’s domain has been reported to our security team for investigation.

      You can find out more about recognizing and reporting phishing emails on the Google Accounts Help Center. To help keep your account secure, make sure to only sign in to your account on trusted, https-enabled Google pages. If you think your account has been compromised, visit the Gmail Help Center for instructions on how to review or recover your account.

      what should i do?

      RispondiElimina
    8. Ciao Seb,
      non ho capito se lo ha inviato il commento qui oppure no.
      Comunque lo ripeto:

      Innanzitutto grazie per questi aggiornamenti, spieghi molto bene come sempre.

      Volevo sapere se è successo qualcosa allo Spinner, in seguito all'ultimo aggiornamento.
      Ad esempio ho ripreso un'app delle radio multiple e non cambia da una radio ad un'altra.
      Dopo essermi vari tentativi di sistemare l'app, ho rivisto il tuo tutorial delle app multime e ho scaricato il tuo sorgente, ma da lo stesso problema. Quindi ho pensato fosse dovuto all'aggiornamento del MIT.
      Magari ora serve una funzione speciale o aggiungere un comando.

      Fammi sapere!
      Grazie ancora!

      RispondiElimina
      Risposte
      1. Ciao, non mi risulta abbiano fatto cambiamenti su quel componente, forse hanno introdotto un bug, appena ho tempo provo a darci un occhio intanto prova a debuggare anche te il problema magari con un semplice spinner e la lettura della scelta fatta dall'utente...

        Elimina
      2. Ciao Seb,
        Allora, a quanto pare non va, neanche con un semplice spinner, o almeno non ci sono riuscito io..
        Probabilmente è stato cambiato qualcosa con la nuova versione.

        Ho fatto varie prove, nel blocco dell'app (https://www.youtube.com/watch?v=V-z6dxUETuo):
        When-BnRadioSelect-Click
        Call-Spinner1-DisplayDropDown
        Set-Spinner1-Elements-GlobalListRadioNames

        Ho cambiato
        Set-Spinner1-Elements-GlobalListRadioNames

        In
        Set-Spinner1-Selection-GlobalListRadioNames

        E sembrava andare, ma dopo il riavvio dell'app, alla lettura di selection, non appare nulla nell'elenco.

        Quindi invece ho notato che se visualizziamo lo spinner (grandezza diversa da 0), lo spinner cambia e se selezioniamo dallo spinner tutto funziona, ma non funziona la selezione dal pulsante.

        PS. Scusa per i typo nella risposta precedente, dovuti ad una scrittura inviata troppo in fretta. Ho notato che se non si è loggati al blog, una volta premuto invia, la risposta si cancella e non viene pubblicata. Quindi l'ho dovuta riscrivere.

        Elimina