Symbian a cuore aperto

4 02 2010

La Symbian Foundation ha ufficializzato la disponibilità sotto licenza open source dell’intero codice sorgente del sistema operativo dominante nel mondo mobile. Per utenti ed aziende si aprono nuove opportunità, le medesime che auspicano Nokia e associati

«Il nostro obiettivo è diventare la piattaforma di software più diffusa e la mossa odierna è un passo in avanti per riuscirci distribuendo un sistema aperto e disegnato per stimolare l’innovazione che è da sempre il cuore di ciò che facciamo». Era il 24 Giugno 2008: erano queste le parole di Nigel Clifford, CEO Symbian, a commento dell’acquisizione totale da parte di Nokia. Fin da allora l’obiettivo era chiaro: aprire Symbian in modo tale che una sempre più vasta massa di utenza avesse la possibilità di sviluppare soluzioni per questo tipo di piattaforma. La svolta avviene in queste ore, con l’annuncio della totale disponibilità sotto licenza open source del codice sorgente di Symbian (la pagina è al momento ancora priva di codice, atteso però nel giro di poche ore).

Symbian è ancora ad oggi la piattaforma mobile più diffusa al mondo grazie all’enorme esposizione permessa dai telefonini Nokia. Con il rilascio del codice sotto licenza open, Nokia completa una migrazione da codice chiuso a codice aperto senza precedenti che rappresenta però soltanto l’inizio delle ambizioni della fondazione: «il sistema operativo dominante è Symbian, e ora offriamo agli sviluppatori la possibilità di fare molto di più». L’appello al mondo open source è chiaro e punta dritto al cuore. Spiega infatti Lee Williams, direttore esecutivo Symbian Foundation: «Circa un terzo del codice di Android è aperto, ma niente di più. E quel che è aperto è una collezione di middleware. Tutto il resto è chiuso o proprietario». E rincara la dose: «Open source significa anche open governance. Significa permettere a qualcun’altro di controllare le funzioni di base».

La Symbian Foundation con questo annuncio ha creato un potenziale. Tramite il proprio sito stuzzica inoltre gli sviluppatori, promuovendo tutta la magnificenza di ciò che è possibile ottenere sviluppando a fondo soluzioni per mobile:

Non tutto il codice era disponibile, ma il processo risultava ormai incontrovertibilmente avviato. Parte di esso era infatti sotto Symbian Foundation License (SFL), accessibile ed utilizzabile soltanto dai membri della fondazione. Tutta la porzione pubblica del codice, invece, era rilasciata sotto Eclipse Public Licence (EPL), la medesima licenza sotto cui si conta di distribuire l’intero codice a partire da oggi.

La Fondazione Symbian è composta da gruppi quali Nokia, Samsung, Sony Ericsson, Vodafone, STMicroelectronics, AT&T, Fujitsu ed altri ancora. Nokia è ovviamente il gruppo maggiormente interessato in questa transizione, ed è per questo che ha preso la situazione in mano fin dal 2008 per arrivare a questo punto con una carta da potersi giocare: quella dell’open source. Il “nemico” è rappresentato da nomi quali Windows Mobile, Android e iPhone. Nokia dalla propria ha sviluppato Maemo, ma con Symbian le ambizioni sono maggiori. Ed è innegabile il fatto che il rilancio Nokia debba partire anzitutto dal software, visto che dal punto di vista dell’hardware il gruppo non teme rivali.

Nokia ha guidato la rivoluzione, ma ora intende tirarsi indietro e lasciar spazio. La Symbian Foundation deve iniziare a camminare con le proprie gambe. A partire da Symbian 4, che il sito stesso della fondazione prevede entro l’anno 2010.





DragonFireSDK: sviluppo di applicazioni per iPhone in ambiente Windows

29 01 2010

Eccoci a segnalarvi un nuovo software di programmazione per iPhone, che consente di creare delle applicazioni per iPhone da pubblicare poi su AppStore senza conoscere il linguaggio Object-C.

Infatti i linguaggi usati sono nientemeno che C e C++. Tutte le funzioni presenti in DragonFire richiamano tutte quelle dell’object-C per cui sarà davvero semplice realizzare degli ottimi applicativi.

DragonFireSDK rende lo sviluppo di applicazioni per iPhone davvero semplice! Avrete l’opportunità di creare applicazioni installabili su tutti gli iPhone presenti nel mondo. Il nostro obiettivo è quello di rendere i processi di sviluppo più semplici possibile per permettervi di vendere le vostre App nell’App Store. I giochi creati con DragonFireSDK possono essere completamente scritti e debuggati all’interno di Windows e saranno inoltre completamente compatibili per la distribuzione e vendita nello store Apple.

L’SDK contiene un iPhone simulator, un portale dedicato al processo di approvazione e pubblicazione su AppStore e un convertitore che tramuterà il vostro progetto in un file .app che potremo installare sul nostro iPhone Jailbroken.

Qui si possono visualizzare i codici sorgente di alcune applicazioni create con DragonFireSDK, mentre un esempio di programma già presente su AppStore è rappresentato da UnStacker, giochino semplice e gratuito.

Questo ambiente di sviluppo è attualmente in fase beta e promette davvero bene. Se volete cimentarvi con esso, scrivete a support at dragonfiresdk.com per entrare a far parte dei beta testers.

fonte





Un sito per creare velocemente icone per iPhone

4 12 2009

Avete delle immagini e volete creare icone per personalizzare vostri temi o la grafica dell’iPhone? Allora date un’occhiata al sito flavorstudios.com.

Avete delle immagini e volete creare icone per personalizzare vostri temi o la grafica dell’iPhone? Allora date un’occhiata al sito flavorstudios.com.

Il sito dedica un’apposita pagina alla creazione di icone: quello che dovete fare è scegliere il tipo di icona (trasparente, gloss, ecc…), caricare l’immagine e scaricarla.

In pochi e semplici passaggi avrete la vostra icona per iPhone già pronta e ridimensionata nei vari formati.

E’ anche possibile scaricare le icone create da altri utenti!

Il sito dedica un’apposita pagina alla creazione di icone: quello che dovete fare è scegliere il tipo di icona (trasparente, gloss, ecc…), caricare l’immagine e scaricarla.

In pochi e semplici passaggi avrete la vostra icona per iPhone già pronta e ridimensionata nei vari formati.

E’ anche possibile scaricare le icone create da altri utenti!

fonte





Sentenza: applicazione Windows per creare applicazioni iPhone

4 12 2009

Senzenza è una nuova applicazione pensata per tutti coloro che vogliono sviluppare applicazioni per iPhone e non hanno un Mac.

screenshot

Grazie a Sentenza, infatti, potrete compilare webapp per iPhoneOS utilizzando tool HTML IDE e di creare applicazioni IPA installabili tramite iTunes.

Il tool è dotato di una buona interfaccia grafica e, dopo aver acquistato la licenza al prezzo si 20$, viene fornita anche tutte la documentazione.

Maggiori info qui.

fonte





Google regala tool di sviluppo

9 11 2009

Mountain View converte all’open source alcuni degli strumenti utilizzati per costruire le sue appliance più popolari. Affinché il web sia sempre più veloce

Roma – Velocità nell’esecuzione di codice JavaScript: un desiderio espresso da Google che si trasforma in necessità vitale nell’ottica del cloud computing, che sposta il software in remoto e delega al browser web la parte di interfaccia principale per la produttività personale e professionale.

Google ha bisogno di un codice web efficiente, multi-browser e veloce, e per promuovere questa corsa alla velocità ha deciso di rilasciare alcuni dei suoi tool proprietari sotto licenza open. Si tratta di strumenti che dovrebbero avere un appeal indubbio sugli sviluppatori, considerando che sono gli stessi impiegati dagli ingegneri di Mountain View per realizzare appliance di risonanza mondiale come Gmail, Docs e Maps.

I tool rilasciati alla community comprendono Closure Compiler, con cui i GMan applicano ottimizzazioni spinte al codice JS rimuovendone porzioni “morte”, minimizzando il codice restante e in sostanza compilando “da JavaScript a un JavaScript migliore”. Compiler ha a disposizione anche alcuni add-on come Inspector, plug-in per Firebug in grado di visualizzare il codice JS nella sua forma originaria dopo la “compilazione” con il tool.

Dopo Compiler è poi il turno di Closure Library, un set di librerie comuni usate per sviluppare applicazioni JS con cui è possibile “astrarre le differenze tra i browser”, fornire strumenti chiari per task comuni, contribuire a mantenere dimensioni ridotte e alte velocità di caricamento quando utilizzate contemporaneamente a Closure Compiler.

Completa il quadro Closure Templates, un sistema di templating sfruttabile sia lato client (JS) che server (Java) per realizzare “elementi HTML e d’interfaccia utente riutilizzabili”.

“Permettendo agli sviluppatori di usare gli stessi identici tool che usa Google – dice il product manager di Mountain View Amit Agarwal – speriamo che questi possano essere usati non solo per sviluppare applicazioni evolute ma anche per rendere il Web molto, molto veloce. Questa è la ragione primaria per cui mettiamo a disposizione questi tool a favore della community globale”.

fonte





Disponibile Joomla 1.5.15

9 11 2009

Dopo poco più di tre mesi dall’ultimo rilascio stabile, e dopo circa un mese e mezzo di testing pubblico, il team di Joomla rilascia la versione stabile 1.5.15.

Pur non introducendo nuove funzionalità (anche perché parallelamente procede lo sviluppo della nuova versione 1.6), porta con se alcune importanti novità in tema di compatibilità e di sicurezza.

In primis la correzione di un bug nel frontend che permette la sovrascrittura di contenuti da parte di un utenti registrati con profilo Author, e in seconda battuta la tanto richiesta compatibilità con la più recente versione 5.3 di PHP (per chi avesse utilizzato l’ultima release di Xampp si sarà accorto di questa incompatibilità) oltre ad altri bug fix.

Dal sito ufficiale si può scaricare il pacchetto completo, l’aggiornamento oppure direttamente i pacchetti localizzati dal sito Joomla.it, pacchetti predisposti con puntuale tempestività. Il consiglio è sempre quello di eseguire un back-up e fare attenzione a chi ha utilizzato i template di default che potrebbero venire sovrascritti in alcune parti.

 

fonte





La differenza tra web 1.0, web 2.0 e web 3.0 non tutti sanno che…

14 09 2009

Sempre più spesso si sente parlare di web 1.0 web 2.0 senza sapere esattamente di cosa si tratti e fondamentalmente che differenza ci sia tra i due.
Visto che ormai si parla già di web 3.0, è il caso di fare un pò di luce su questo argomento.

Esistono ormai molti post sui vari blog che raccontano tutta la storia su come si sia passati al web 2.0, sull’esplosione della bolla dot-com nel 2001 e le varie riflessioni se la rete fosse stata sopravvalutata o meno.

Ci limitiamo qui a tracciare le definizioni dei vari tipi di web, introducendo, per quel che se ne sà ancora, quelle che dovrebbero essere le caratteristiche del web 3.0.

Partiamo con le definizioni:
Web 1.0 Le informazioni sono pubblicate in maniera statica, immaginate come un vostro foglio di word con testo e immagini, portato su web.
L’utente arriva sulla pagina, legge e se ne va senza nessuna interazione.
Attualmente il 70% degli utenti è ancora abituato a questo tipo di navigazione.

Web 2.0 Il termine venne coniato da Tim O’Reilly alla prima conferenza sul web 2.0. Per la prima volta si iniziò a dare grande importanza all’usabilità e al modo di condividere i contenuti. Il webmaster non è che una parte del sito, che, nei casi più importanti, è composto da comunità di migliaia di utenti (si pensi a Wikipedia).

Web 3.0 Come ogni rivoluzione, si cerca ora, con il web 3.0, di raffinare l’enorme cambiamento che ha portato il web 2.0: Il web 3.0 infatti, non sarà altro che un evoluzione del suo predecessore.
Attualmente non è ancora tutto chiaro ma da quel che si legge sulla rete, ma possiamo immaginarci uno scenario in cui le informazioni in rete vanno sempre di più agglomerate verso un unico database, e consultate da più pagine web grazie a tecnologie tipo XML, WSDL e derivate.

Si parla altresì di intelligenze artificiali grazie ad algoritmi sempre più sofisticati che permetteranno un orientamento migliore in una rete sempre più affollata.

Infine il web 3.0 si muoverà verso il 3D, con una rete non più fatta di pagine, ma di veri e propri spazi in cui “muoverci” per trovare quello che cerchiamo. (in questo l’esperienza di second life credo sia stata determinante).

Per finire ecco qualche esempio:

WEB 1.0 WEB 2.0
DoubleClick Google AdSense
Ofoto Flickr
Britannica Online Wikipedia
Siti personali Blogging
Screen scraping Web services
Pubblicazione Partecipazione
Sistemi di gestione dei contenuti Wikis

Come si può vedere ho evidenziato le due voci “pubblicazione” e “partecipazione” perchè fondamentalmente è questa la differenza sostanziale.
Mentre nel Web 1.0 è il webmaster il solo interlocutore con i suoi utenti, nel Web 2.0 sono il webmaster e gli utenti a comunicare.

fonte: claudiocorti.com





I concetti di base per sviluppare applicazioni Ajax

14 09 2009

I concetti di base per sviluppare applicazioni Ajax

  • Tutto ruota attorno all’oggetto XMLHttpRequest

AJAX non è un nuovo linguaggio di programmazione bensì una tecnica che permette di sviluppare applicazioni web migliori, più “performanti” e più interattive. AJAX poggia le sue basi sull’impiego di codice JavaScript che, mediante l’oggetto XMLHttpRequest, provvede ad instaurare il colloquio tra client e server evitando il “reload” (ossia un nuovo caricamento) della pagina web. In questo modo, lo sviluppatore AJAX può rendere la propria applicazione web in grado di aggiornarsi automaticamente veicolando solo le informazioni strettamente necessarie e senza dover appunto ricaricare tutti gli elementi che la compongo (già richiesti in precedenza al server).
Il trasferimento dei dati in AJAX avviene in modo asincrono: ciò significa che i dati via a via necessari vengono richiesti al server e prelevati “in background” al bisogno.

AJAX sfrutta una combinazione di standard per il web: JavaScript, XML, HTML e CSS. Le applicazioni che poggiano su AJAX sono in grado di funzionare su qualunque configurazione client, indipendentemente dal browser e dalla piattaforma in uso.

Uno dei vantaggi di AJAX consiste nella possibilità di utilizzare la tecnica per rendere le applicazioni web più “ricche” e più semplicemente fruibili rendendo così sempre più sfumato il confine con i software “desktop” tradizionali.

Coloro che operano da anni sul web non avranno difficoltà a comprendere i rudimenti di AJAX dal momento che gli standard utilizzati sono gli stessi ai quali si è ricorso in passato.

L’oggetto XMLHttpRequest

Si pensi ad un’applicazione web tradizionale, non basata su AJAX, che provveda a salvare in un database i dati inseriti dall’utente. Questi, lato client, dovrà compilare un modulo (form), cliccare sul pulsante “Invia”, attendere la risposta del server quindi l’arrivo di una nuova pagina web che mostrerà il risultato dell’operazione.

Nell’approccio AJAX, è JavaScript a comunicare direttamente con il server web attraverso l’utilizzo dell’oggetto XMLHttpRequest, supportato da tutti i browser più importanti (Internet Explorer, Firefox, Safari, Chrome, Opera). Grazie ad esso, l’utente potrà restare sulla medesima pagina web: i dati saranno inviati in modo “trasparente” così come la risposta del server sarà elaborata senza la necessità di aprire un’altra pagina.

La tecnica AJAX è stata sfruttata a partire dal 2005 e, successivamente, sono nati un sempre maggior numero di servizi che ne attingono a piene mani. Il primo esempio che balza alla mente è la funzionalità “Google Suggest”: il motore di ricerca di Mountain View, per impostazione predefinita, ogniqualvolta si iniziano a digitare i termini di una ricerca propone una lista di suggerimenti. La pagina html visualizzata è sempre la stessa ma il contenuto dell’elenco viene aggiornato dinamicamente ad ogni tasto premuto.

Il codice seguente si fa carico di istanziare un nuovo oggetto XMLHttpRequest:

<script type=”text/javascript”>
function chiamaAjax()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// codice valido per IE7 e succ., Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// codice valido per IE6 e IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
else
{
alert(“Il browser non supporta XMLHTTP”);
}
}
</script>

Com’è possibile notare, per creare l’oggetto XMLHttpRequest (denominato, in questo caso,xmlhttp), vengono usate due sintassi differenti, a seconda del browser con il quale si ha a che fare. Se la prima fallisce, viene utilizzata la seconda. In caso di nuovo fallimento, viene mostrato un messaggio che informa circa il mancato supporto di XMLHttp da parte del browser.

Come inviare una richiesta al server

Al solito, come se si trattasse di un qualunque form, la richiesta può essere inviata al server sotto forma di GET o di POST. I metodi utilizzabili allo scopo sono open()send().
Il primo metodo necessita, in ingresso, di tre parametri: è necessario specificare l’uso di GET o di POST, la pagina lato server da richiamare, un’indicazione che consente di attivare il trasferimento asincrono dei dati:
xmlhttp.open(“GET”,”ajaxtest.asp”,true);
xmlhttp.send(null);

A proposito di GET e POST

In HTML, nel momento in cui si vogliono trasmettere delle informazioni al server, ad esempio i dati inseriti in un comune modulo online (“form”), si utilizza solitamente il metodo POST: i dati vengono codificati dal browser sotto forma di un URL. Nel caso di GET, invece, il contenuto delle variabili trasmesse ad una pagina web, viene visualizzato direttamente nella barra degli indirizzi del browser (nella forma nomepagina.php?var1=abc&var2=def).
I dati inviati al server attraverso richieste GET o POST verranno elaborati per rispondere opportunamente alle richieste specifiche dell’utente. In tutte le pagine web dinamiche, il cui contenuto, cioè, viene generato dal server al momento della richiesta proveniente dal sistema client collegato e che quindi, di volta in volta, può differire, si analizzano le richieste GET e POST per visualizzare il materiale richiesto dall’utente (client). In particolare, i dati ricevuti attraverso richieste GET e POST viene solitamente impiegato, previa analisi ed eventuali rielaborazione, per effettuare interrogazioni su una base dati. Ad esempio, se una certa pagina web è stata studiata per visualizzare l’elenco degli articoli appartenenti a diverse categorie, attraverso l’uso di GET e POST, si possono estrarre da un database collegato e quindi visualizzare solo i contenuti che si riferiscono alla specifica categoria indicata dall’utente.

Nel nostro esempio si è utilizzato il metodo GET senza specificare alcun parametro accessorio. Per “colloquiare” con la pagina dinamica lato server si può decidere di abbinare dei parametri aggiuntivi.

I preparativi per l’invio della richiesta al server

Per stabilire in quale circostanza dovrà essere inviata la richiesta al server, è possibile ricorrere agli eventi JavaScript di base. Ecco una lista di quelli più utili:

onclick L’utente clicca sull’elemento HTML indicato.
onblur Un elemento HTML perde il “focus” ossia non è più selezionato.
onchange Viene modificato il contenuto del campo o della casella di testo.
ondblclick L’utente fa doppio clic con il mouse su un oggetto.
onfocus L’elemento viene selezionato dall’utente.
onkeydown L’utente ha premuto un tasto qualunque sulla tastiera.
onkeyup L’utente ha rilasciato un tasto precedentemente premuto.
onkeypress E’ stato premuto un tasto oppure mantenuto premuto.
onload La pagina o l’immagine è stata caricata.
onmousedown L’utente ha premuto un tasto del mouse.
onmouseup L’utente ha rilasciato un tasto del mouse.
onmouseover Il puntatore del mouse è stato spostato sopra l’elemento indicato.
onmouseout Il puntatore del mouse è stato spostato fuori dall’elemento indicato.
onresize La finestra del browser od un frame sono stati ridimensionati.
onsubmit E’ stato cliccato il pulsante “Invia”.
onselect Il testo è stato selezionato.
onunload L’utente ha abbandonato la pagina in corso di visita.

Ciascun evento può essere inserito all’interno di una tag HTML per scatenare l’esecuzione di uno specifico codice JavaScript.

  • Elaborare e gestire la risposta del server

Un’importante proprietà dell’oggetto XMLHttpRequest è onreadystatechange. Essa consente di gestire i dati ricevuti in risposta da parte del server web. Abbinando l’utilizzo della proprietà conreadyState, è possibile innanzi tutto stabilire se la comunicazione è andata o meno a buon fine. Nel caso in cui il valore della proprietà readyState, associata all’oggetto XMLHttpRequest, assuma il valore “4”, significa che la richiesta è stata completata con successo.
La proprietà responseText consentirà, successivamente, di leggere la risposta vera e propria fornita dal server.

Ecco come si presenta il codice finale, lato client:

<html>
<body>

<script type=”text/javascript”>
function chiamaAjax()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// codice valido per IE7 e succ., Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
// codice valido per IE6 e IE5
xmlhttp=new ActiveXObject(“Microsoft.XMLHTTP”);
}
else
{
alert(“Il browser non supporta XMLHTTP”);
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.getElementById(‘frasè).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(“GET”,”ajaxserver.asp”,true);
xmlhttp.send(null);
}
</script>

<form name=”miomodulo”>
<img src=”immagine.gif” border=”0″ onclick=”chiamaAjax();” />
</form>

<div id=”frase”></div>

</body>
</html>

Il codice dovrà essere salvato sotto forma di file html sul sistema locale (esempio:ajaxclient.html).

La tag <div> funge da “segnaposto”: all’interno di essa verrà inserito il testo ricevuto come risposta dal server web. L’operazione si concretizza con una semplice istruzione JavaScript:document.getElementById(‘frasè).innerHTML=xmlhttp.responseText;

Preparazione di una pagina dinamica lato server

La pagina ajaxserver.asp è una semplice pagina dinamica ASP. Ovviamente, lato server, sarà possibile ricorrere a qualunque linguaggio di scripting, ad esempio PHP.

<%
Response.Expires=-1
Dim massimo,minimo
Dim risultato
minimo=1
massimo=12
Randomize
risultato=Int((massimo-minimo+1)*Rnd+minimo)

select case risultato
case 1
frase=”Tanto va la gatta al lardo che ci lascia lo zampino”
case 2
frase=”Chi semina vento raccoglie tempesta”
case 3
frase=”Chi ha tempo non aspetti tempo”
case 4
frase=”Batti il ferro finch&eacute; &egrave; caldo”
case 5
frase=”A buon intenditor poche parole”
case 6
frase=”Chi dorme non piglia pesci”
case 7
frase=”Chi la dura la vince”
case 8
frase=”Chi trova un amico trova un tesoro”
case 9
frase=”Chi va con lo zoppo impara a zoppicare”
case 10
frase=”Chi va per uccellar resta uccellato”
case 11
frase=”Dire a nuora perch&acute; suocera intenda”
case 12
frase=”Impara l’arte e mettila da parte”
end select

Response.Write(frase)
%>

Lo script ASP lato server è banale: viene generato casualmente un numero tra 1 e 12 quindi viene visualizzato il detto popolare corrispondente.
Salvando su un server web IIS le due pagine ajaxserver.aspajaxclient.html quindi richiamando da browser il secondo file, si noterà come i proverbi vengano visualizzati ad ogni clic sull’immagine senza che sia effettuato alcun reload della pagina web.
Insieme ai file ajaxserver.aspajaxclient.html dovrà essere memorizzato anche un file d’immagine, in formato gif, con il nome di ajaxserver.aspimmagine.gif.

Recuperare informazioni da una base dati

Come già evidenziato in precedenza, nello scrivere il codice della funzione JavaScriptchiamaAjax(), abbiamo usato il metodo GET per l’invio della richiesta al server. Nel semplice esempio illustrato, il server selezionava a caso un detto popolare tra quelli indicati e lo “stampava” sulla pagina. La pagina dinamica lato server è invece solitamente, com’è ovvio, più “intelligente” ossia restituisce un risultato, sulla base della specifica richiesta ricevuta dal client. Tipicamente, inoltre, il server – ottenuti dal sistema client (il browser dell’utente collegato) uno o più parametri in ingresso – effettua una interrogazione all’interno di una base dati. A questo punto, dopo aver selezionato i valori d’interesse, invia il risultato dell’operazione al client.

Supponiamo che sul server sia memorizzato un database (tralasciamo i dettagli sul formato) che contenga i dati per la gestione di un’attività commerciale. La base dati ospita le informazioni circa gli acquisti effettuati dai vari clienti. Ipotizziamo, ancora, di volere fare in modo che vengano visualizzati gli acquisti effettuati da un cliente identificato con un certo ID. La pagina dinamica lato server (nel nostro caso, ajaxserver.asp) deve ricevere in ingresso l’ID del cliente e restituire l’elenco degli acquisti effettuati.

La richiesta GET effettuata mediante JavaScript diventerà qualcosa di simile:
xmlhttp.open(“GET”,”ajaxserver.asp?id=”+idcliente,true);
ove idcliente è una variabile contenente l’ID del cliente.

La realizzazione di una chiamata POST è leggermente diversa. In questo caso, è necessario fare utilizzo degli headers (setRequestHeader):

xmlhttp.open(“GET”,”ajaxserver.asp”,true);
xmlhttp.setRequestHeader(“content-type”, “application/x-www-form-urlencoded”);
xmlhttp.send(“id=”+idcliente);

Nel corso dei prossimi appuntamenti approfondiremo, sempre per esempi, l’utilizzo di AJAX. Vedremo, in particolare, come sia possibile gestire eventuali problematiche legate all’irraggiungibilità del server ed all’elaborazione di dati strutturati in forma più complessa (lettura di documenti XML).

fonte: ilSoftware





Telecom e il programma “DEV iPhone”

9 09 2009

Telecom invita tutti gli sviluppatori iPhone ad utilizzare il loro marchio per pubblicare applicazioni su AppStore.

deviphone_telecom

Se magari siete sviluppatori senza una software house alle spalle, o con pochi soldi da investire, Telecom offre a tutti la possibilità di pubblicare su AppStore le proprie applicazioni con il marchio dell’azienda.

Basta proporre l’applicazione, anche in versione beta, e questa verrà perfezionata dagli sviluppatori Telecom e, dopo aver aggiunto il brand, verrà inviata ad Apple per l’approvazione.

Sul sito non vengono fornite informazioni su come dividere gli eventuali guadagni, ma per avere maggiori informazioni vi rimando alla pagina ufficiale “DEV iPhone”.

Fonte:  iphoneitalia





Librerie open-source per sviluppatori iPhone

4 09 2009

Nel suo blog  Marco Bellinaso ha pubblicato un interessantissimo articolo sul suo blog dedicato agli sviluppatori e dal titolo “Librerie e Framework open-source per sviluppatori iPhone”. Ecco il testo completo.

apple-iphone-sdk

L’SDK dell’iPhone è veramente vasto e molto completo, e spesso rende molto semplici operazioni come dialogare con il GPS o la fotocamera on-board, scaricare dati da web, manipolare i contatti o gli appuntamenti presenti nel telefono, gestire animazioni ed effetti di transizione tra schermate ecc. ecc. Cose che su altre piattaforme possono a volte essere piuttosto complesse e problematiche (per i limiti intrinseci dell’hardwar, per i limiti dell’SDK, o per la non-uniformità dei vari modelli su cui gira un certo sistema operativo)

Nonostante queste belle parole, anche l’SDK dell’iPhone ha i suoi punti deboli. Se è vero che gestire alcune cose complesse è molto semplice, è quasi paradossale che gestire come in teoria “semplici” come riempire schermate di elenco con immagini o con testo su più righe, costruire menu di navigazione a più livelli, gestire una cache locale su disco per i dati scaricati da web, lavorare con JSON, XML, regular expression…siano cose non dico complesse, ma quantomeno macchinose e dispendiose da programmare. Perlomeno se si usano solo gli strumenti di default offerti da Apple.

Ecco allora un elenco di librerie di codice (tutte open-source e sotto licenza BSD o simili) che sto usando al momento e che permettono di ridurre molto i tempi di sviluppo per alcune funzionalità, rendendo il proprio codice anche più conciso, leggibile e manutenibile:

1) Three20: sviluppata da Joe Hewitt, autore dell’ottima applicazione Facebook Connect per iPhone, questo framework nasce appunto dal codice che Joe ha scritto per Facebook. La libreria è veramente ricca di classi; in pratica molti dei componenti di UI di base sono stati riscritti o estesi con nuove funzionalità. Ad esempio invece che usare UIButton, UILabel o UITableViewController si potranno usare le classi TTButton, TTLabel o TTTableViewController; queste versioni offrono nuove proprietà per renderizzare i componenti con stili grafici aggiuntivi, o magari per implementare una data source (nel caso di view che renderizzano elenchi, ad esempio) in poche righe e in modo centralizzato invece che dover ogni volta implementare delegate e protocolli che richiedono di scrivere un tot di metodi ogni volta. Altri componenti molto interessanti sono TTPhotoViewController e TTThumbsViewController che gestiscono schermate per visualizzare librerie di foto a tuto schermo o in versione miniatura, oppure TTURLCache per gestire una cache locale di immagini e altri contenuti scaricati via web. E altro ancora…date un’occhiata alla pagina linkata per saperne di più. Oltre a fornire una grande quantità di codice pronto all’uso questa libreria è anche un ottimo esempio di “codice ben scritto”, da usare come modello per imparare i pattern e le best-practice più comuni della programmazione con Cocoa e Objective-C.

2) OpenFlow: vi piace l’interfaccia tridimensionale CoverFlow che Apple ha usato dentro la sua app iPod quando l’iPhone è in orizzontale? Vi piacerebbe utilizzarla all’interno dei vostri programmi? In questo post Erica Sadun spiegava appunto come usare la classeUICoverFlowLayer per tale scopo; peccato la si possa usare solo in applicazioni che non saranno pubblicate sull’App Store ufficiale, perchè si tratta di una API privata e quindi Apple non gradisce che la si usi! OpenFlow invece è una totale reimplementazione custom, realizzata mediante CoreGraphics e QuarzCore per gli effetti di prospettiva e riflesso. L’effetto finale è pressochè perfetto! E’ possibile caricare le immagini tutte in un colpo solo o in maniera asincrona via via che queste devono essere visualizzate (strada da seguire nel caso le immagini siano da scaricarsi da online magari) ed è possibile cambiare le dimensioni degli elementi visualizzati. Anche qui ci sono cose interessanti da imparare studiandosi i sorgenti

3) JSON-Framework: ormai quando si interroga un servizio online è molto probabile che questo restituisca dati in JSON piuttosto che XML, data la sua maggiore compattezza e quindi maggiore velocità di download e minore consumo di banda. Questa libreria offre dei metodi “stand-alone” + una estensione alla classe NSString, per cui semplicemente chiamando la nuova proprietà JSONValue di una stringa contenente dei dati in formato JSON questi vengano “parserizzati” e inseriti in un array o dizionario, eventualmente gerarchico. Più semplice di così…

4) RegexKitLite: le regular expression sono una delle più belle invenzioni per i programmatori…e quelli che ancora non le conoscono non sanno quanto tempo stanno sprecando e cosa si stanno perdendo. Cercare, estrarre, sostituire sottostringhe all’interno di un’altra stringa con le regex diventa un compito veloce e “pulito”. Senza? Preparatevi a scrivere blocchi e blocchi di codice nidificato e indici di inizio-fine stringa che non potranno far altro che confondervi le idee. u Mac OSX esiste ICU, una libreria C/C++ statica che tra le altre cose implementa anche le regex. RegexKitLite invece è una libreria che wrappa queste funzioni C all’interno di classi Objective-C di semplice utilizzo. Come per JSON-Framework, anche in questo caso la classe NSString base viene estesacon nuovi metodi per cercare e sostituire sottostringhe complesse.

5) KissXML: certo, ormai molti servizi restituiscono JSON, ma XML ovviamente è tuttora usatissimo…e bisogna lavorarci. In Cocoa “full” (quello usato per app che girano su OSX) c’è NSXML, ovvero un set di classi (NSXMLDocument, NSXMLElement, NSXMLNode ecc.) in grado di effettuare il parsing di testo XML in un singolo passo e di rappresentarlo poi con una struttura gerarchica  in memoria, per una semplice navigazione ed estrazione dei dati. Probabilmente per motivi di performance e di consumo di memoria queste classi non sono state rese disponibili nel framework Cocoa Touch dell’iPhone e ci si dovrebbe invece accontentare della classe NSXMLParser: è un parser SAX, che quindi analizza l’XML in modalità asincrona e solleva vari eventi via via che legge e trova nodi ed elementi. E’ inoltre a sola lettura, quindi non va bene per creare o modificare documenti XML. Soluzione più comoda? KissXML, che basandosi sulla libreria C libxml2 implementa un qualcosa in stile NSXMLDocument. Se vi trovate a dover lavorare con XML non enormi e magari già presenti in locale, è decisamente un’ottima alternativa in quanto a comodità.

Ricordiamo che Marco Bellinaso attualmente sta lavorando ad una serie di progetti per la AnguriaLab e la GetConnected.

Fonte








Iscriviti

Get every new post delivered to your Inbox.