Mopapp, il servizio per sviluppatori mobile, è in beta pubblica!

martedì, 28 settembre 2010 16.58 by Marco Bellinaso

Dopo molti mesi di lavoro più o meno segreto (con l'amico e collega Alberto Falossi e con i colleghi di GetConnected e AnguriaLab), e un paio di mesi di beta privata (annunciata su iSpazio per l'Italia e da TechCrunch Europe per il resto del mondo), finalmente possiamo annunciare pubblicamente che Mopapp.com è disponibile in beta per tutti!

Cos'è e cosa fa Mopapp?  E' un servizio web-based orientato agli sviluppatori per piattaforme mobile che permette di tracciare, analizzare e rappresentare i download, le vendite, i ricavi e i profitti delle proprie applicazioni. A differenza dei competitor (specializzati per iTunes App Store), Mopapp si integra automaticamente con i maggiori store, quali iTunes App Store, Google Android Market, RIM App World, MobiHand e BlackBerry. Può quindi essere utilizzato da chi pubblica applicazioni per iPhone/iPad, Android, BlackBerry, Symbian e Windows Mobile. Inoltre, tramite l’utilizzo di una API o di un file CSV custom, è possibile importare e far analizzare dati proveniente da qualsiasi altro store o database (utile ad esempio per chi vende applicazioni tramite il proprio sito e uno script PayPal).

Si ma...perchè è utile? Beh sostanzialmente perchè i vari store o hanno dei report assolutamente limitati, criptici e con poche informazioni...o proprio non ne hanno! Tipicamente lo sviluppatore deve scaricarsi i CSV con i dettagli delle vendite/download per le diverse settimane o mesi, copiarli tutti in un unico Excel, ordinarli/filtrarli in modo opportuno, e poi configurare una serie di grafici per estrarre le info che desidera (es: quale app sto vendendo di più? in quale country? per che modello di telefono? le vendite sono aumentate o diminuite nella versione 2.0 rispetto alla 1.0? E nell'ultimo mese?...)

Se sembra complesso (o perlomeno una gran rottura, dato che è da fare perlomeno ogni qualche settimana, se non ogni qualche giorno, se si vuole avere sempre il polso di come stanno andando le cose) sappiate che lo è molto di più :)
Infatti le vendite saranno espresse con valute diverse a seconda della country del compratore, ogni store ha il suo formato proprietario (quindi bisogna farsi uno script di conversione, se si vogliono sommare i dati provenienti da più store) e le sue policy e regole per calcolare il guadagno netto (ovvero quello che paga l'utente meno la commissione dello store stesso). Quindi...lasciatelo fare a Mopapp, che essendo un servizio dedicato cerca di fornire tutte le elaborazione e rappresentazioni di cui potete aver bisogno (anche quelle che magari non vi erano ancora venute in mente magari). Vi costerà molto meno tempo (qualche minuto per censire le applicazioni da tracciare...e poi farà tutto lui...dovrete solo guardarvi i report) e fatica, permettendovi di concentrarvi sullo sviluppo della vostra applicazione, piuttosto che su script, database e grafici per l'analisi delle sue vendite e del feedback che gli utenti ne danno!

Altre funzionalità includono:

  • grafici per applicazione, store, piattaforma, modello di device, country, valuta
  • possibilità di ricevere i report via mail, settimanalmente o mensilmente
  • calcolo automatico del profitto a partire dal fatturato (ovvero vengono scorporate le commissioni dello store, a seconda delle percentuali e delle regole specifiche di ognuno)
  • conversione tra valute (tramite tassi di conversioni storici, relativi a ciascuna data di acquisto) e unificazione per il calcolo dei totali
  • client iPhone e Android nativi
  • browsing dei report compatibili con iPad e gran parte dei moderni device mobili, grazie al rendering javascript/html5 dei grafici piuttosto che tramite tecnologia Flash
  • supporto API per integrazione con altri store
  • importazione delle recensioni e commenti pubblicati dagli utilizzatori nei vari store

Nient'altro? Stiamo lavorando su parecchie altre idee ed evoluzioni, quindi...stay tuned! (tramite Twitter e blog)

Vi lascio con un po' di piccoli screenshot, e vi invito ad andare sul sito per vederne altri, provare la demo interattiva, e registrarvi gratuitamente per provarlo concretamente!

Correntemente valutato 3.0 da 15 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , ,
Categorie:   Business | Sviluppo software | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (4) | RSS CommentiRSS comment feed

Le migliori risorse per sviluppatori iPhone / iPad

lunedì, 6 settembre 2010 18.46 by Marco Bellinaso

Ormai un annetto fa (wow!) ho pubblicato un post dal titolo "Librerie e framework open-source per sviluppatori iPhone" dove parlavo di alcune delle librerie iPhone usate in alcuni progetti recenti. Nel tempo, come qualsiasi altro sviluppatore, mi sono salvato tra i bookmark una quantità di altro materiale interessante: articoli, video, esempi di codice, librerie, framework, servizi web e quant'altro. Oggi ho pubblicato il malloppone a quest'url: http://www.mopapp.com/directory/best-resources-iphone-developers

 A parte l'utilizzo dell'inglese, il concetto è lo stesso: ho descritto brevemente ciascuna risorsa censita, e ho censito solo quelle risorse che ritenevo effettivamente utili e di buona qualità. Nonostante non fosse mia intenzione creare un elenco kilometrico, la pagina conta già più di 60 risorse, e sicuramente si allungherà via via nel tempo. A proposito, chiunque volesse contribuire mi può contattare privatamente o scrivere qui nei commenti ;)

A presto una lista analoga per dev Android...

E a presto anche una descrizione di Mopapp.com, il sito-servizio (ad oggi in beta privata, ma presto in beta pubblica!) per sviluppatori mobile che ospita la pagina...

Correntemente valutato 3.0 da 5 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:  
Categorie:   Sviluppo software
Azioni:   E-mail | Permalink | Commenti (2) | RSS CommentiRSS comment feed

GetConnected cerca nuovi sviluppatori!

venerdì, 11 dicembre 2009 14.09 by Marco Bellinaso

La società per la quale lavoro, GetConnected Srl (assieme alla spin-off AnguriaLab LLC) cerca nuovi sviluppatori da inserire nel proprio organico, nella sede di Bologna (pressi del centro). Le figure che cerchiamo sono dei buoni programmatori / analisti, con una discreta esperienza lavorativa, ma anche dotati di molta passione e voglia di imparare e migliorarsi costantemente. Programmatori che ancora lavorano con VB6 e che almeno per conto proprio non si sono aggiornati, che non sanno cosa sia AJAX / jQuery / REST / MVC, che non leggono nessun blog tecnico e che sostanzialmente vogliano fare un lavoro "comodo" senza faticare troppo per restare aggiornati...astenersi prego! :)

Le tecnologie da conoscere? In GetConnected si lavora molto con .NET, Java, Adobe Flex e Flash, iPhone / BlackBerry / Android SDK...and more. Sviluppiamo app web-based (molto AJAX), portali (Alfresco, di cui siamo partner, o cose custom), servizi e app per telefoni (al momento iPhone, Android, BlackBerry e WinMobile...ma vorremmo andare anche su Nokia/Symbian con Flash Lite o Java). I candidati ideali devono avere una buona conoscenza di almeno una delle tecnologie citate, meglio se un paio. E ovviamente una conoscenza di base su tutto quello che ci sta attorno (DB SQL Server / MySql, web server, HTML, CSS, i pattern più diffusi, la capacità di analizzare problemi e fare delle stime...)

Se state cercando lavoro o quello attuale vi annoia e non vi stimola, e quanto detto sopra non vi spaventa (anzi!) allora potete contattarci per venire a conoscerci! 

Correntemente valutato 3.0 da 5 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , , , , , , ,
Categorie:   Business | Sviluppo software | Tecnologia | Web 2.0
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Librerie e framework open-source per sviluppatori iPhone

giovedì, 3 settembre 2009 15.57 by Marco Bellinaso

Da qualche mese a questa parte il mio lavoro è all'80% su progetti di sviluppo per iPhone (in un prossimo post dirò perchè questo mi dia molta soddisfazione :). Si tratta sia per progetti interni da pubblicare sotto il brand di AnguriaLab che per soluzioni custom per clienti (vecchi e nuovi) di GetConnected che si sono resi conto delle ottime potenzialità di questa piattaforma (sia tecnologiche che di penetrazione del mercato) e ne vogliono aproffittare sia per aumentare la propria visibilità che effettivamente per incrementare il proprio fatturato raggiungendo nuovi potenziali clienti e offrendo qualcosa di più rispetto ai propri competitor.

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 classe UICoverFlowLayer 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 da Alex Fajkowski 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 :) Su 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 estesa con 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à.

===

Queste sono solo le librerie che sto usando nel progetto su cui sto lavorando al momento. Sul web c'è molto altro e ogni giorno trovo qualcosa di interessante e utile; nuovi progetti nascono e crescono. Molto è open-source e con una community di supporto che ci gira attorno. Sta succedendo un po' quello che è successo anche con .NET e con altri framework di enorme diffusione e successo...e di questo i programmatori iPhone di qualsiasi livello devono senz'altro rallegrarsi! ;)

 

Correntemente valutato 4.0 da 10 utenti

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Mac OS X | Sviluppo software
Azioni:   E-mail | Permalink | Commenti (1) | RSS CommentiRSS comment feed

Postino approda anche su Facebook

martedì, 23 giugno 2009 14.41 by Marco Bellinaso

Dal momento che Postino per iPhone sta piacendo molto...non ci siamo accontentati! Esce oggi una versione web-based totalmente integrata in Facebook. Non occorre registrarsi e creare un nuovo account. Se siete utenti di Facebook (e chi non lo è ormai?!) vi basta andare a questa pagina e potrete iniziare a creare le vostre cartoline, con le vostre foto e i vostri messaggi. Le cartoline verranno stampate e recapitate ai vostri amici o famigliari in tutto il mondo. Se avete già Postino per iPhone, e avete già acquistato dei francobolli, potrete associare l'iPhone al vostro account Facebook, così che i francobolli in vostro possesso possano essere usati da entrambe le parti. Viceversa, acquistando dei francobolli da FB questi potranno poi essere usati anche dall'iPhone.

Fatta questa presentazione, ci rimettiamo subito al lavoro con la creazione di ulteriori client per il Postino service!

Correntemente valutato 3.0 da 5 utenti

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , ,
Categorie:   Sviluppo software | Web 2.0
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed

Spedire vere cartoline dal proprio iPhone? Con Postino si può!

martedì, 2 giugno 2009 12.38 by Marco Bellinaso

Durante la notte di domenica scorsa Apple ha finalmente approvato e pubblicato su iTunes Postino, la nostra nuova applicazione per iPhone.

Questa volta si tratta di una applicazione a livello globale, a differenza di Locomotimes (la nostra precedente applicazione, che ha avuto circa 25.000 download in Italia). Come il nome suggerisce, si tratta di un'applicazione che ha a che fare con la posta, più precisamente le cartoline. Ma non si tratta della solita app per spedire e-card (anche se fa *anche* quello). Postino permette di spedire delle vere cartoline fisiche, stampate su carta di alta qualità, e che possono essere recapitate in tutto il mondo. Ovviamente è possibile scegliere una foto dalla photo gallery o scattarne una nuova, si scrive il messaggio e si sceglie l'indirizzo di destinazione (e-mail in caso di e-card o indirizzo fisico altrimenti). Ci sono varie "chicche" tra cui la selezione di una cornice (tra 20 built-in) per abbellire la propria foto, e il disegno "a mano" di una firma o disegnetto (si usa il dito sul touchscreen, similmente alle tante app di disegno). Nelle cartoline elettroniche è poi possibile includere automaticamente un link a Google Maps che mostrerà il luogo da dove è stata scattata la foto! E' disponibile una cronologia degli invii che mostra anche lo status di spedizione, e vari altri piccoli dettagli.

L'applicazione al momento è gratuita, ma lo sarà davvero per pochissimi giorni (a differenza di Locomotimes, che è rimasta gratuita, e per cui invece abbiamo rilasciato LocomotimesPRO a pagamento, con ritardi e binari di arrivo aggiornati in tempo reale ;)

Ovviamente i francobolli "virtuali" per spedire le cartoline fisiche hanno comunque un costo: si parte da 1.99$ (circa 1.4€) per il singolo francobollo (con spedizione ovunque nel mondo) ma si scende in base al numero di francobolli acquistati (si arriva al 20% di sconto).

Potete leggere ulteriori dettagli, oltre a vedere molti screenshot, sul nuovissimo sito http://www.angurialab.com

Una domanda che spesso ci fanno (e che fa parte di un'intervista che sarà pubblicata a breve) è la seguente: Postino va oltre al virtuale offrendo la possibilità di spedire cartoline fisiche. Da cosa vi è venuta l'idea?

Risposta
: la vera rivoluzione sta nel rendere più semplice ed accessibili le attività di tutti i giorni. Mandare una cartolina è una di queste: spesso non troviamo quella che vorremmo, non sappiamo che francobolli acquistare (spesso all'estero...). Adesso si può mandare una cartolina personalizzata con la foto che vogliamo con semplicità e risparmiando anche! 

L'intervista completa è presente su MelaMorsicata.it

Correntemente valutato 3.3 da 6 utenti

  • Currently 3,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , ,
Categorie:   Mac OS X | Sviluppo software | Tecnologia
Azioni:   E-mail | Permalink | Commenti (1) | RSS CommentiRSS comment feed

Programmatore web/ajax? Vinci un premio in denaro...e un lavoro!

venerdì, 17 aprile 2009 18.42 by Marco Bellinaso

GetConnected è l'azienda bolognese con la quale sto lavorando da oltre un anno, in maniera sempre più stretta. Assieme a loro ho pubblicato Locomotimes (tra che l'altro già da qualche giorno ha superato i 20.000 download!) e stiamo lavorando assieme anche su nuovi prodotti. Il lavoro non manca e anzi sembra che le persone non siano mai abbastanza per tutti i progetti che escono, sia come commesse da clienti...che come prodotti commerciali. GetConnected sta quindi cercando nuovi programmatori da assumere...possibilmente giovani entusiasti, con una vera passione per l'informatica, che abbiano già una discreta esperienza ma che abbiano anche voglia di imparare ancora, lavorando su idee e tecnologie interessanti e moderne.

Come? Avete già sentito queste cose milioni di volte, per poi trovarvi di fronte al solito manager tecnicamente incompetente al momento del colloquio, che non valuta con il dovuto interesse (e rispetto) tutti i progetti, i software e i siti fighissimi che avete creato, magari da soli, con amici, nel tempo libero, per passione oltre che per professione?

Per dimostrare con i fatti che sono diversi, i ragazzi di GetConnected hanno dato il via ad una specie di concorso: inviate le vostre realizzazioni migliori in ambito web (basta anche solo il link al sito online, se non potete/volete spedire il sorgente) e avrete la possibilità di vincere il premio in denaro di 300€. Non male, per una cosa che avete già realizzato e che qualcuno vi chiede di mostrargli, no?

I progetti dovrebbero essere siti/servizi web e se volete vincere è meglio che siano in qualche modo innovativi, come idea e/o come tecnologie usate. Qualche paginetta fatta in Classic ASP per gestire un guestbook o delle news? mmm...no grazie! Un servizio sviluppato con ASP.NET / PHP / RoR con AJAX a gogò, mappe, mash-up e utilizzo di toolkit e framework vari? Fatevi sentire subito!

Il premio in denaro sarà solo per uno, ma tutti i partecipanti saranno presi in considerazione per una assunzione e/o collaborazione. Solo se lo si desidera ovviamente. Si può anche partecipare, vincere il premio e scappare...ma poi non dite che gli informatici in gamba non riescono a trovare (o cambiare facilmente) lavoro eh?! Wink

Correntemente valutato 2.4 da 11 utenti

  • Currently 2,363636/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , ,
Categorie:   Business | Sviluppo software | Tecnologia
Azioni:   E-mail | Permalink | Commenti (2) | RSS CommentiRSS comment feed

Controllare gli orari dei treni con Locomotimes per iPhone

sabato, 4 aprile 2009 07.32 by Marco Bellinaso

Leggere libri di programmazione senza poi programmare e provare con mano quanto studiato vuol dire non aver imparato nulla. Mettersi li a realizzare i soliti esempi semplici e banali è ben poco divertente e anche poco utile. Ecco perchè per fare pratica ho voluto realizzare (assieme ai ragazzi di GetConnected) una applicazione reale, che non fosse troppo complessa ma che non fosse neanche un giocattolo.

Il risultato è Locomotimes, un'applicazione che permette di consultare in modo semplice e veloce gli orari dei treni per qualsiasi tratta nazionale e verso molte città europee. Le funzionalità sono parecchie; non mi soffermo qui sui dettagli perchè trovate tutto sulla pagina di iTunes o di GetConnected (qui c'è anche un video che mostra tutte le funzionalità), ma in breve:

- elenco indicizzato e filtrabile di tutte le stazioni supportate
- possibilità di includere solo le soluzioni di viaggio con determinati tipi di treno
- un sacco di informazioni nei risultati (partenza e arrivo non solo per il viaggio totale ma anche per tutti i cambi, alert se i cambi sono troppo ravvicinati, tipi di treno, durata del viaggio, tariffe di prima e seconda classe, link per l'aquisto online...)
- cronologia delle ricerche passate (così che fatta una volta sia possibile consultare i risultati in futuro senza dover fare un'altra connessione)

Per chi come me prende spesso il treno credo che l'applicazione possa essere molto utile. Si, lo so che il sito di Trenitalia può essere consultato tramite Safari...ma occorre 10 volte lo stesso tempo, pazienza e traffico dati. L'applicazione sarà gratuita per un po', quindi...se avete un iPhone andate a scaricarla subito! ;)

NOTA: in realtà lo sviluppo di questa applicazione è terminato da almeno un mese...nel prossimo post racconterò perchè ci abbiamo messo così tanto per essere pubblicati online e darò qualche consiglio per evitare un'attesa logorante :)

Correntemente valutato 5.0 da 6 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   ,
Categorie:   Business | Mac OS X | Sviluppo software
Azioni:   E-mail | Permalink | Commenti (10) | RSS CommentiRSS comment feed

Imparare a programmare per iPhone

mercoledì, 25 febbraio 2009 08.05 by Marco Bellinaso

Su questo blog ho già parlato varie volte dell'iPhone. Ho avuto prima la versione 2G e poi la 3G...e nonostante attualmente usi regolarmente un BlackBerry Bold continuo a pensare che l'iPhone sia un dispositivo assolutamente innovativo e con alcune qualità (e soprattutto con delle potenzialità) ancora molto superiori alla concorrenza. Alcuni aspetti in particolare poi dovrebbero interessare molto gli sviluppatori. Per questi motivi (e per soddisfare un po' la mia curiosità e passione per la tecnologia) ho ordinato il libro Beginning iPhone Development (APress) appena fu annunciato e prima che fosse effettivamente disponibile (causa il fatto che fino a pochi mesi fa l'SDK era ancora sotto NDA e non se ne poteva scrivere pubblicamente...). Solo recentemente però ho iniziato un progetto e mi sono messo a studiarlo realmente.

Sviluppare per iPhone significa dover usare Mac OSX, imparare l'IDE di sviluppo XCode (fornito gratis con il sistema operativo o scaricabile gratuitamente assieme all'iPhone SDK), imparare il linguaggio Objective-C e il framework Cocoa Touch (che è parte di Cocoa + estensioni specifiche per iPhone, allo stesso modo di quello che fa il .NET Compact Framework e l'SDK di Windows Mobile rispetto al .NET Framework full). Oltre a questo bisogna abituarsi a programmare secondo il modello Model-View-Controller (che molti conosceranno anche in ambiente .NET o Java...ma sicuramente non tutti) e a tutta una serie di piccole e grandi differenze rispetto al modo di lavorare con altri ambienti e linguaggi. Di sicuro ci vuole un po' di tempo per prenderci la mano ed essere produttivi, e non è che essendo esperti con qualche altra tecnologia il lavoro con l'iPhone sia subito un gioco da ragazzi.

Proprio per questo motivo è utile avere una guida come quella in questione, che che insegni come muoversi partendo dai concetti base e mostrando passo per passo come: disegnare una vista, associarci un controller, collegare gli elementi della UI alle proprietà del controller, gestire gli eventi (tramite delegate)...e poi via via fare cose più complesse come riempire una lista associata ad una sorgente dati, personalizzare l'aspetto delle tabelle, costruire dei percorsi di navigazione tra viste distinte, gestire l'accesso al file system, realizzare qualche piccola animazione ed effetto grafico, gestire touch e gesture, localizzare un'applicazione, gestire la fotocamera e fare 2 cose sul multimedia.

Il libro è strutturato proprio come un corso, e quindi va letto in ordine. Alla fine si avrà una buona idea di come si lavora su questa piattaforma e il tanto codice di esempio fornito potrà anche servire come base di partenza (e miniera per copia-incollare piccole parti) per i primi progettini. Alla fine non si potrà dire di essere esperti, ma non si sarà più neppure degli sprovveduti. Il libro ad esempio spende ben 120 pagine per parlare di liste e navigazione tra viste, dato che sono concetti fondamentali e importanti per praticamente tutti gli applicativi (ad eccezione probabilmente di videogame e applicazione esclusivamente "grafiche", che sono programmate in modo diverso), ma non parla di accesso a web service o risorse via HTTP, programmazione multi-threading (importante ad esempio per recuperare o elaborare dei dati mentre l'utente usa qualche altra funzione dell'applicazione), utilizzo avanzato di alcuni controlli, interazione con altre applicazioni (il browser o il programma Mail ad esempio), accesso ai contatti del telefono, debugging, deployment dell'applicazione su un iPhone reale di test, o del processo (pieno di insidie) di firma e pubblicazione dell'applicazione in AppStore. Altri argomenti come l'accesso ai database Sqlite, la gestione delle gesture, dell'accelerometro e del GPS sono appena accennati in poche pagine, in modo insufficiente per un utilizzo immediato proficuo.

Le mancanze elencate sopra non si possono però considerare dei veri difetti del libro; sono mancanze "by-design", volute, dato che il titolo inzia con "Beginning..." e non con "Professional...". Quello che però ci sarebbe stato proprio bene in un libro del genere è un capitolo sul linguaggio (sintassi, costrutti, programmazione ad oggetti, categorie, reflection, gestione delle memoria) e le classi base tipo NSString, NSDate, NSArray, NSDictionary ecc. Non vorrei ovviamente una trattazione dettagliata di questi argomenti, (ci vorrebbe ovviamente un libro dedicato solo a quello) ma solo "un riassunto", un "quick-start" per chi viene magari da altri linguaggi e si trova un po' spiazzato dalla sintassi e da alcuni concetti di Objective-C. Ad ogni modo, se si è già letta la documentazione ufficiale di Apple sul linguaggio, anche questo non costituirà un problema.

L'importante è che una volta imparati i concetti di base sarà molto più semplice cercare (e capire) specifiche informazioni online, nella documentazione ufficiale...o in un secondo libro più avanzato. Non si tratta quini della classica bibbia omnicomprensiva, ma è uno strumento efficace e quasi indispensabile per partire con il piede giusto. In conclusione, è una perfetta prima guida, altamente consigliata.

Correntemente valutato 4.3 da 4 utenti

  • Currently 4,25/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Categorie:   Mac OS X | Sviluppo software
Azioni:   E-mail | Permalink | Commenti (1) | RSS CommentiRSS comment feed

Web Development Server, Windows XP e richieste remote

martedì, 24 febbraio 2009 12.15 by Marco Bellinaso

In questo periodo – lavoro "normale" permettendo – sto sviluppando una applicazione iPhone che recupera dei dati da un web service .NET. Lavoro su un MacBook Pro con OSX come sistema operativo principale e Windows XP su VMWare Fusion. Chiaramente su OSX uso XCode per lo sviluppo del codice iPhone, e sulla VM con XP uso Visual Studio 2008 per lo sviluppo del web service.

Tutto bene con lo sviluppo, fino al momento di dover interrogare il web service che gira nella VM dal simulatore iPhone. Il problema è che in XP non ho neanche installato IIS, perchè la versione 5 ha troppi limiti ed è fin troppo diversa da IIS6. Quindi ho pensato che tanto valeva sviluppare usando il Web Development Server integrato in VS2008 e poi fare i test finali sul server Win2003 con IIS6. Il Web Development Server però non accetta richieste remote, ovvero processa solo richieste provenienti dalla macchina di sviluppo dove gira. Come fare quindi per testare l'integrazione iPhone/WS, senza dover necessariamente installare IIS o senza pubblicare ogni volta il WS sul server Win2003?

La soluzione è stata davvero semplicissima: basta scaricare Port Forwarding for Windows (programmino freeware, fornito anche di sorgenti, e che non richiede neanche installazione) e configurarlo per redirezionare le richieste che arrivano sulla porta 80 verso la porta gestita da Web Development Server. Un minuto ed il gioco è fatto.

Note
1) Io ho scelto la porta 80 per semplicità, ma potete scegliere la porta che volete...basta che vi ricordiate di aprirla nelle regole del firewall.
2) Di default la porta usata dal Web Development Server è dinamica, e questo è un problema perchè dovreste cambiare ogni volta la regola di forward. Per ovviare basta impostarla staticamente dalle proprietà del progetto ASP.NET.

Correntemente valutato 5.0 da 1 utenti

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
Segnala:  
Tags:   , , , , ,
Categorie:   Mac OS X | Sviluppo software | Windows
Azioni:   E-mail | Permalink | Commenti (0) | RSS CommentiRSS comment feed