Alessandro Del Rosso

MonoTouch porta Microsoft su iPhone

Novell ha sviluppato una versione del porting di MS.NET tagliata su misura per i dispositivi touch di Apple. Un'operazione che ha un costo, ma che potrebbe allargare il business per chi deciderà di investire

Roma - Nato per consentire agli sviluppatori di creare applicazioni in grado di girare senza modifiche sia su Windows che su Linux, il progetto open source Mono ha oggi un obiettivo ben più ambizioso: divenire un framework di riferimento per il mondo dei dispositivi mobili. Il primo e più importante passo in questa direzione è stato l'odierno annuncio di MonoTouch 1.0, una versione "leggera" di Mono che porta il runtime del MS.NET Framework su iPhone e iPod Touch.

MonoTouch è una suite di compilatori, librerie e tool di sviluppo che si integra con i SDK di Apple e permette agli sviluppatori di utilizzare C# e gli altri linguaggi di MS.NET per scrivere applicazioni in grado di girare nativamente su iPhone e iPod. Ai più attenti non sarà sfuggito l'attributo "nativamente": a causa di una famosa restrizione imposta da Apple a chi sviluppa applicazioni per iPhone/iPod, cioè il divieto assoluto di distribuire compilatori just-in-time o motori di scripting, MonoTouch include infatti un compilatore statico che trasforma gli eseguibili e le librerie MS.NET in applicazioni native.

L'uso di un compilatore statico ha permesso agli sviluppatori di Mono di bypassare i paletti piantati da Apple e, nello stesso tempo, di ottimizzare le performance dei programmi MS.NET che girano sui dispositivi della Mela.
"Questa è la prima volta che MS.NET viene compilato staticamente in codice nativo" ha spiegato Miguel de Icaza, fondatore e leader del progetto Mono. "Abbiamo dovuto lavorare parecchio per trasformare MS.NET da un sistema runtime dinamico ad uno completamente statico".

Attualmente la stragrande maggioranza delle applicazioni per iPhone vengono sviluppate in Objective-C, un linguaggio scarsamente diffuso al di fuori della comunità dei developer Apple. De Icaza ritiene che per i milioni di sviluppatori MS.NET, che non hanno familiarità con questo linguaggio, MonoTouch rappresenti una porta di accesso privilegiata verso il lucroso mercato delle applicazioni per iPhone. E dal momento che MS.NET è ampiamente diffuso nel segmento aziendale, il celebre sviluppatore di origine messicana è convinto che MonoTouch possa altresì contribuire a incrementare il numero di applicazioni di classe enterprise disponibili per il melafonino.

Questa volta il frutto degli sforzi del team guidato da de Icaza e stipendiato da Novell non è gratis: per gli sviluppatori individuali che creano esclusivamente applicazioni per l'Apps Store di Apple, la licenza annuale di MonoTouch Personal Edition costa 400 dollari; per le aziende, MonoTouch Enterprise Edition costa 1000 dollari a sviluppatore e 4000 dollari nella versione che supporta 5 utenti contemporanei.

De Icaza ammette che portare Mono verso il mercato mobile non è soltanto "un avvincente progetto di sviluppo", ma anche "un'interessante opportunità di guadagno". Il programmatore, che si è già detto al lavoro su MonoTouch 2.0, afferma di aver già sviluppato versioni embedded di Mono in precedenza, e non esclude la possibilità di portare questo software verso altre piattaforme mobili in futuro.

Alessandro Del Rosso
Notizie collegate
  • TecnologiaJava su iPhone? Forse una chimeraSpinta dall'entusiasmo del momento, la scorsa settimana Sun ha annunciato lo sviluppo di un'implementazione di Java 2 Micro Edition per iPhone. Ma una clausola della licenza di Apple potrebbe ostacolare questo piano
  • AttualitàStallman: liberatevi di MonoIl celebre guru del free software lancia un monito a quelle distribuzioni Linux che scelgono di includere i porting del framework Microsoft. E mette in guardia dai rischi a suo dire derivanti dal connubio tra Linux e MS.NET
  • TecnologiaMono 2.0 guadagna metri su MS.NETIl celebre progetto open source capeggiato da Miguel de Icaza ha ulteriormente ridotto il gap con il corrispettivo proprietario: tra ottimizzazioni e migliorie, implementa diverse caratteristiche della versione 3.5 di MS.NET Framework
26 Commenti alla Notizia MonoTouch porta Microsoft su iPhone
Ordina
  • Interessante, Mono è disponibile sull' iPhone, ma a pagamento, mentre su quasi tutte le altre piattaforme è gratis. Sembra fatto apposta per scoraggiare lo sviluppo di software gratuito (ah già, gli utenti Apple vogliono pagare, anzi ne vanno fieri, anche per ciò che tutti gli altri possono avere gratis)
    non+autenticato
  • - Scritto da: angros
    > Interessante, Mono è disponibile sull' iPhone, ma
    > a pagamento, mentre su quasi tutte le altre
    > piattaforme è gratis. Sembra fatto apposta per
    > scoraggiare lo sviluppo di software gratuito

    Perché? Quello che paghi è la licenza per monotouch che comunque non è mono e basta, poi se vuoi puoi anche rilasciarla gratis l'applicazione.
    non+autenticato
  • - Scritto da: angros
    > Interessante, Mono è disponibile sull' iPhone, ma
    > a pagamento, mentre su quasi tutte le altre
    > piattaforme è gratis.

    Se vai nella directory branches/monotouch-1-0 del SVN di mono c'è anche il sorgente di monotouch


    http://anonsvn.mono-project.com/viewvc/branches/mo.../
    non+autenticato
  • Avete notato che nell'immagine principale di monotouch, nell'iphone, campeggia l'icona di cydia?
    Un invito, forse, a sviluppare con monotouch applicazioni per iPhone e iPod touch sbloccati?

    Cmq un progrmmatore c# o c++ impiega poco più di una giornata a studiare l'obj c di Apple ma il monotouch permette di NON comprare un computer Apple per sviluppare... Come la prenderà Apple?
  • si ok, ma conviene?

    uno che si vuol buttare seriamente a sviluppare per iphone et similia, può pensare seriamente di partire da una cosa come MonoTouch? mah...

    diamine, dal momento che uno sa come muoversi in framework e linguaggi "moderni" fortemente OOP, il salto da C# a Objective-C dovrebbe esser l'ultima delle sue preoccupazioni, come pure l'acquisto di un mac. imho ovviamente
    il salto da C# a Obj-C è molto più semplice di quanto a volte non sembri

    per di più, quello che fai per iphone è già di suo molto facilmente riusabile anche in macosx vista l'estrema vicinanza tra CocoaTouch e Cocoa "standard".


    non sono sicuro che il gioco di MonoTouch valga la candela... in ogni caso, bah, buona notizia
    non+autenticato
  • senza contare l'estrema semplicità di conversione di un programma scritto per iphone verso altre piattaforme mobili come windows mobile e simili
  • - Scritto da: pappone
    > diamine, dal momento che uno sa come muoversi in
    > framework e linguaggi "moderni" fortemente OOP,
    > il salto da C# a Objective-C dovrebbe esser
    > l'ultima delle sue preoccupazioni, come pure
    > l'acquisto di un mac. imho
    > ovviamente
    > il salto da C# a Obj-C è molto più semplice di
    > quanto a volte non
    > sembri

    Guarda francamente non la vedo così sbagliata come mossa questa, hai ragione sul discorso che passare da un linguaggio fortemente oop come c# ad un altro come obj-c non è un lavoro mastodontico per un programmatore skillato, ma quello che frega è il doversi ristudiare api ed interfacce di sviluppo, questo porta via un sacco di tempo nelle prime battute e se devi essere produttivo sin da subito (soprattutto se devi dimostrare la fattibilità e la possibilità commerciale della cosa) secondo me non è male poter sviluppare in c# con le stesse modalità con cui sviluppavi sotto .NET
    mura
    1720
  • - Scritto da: mura

    > ma quello che frega è il doversi ristudiare api ed
    > interfacce di sviluppo, questo porta via un sacco
    > di tempo...

    Full immersion, tre/quattro giorni per capire il necessario. Esperienza personale. E comunque è un ottimo framework fatto per farti perdere poco tempo e nello stesso tempo darti molta flessibilità.
    FDG
    10933
  • - Scritto da: Redfoxy
    > ...ma il monotouch permette di NON comprare un computer
    > Apple per sviluppare...

    Scusa ma è sbagliato. Serve comunque XCode. Serve per firmare le applicazioni, altrimenti non le puoi distribuire, e perché mono touch di per se richiede XCode.

    XCode e l'SDK per iPhone si possono scaricare gratuitamente. Il programma per distribuire applicazioni iPhone costa, se non ricordo male, 99$, e devi comunque farlo. Quindi se decidi di sviluppare con mono touch spendi comunque di più.
    FDG
    10933
  • anche questo è vero ma alla fine se l'ambiente di mono permette di firmare le app con i certificati apple (alla fine sono semplici certificati) non hai bisogno del SDK ufficiale, mentre per mandarle online, se ti accontenti, c'e' il supporto interamente via web
  • - Scritto da: Redfoxy
    > anche questo è vero ma alla fine se l'ambiente di
    > mono permette di firmare le app con i certificati
    > apple (alla fine sono semplici certificati) non
    > hai bisogno del SDK ufficiale, mentre per
    > mandarle online, se ti accontenti, c'e' il
    > supporto interamente via
    > web

    FAQ
    Do I need a Mac to use MonoTouch?

    MonoTouch requires a Mac and Apple's iPhone SDK to test on the emulator and deploy on the device. And you will need to be an Apple iPhone developer to deploy on the device.
    non+autenticato
  • Proprio stando a quello che hai citato tu c'e' scritto chiaramente che hai bisogno dell'SDK solo per testare le applicazioni (ma puoi testarle anche sull'iphone, e qui si capisce il perché dell'icona di Cydia nello snap) e poi un account developer sul sito Apple...
  • - Scritto da: Redfoxy

    > Proprio stando a quello che hai citato tu c'e'
    > scritto chiaramente che hai bisogno dell'SDK solo
    > per testare le applicazioni (ma puoi testarle
    > anche sull'iphone, e qui si capisce il perché
    > dell'icona di Cydia nello snap) e poi un account
    > developer sul sito
    > Apple...

    Non puoi firmarle se non ti abboni, quindi non puoi distribuirle attraverso l'AppStore Apple, l'unico modo ufficiale per distribuire applicazioni per iPhone. Se no devi affidarti al Jailbreak... per 99$ non mi pare il caso. E poi ci sono cose che col solo emulatore non riesci a fare. Ad esempio, non puoi simulare il comportamento degli accelerometri. Ti serve l'iPhone e l'unico modo per installare l'applicazione sull'iPhone da XCode è avere la relativa chiave che Apple ti rilascia quando paghi i 99$. E comunque, sicuramente ti serve un Mac.
    FDG
    10933
  • lo so' sono sviluppatore iPhone da quasi un annoSorride

    Quello che intendevo è che con monotouch l'unica cosa che ti manca è l'emulatore di Apple, infatti loro di sicuro usavano gli iphone sbloccati per testare direttamente su iphone, soprattutto perché chi sviluppa con monotouch non ha la possibilità di fare la preview delle app sul loro iphone, al massimo tramite l'emulatore, anche se hanno l'sdk e un mac, mentre per mandare le app alla Apple serve solo essere registrati al developer di apple tramite web, nessun mac è richiesto se non per l'application uploader (consigliato per le app grosse e perché permette di fare il resume dell'upload)
  • Forse non avrà la diffusione del .NET ma da un annetto a questa parte la Apple ha rubato moltissimi sviluppatori alla microsoft che si sono convertiti all'obj C. Tra l'altro se un programmatore è così ottuso da non voler imparare un nuovo linguaggio, non so quanto possa andare avanti nel suo mestiere.
    non+autenticato
  • > ma da un annetto a questa parte la Apple ha rubato
    > moltissimi sviluppatori alla microsoft che si
    > sono convertiti all'obj C

    FONTE?
    non+autenticato
  • + che ottuso magari NON HA TEMPO!
    io sviluppo siti web in php, è da oltre 1 anno che mi riprometto di imparare ad usare qualcosa come python o mono per sviluppare qualche programmino x linux ma sono completamente bloccato dagli impegni di lavoro.

    In certe situazioni è meglio spendere, comprare una licenza (e supporto tecnico) ma poter sviluppare subito piuttosto che 'perdere tempo' nello studiare qualcosa di nuovo. Inoltre sul blog di De Icaza si parla di un engine 3d in grado di girare su windows, linux, mac e ora iphone con POCHISSIME MODIFICHE. Capirai che per chi sviluppa giochi è un bel risparmio!
  • mi chiedo a quale costo computazionale

    mono non è una piuma e i cellulari sono belli perchè veloci
    non+autenticato
  • - Scritto da: Yellow
    > mi chiedo a quale costo computazionale
    >
    > mono non è una piuma e i cellulari sono belli
    > perchè
    > veloci
    Connttere cervello please : codice nativo. Rileggi l'articolo.
    non+autenticato
  • si certo come se poi non ci volessero le librerie mono a supporto, n'è ve?
    non+autenticato
  • Però bisognerà vedere come verrà realizzato e gestito il codice nativo.Nel senso che con .NET si lavora sempre col Garbage Collector e il release della memoria è demandato ad esso.
    Sicuramente mono touch infilerà nel binario automaticamente un sistema di GC però su iphone spesso è necessario occuparsi istantaneamente del rilascio, quindi un GC per quanto comodo potrebbe dare dei problemi prestazionali visto che si attiva x i fatti suoi.
    Io sono un amante del c# ma su iphone credo che la migliore alternativa all'objective-c sia il c++. Poi ben venga monotouch se avrà delle qualità che mi faranno cambiare idea.
    non+autenticato
  • infatti è quello che dicevo

    c'è un'intera api da implementare tramite librerie di supporto

    quest'api peserà ovviamente e magari vedremo i primi programmi per iphone andare a scatti

    capisco che nome e cognome abituato a vista e windows mobile trovi normali che un gadget elettronico funzioni a scatto, ma noi altri siamo abituati in maniera totalmente differenteOcchiolino
    non+autenticato
  • - Scritto da: Yellow

    > quest'api peserà ovviamente e magari vedremo i
    > primi programmi per iphone andare a
    > scatti

    E quelli di Apple rompono parecchio sul consumo delle risorse e sulle prestazioni. Basta guardarsi qualcuno dei loro video o leggersi la documentazione per rendersene conto. Per cui o questo mono per iPhone è una piuma oppure è un accrocchio da usare solo se necessario.
    FDG
    10933
  • - Scritto da: Dzamir

    > Tra l'altro se un
    > programmatore è così ottuso da non voler imparare
    > un nuovo linguaggio, non so quanto possa andare
    > avanti nel suo mestiere.

    Me lo sto studiando appunto perché devo sviluppare su iPhone. La sintassi sarà inusuale, mancherà pure la garbage collection automatica, ma il runtime è potente e il framework, col relativo interface builder, ben fatto. Per cui penso che mono su iPhone possa solo essere utile il casi rari dove si deve necessariamente utilizzare del codice esistente.
    FDG
    10933
  • infatti è praticamente inutile, a parte il fatto che supporta il c#

    non supporta nè winforms nè wpf, ma implementa dei wrapper per cocoa, quindi alla fine bisogna comunque avere a che fare con le api di macos

    ovviamente usa la compilazione AOT e linka l'eseguibile con le sue librerie per la gestione della garbage collection e varie altre attività di base, creando eseguibili di notevoli dimensioni

    decisamente poco aderente allo spirito di MacOS X
  • Perche' non usare Lazarus?
    lazarus.freepascal.org? Fa tutto cio' che fa mono, gia' da anni ed anche meglio.
    non+autenticato