mercoledì 25 maggio 2016

Raccolta fondi per i campi nativi Android/iOS

Come sapete dall'ultima campagna fondi sono avanzati circa $ 10'000, allora la società Livecode ha deciso di prolungare la scadenza del progetto per i campi nativi al 23 Giugno.
Al momento (25 Maggio) mancano meno di $ 4'000 per arrivare a quanto richiesto.
Se vi interessa andate qui: https://livecode.com/project/infinite-livecode-native-field-object/
e inviate un contributo.

martedì 24 maggio 2016

Risultati raccolta fondi

La campagna di raccolta fondi ha ottenuto $ 65'000, quindi sono stati finanziati seguenti progetti:

  • Migliorare l'architettura dei widget ($ 40'000)
  • SQLite per widget ($ 47'000)
  • Widget di registrazione audio ($ 55'000)
Siccome sono avanzati $ 10'000, con questi soldi è stata allungata la campagna di raccolta fondi per i campi nativi per mobile. In modo che sia più necessari crearli via codice.

lunedì 23 maggio 2016

Livecode open source

Come sapete livecode è open source. Ora per differenziare meglio le versioni tra gratuita e a pagamento, è nato il sito www.livecode.org, che contiene parecchio materiale solo open source.

giovedì 19 maggio 2016

Little Red Snapper

Oggi vi mostro un programma fatto con livecode, per creare loghi o banner adatti al mobile o prendere screenshot dal proprio computer:
Potete scaricarlo da qui: http://little-red-snapper.software.informer.com/

lunedì 16 maggio 2016

Mettere la pubblicità nelle nostre app

Se vogliamo, possiamo mettere la pubblicità nelle nostre app. In questo modo possiamo fare qualche guadagno anche distribuendo gratuitamente le nostre app.
Livecode si appoggia ad un sistema che utilizza il comando mobileAdCreate, che si appoggia ad un determinato publisher.
Se preferiamo un altro publisher, che magari ci fornisce più soldi, possiamo utilizzare un'altra tecnica che può essere utilizzate con publisher come https://www.smaato.com/.
Vediamo come funziona.
Innanzitutto ci registriamo per avere i dati di riconoscimento (user, password, publisherId, adSpaceId).
Poi nella nostra app creiamo un browser delle dimensioni dello spazio pubblicitario, potete scegliere di solito fra questi formati:

  • Medium Rectangle (300x250px)
  • Rectangle (180x150px)
  • Leaderboard (728x90px)
  • Skyscraper (160x600px)
  • Half Page Ad (300x600px)
  • XXLarge (320x50px & 320x53px)
  • XLarge (300x50px & 300x75px)
  • Large (216x36px & 216x54px)
  • Medium (168x28px & 168x42px)
  • Small (120x20px & 120x30px)
  • Micro Bar (88x31px)
  • Text Ad Units (solo testo)

Il codice per creare un browser 300x250 può essere il seguente:

mobileControlCreate "browser","pubblicita"
mobileControlSet "pubblicita", "visible", true
mobileControlSet "pubblicita", "rect", "0,0,300,250"
mobileControlSet "pubblicita", "url", (specialFolderPath("engine") & "/pubblicita.html")

Notate che l'indirizzo della pagina web da mostrare è una pagina HTML che creiamo noi, ecco il codice da mettere nella pagina HTML, che di solito vi fornisce il publisher:
<!DOCTYPE html>
<html>
 <head>
  <meta charset="UTF-8">
  <title>SqAdds</title>
 </head>
 <body>
  <div id="smaatoad" style="padding: 0px"></div>
  <script type="text/javascript" src="http://soma-assets.smaato.net/js/smaatoAdTag.js">       </script>
  <script>
  function callBackForSmaato(status){
   if(status == "SUCCESS"){
    console.log('callBack is being called with status : ' + status);
    } else if (status == "ERROR"){
    console.log('callBack is being called with status : ' + status);
    }
   };
 SomaJS.loadAd({
 adDivId : "smaatoad",
 publisherId: xxxxxxxx,
 adSpaceId: yyyyyyyy,
 dimension: "full_320x480",
 age: 16
 },callBackForSmaato);
 </script>
 </body>
 </html>

Ovviamente al posto di xxxxx e yyyyy dovrete mettere le vostre credenziali.
Fatto ciò ricordatevi di impostare la copia del file dentro la app:

Finito.

venerdì 13 maggio 2016

Infinite Livecode

Livecode ha lanciato la campagna infininte, di che cosa si tratta?
E' una campagna di raccolta fondi per velocizzare lo sviluppo dei seguenti progetti:

Migliorare l'architettura dei widget ($ 40'000)

Livecode funziona utilizzando tuta una serie di controlli predefiniti, che possono essere raggruppati per creare controlli più controlli più complessi, come ad esempio i datagrid. L'unico limite e che certe volte servirebbero dei controlli per fare delle cose molto particolari (che non interessano al grande pubblico) o che si appoggino ad delle funzioni che sono presenti solo in un sistema operativo. I widget colmano questa lacuna permettendo di creare controlli molto specifici, che possono appoggiarsi a librerie di C o Java o del sistema operativo.
Creare un widget è chiaramente riservato a programmatori esperti che hanno bisogno di comandi molto particolari, ma attualmente il linguaggio per creare i widget è troppo primitivo.
Con questa iniezione di liquidità livecode può accorciare i tempi di sviluppo per finire il linguaggio di programmazione per widget.

SQLite per widget ($ 47'000)

Al momento SQLite è integrato in Livecode, ma non è integrato nel linguaggio per widget

Widget di registrazione audio($ 55'000)

Un widget che permette di registrare l'audio su Android, iOS, Windows, Mac e Linux

Widget campi nativi su mobile ($70'000)

I campi nativi vanno creati al momento su Android e iOS, un widget che rendesse tutto più semplice, che si può spostare e allargare sarebbe molto meglio.

Conclusioni

Se tutto ciò vi pare interessante, andate su https://livecode.com/project/infinite-livecode/ e donate quello che ritenete giusto.

giovedì 12 maggio 2016

Video con domande e risposte su Livecode 8

Ecco un video su Livecode 8 preparato dal CEO di livecode per una conferenza con domande e risposte:

martedì 10 maggio 2016

Rilasciata nuova versione di livecode 8

E' appena uscita una nuova versione di livecode 8, vediamo le novità.

Migliorati i widget

I widget cono come dei controlli raggruppati che non è possibile modificare.
Sono presenti nella versione gratuita i seguenti widget:
  • browser: rende immediato mettere un browser nel nostro programma.
  • orologio: un esempio di cosa si può fare coni widget
  • barre varie: per fare menu tipicamente su cellulari e tablet
  • Grafico: per fare grafici, i dati sono in colonna, separati da virgole. Questo per semplificare l'importazione da database e fogli di calcolo.
  • SVG: questo permette di mettere un'immagine vettoriale, è disponibili una lunga lista di icone tra cui scegliere. Potete creare delle icone vostre, impostando la proprietà iconPath secondo le regole HTML per la grafica vettoriale che trovate qui: https://www.w3.org/TR/SVG/paths.html#PathData
  • pulsante cellulare: permette di mettere un pulsante ON/OFF stile cellulare
  • menu ad albero: per creare i menu ad albero, i dati sono sotto forma di array

Json

Integrata la possibilità di importare ed esportare i dati in forma Json, ora sono presenti le funzioni JsonExport() e JsonImport().

Aspetto Desktop

Adesso i programmi generati per desktop per la grafica si appoggiano completamente alle librerie native del desktop, quindi dovrebbe sembrare ancora più naturali. Inoltre gran parte delle icone è stata ridisegnata in SVG, così apparirà perfetta su qualsiasi display.

Mac a 64 bit e 32 bit

Adesso è possibile scegliere se creare il programma su Mac per 32 bit o 64 bit.

Copia e incolla avanzato

Ora il copia e incolla ha molte più opzioni.

Esportazione da makdown a HTML (XHTML)

La funzione mergMarkdownToXHTML() permette di convertire un testo da markDown a HTML.

Menu di selezione del colore per iOS

Un menu dedicato per la selezione del colore su iOS

Ulteriori informazioni sul dispositivo

Per iOS si possono avere ulteriori informazioni

Accesso alle funzioni  AVAudioRecorder di iOS

Per il microfono, su iOS, sono disponibili anche le classi AVAudioRecoder.

Variare la luminosità dello schermo su iOS

Potete sapere e variare la luminosità dello schermo su iOS

Effetto sfocato

Si possono sfocare le immagini con il comando blur.

Impostazioni di stampa

E' stat inserita la libreria rrhardcopy che permette di impostare delle proprietà di stampa.

A pagamento

I seguenti pacchetti sono presenti solo attivando una delle licenze a pagamento:
  • server FTP dentro i nostri programmi/app
  • librerie per Facebook, Twitter e Weibo
  • sistema di mappe
  • gestione documenti e anteprime per iOS
  • la possibilità di usare iAd su iOS
  • lettura codice a barre
  • sistema di gestione e modifica video per iOS
  • popup per iOS
  • gestione posizione per iOS, in modo che la appa faccia qualcosa non appena enrati in una zona.
  • gestione impostazioni per iOS
  • libreria per Dropbox su iOS
  • lettore PDf per iOS
  • action sheet su iOS
  • libreria bluetooth per Mac e iOS
  • crittografia AES a 128 bit e 256 bit in modalità CBC o ECB
  • ulteriori librerie per le notifiche su iOS
  • librerie er la gestione multimediale per iPod e iOS
  • librerie per gestine app in background su iOS
  • librerie per avere informazione sul collegamento internet su iOS
  • librerie per il servizio Bounjour  per iOS
  • librerie per amazon web service su Mac e iOS
  • librerie per Game center per iOS
  • ulteriori librerie per i socket su iOS
  • riconoscimento biometrico (tipo le impronte digitali) per iOS
  • controlli con grafica nativa per iOS
  • google spreadsheets api per Mac e iOS 

Solo per licenza business

Solo per la licenza business è disponibile un sistema di comunicazione per hardware esterni con iOS. Tipo telecamere, sonde, ecc.


martedì 3 maggio 2016

Lavorare con i dispositivi retina

Alcuni prodotti Apple hanno una risoluzione molto elevata, poichè sono forniti di schermi modello retina. Quando si scrivono programmi che girano contemporaneamente su diverse piattaforme com econ livecode, bisogna tenerne conto.
Ad esempio il seguente programma gira benissimo su qualsiasi dispositivo:
Ma se lo voglio scalare per riempire lo schermo, potrei ottenere il seguente risultato su uno schermo ad altissima risoluzione:
Funziona, ma non è perfetto. Se invece mi attivo per adattarlo ad uno schermo retina usano il comando:

iphoneUseDeviceResolution true
ottengo questo:
Come vedete l'effetto è diverso, perchè per compatibilità i dispositivi Apple hanno 2 risoluzioni sui dispositivi retina, con il comando iphoneUseDeviceResolution scegliete di usare quella più alta o quella più bassa.
Per sapere se il display è retina, utilizzate la funzione iphoneUseDeviceResolution(); se il valore è 2 è un retina, se è 1 non lo è.