2009-12-04 19 views
17

MonoTouch sembra una grande piattaforma per lo sviluppo di iPhone, ma sono preoccupato di distribuirlo su Apple Store. Ci sono esempi di applicazioni create con esso che sono attualmente disponibili su iTunes?MonoTouch è una piattaforma valida per lo sviluppo di iPhone?

Stiamo iniziando un nuovo progetto per l'iPhone e mantenere l'intero stack in C# sarebbe fantastico, ma non vogliamo correre il rischio di essere rifiutati da Apple Store a causa di MonoTouch.

Ho letto di diversi giochi che attualmente usano mono (non MonoTouch) per la grafica 3D, ma non sono riusciti a trovare nulla su MonoTouch.

+0

sembra essere un duplicato di: http://stackoverflow.com/questions/1583856/is-monotouch-worth-the-cost-or-should-i-just-learn -objective-c –

+0

Sembra che il punto principale di questa domanda sia confrontare il costo di possedere monotouch vs learning obj-c. Il mio obiettivo è l'utilizzo del monotouch nel mondo reale. Ricevo la somiglianza, ma suppongo che le risposte sarebbero diverse. –

+0

cattive notizie su questo: http://stackoverflow.com/questions/2604033/is-monotouch-now-banned-on-the-iphone –

risposta

55

Toccando questo fuori sul mio telefono, così andando essere un po 'laconico - scuse per quello.

Comunque:

- Come detto in una risposta precedente, ci sono state applicazioni MonoTouch rilasciati per l'App Store. Che siano due o un bajillion non importa così tanto. La differenza tra uno e zero è infinita - la risposta è inequivocabile: sì, Apple approverà le app MonoTouch.

- MonoTouch gioca secondo le regole di Apple. Sputa bit nativi. Non c'è alcuna interpretazione del codice in corso, né esiste alcun JITting. La tua app MonoTouch è un pacchetto come qualsiasi altro e contiene un binario nativo come qualsiasi altro.

- Le app MonoTouch sono più grandi di quanto sarebbero se fossero state scritte con lo stack Apple. Questo perché l'app MonoTouch si basa su un sottoinsieme del framework Mono/.Net. A tale riguardo, tuttavia, una volta che si arriva a ciò che invia, non c'è nulla di particolarmente diverso in un'app MonoTouch. Ho lavorato in un'azienda in cui abbiamo creato le nostre app (sviluppate con lo stack Apple) contro il nostro framework personalizzato. Ha aumentato le dimensioni delle nostre app, ma ha anche ridotto i tempi di produzione (e questo è sempre il trade-off, giusto?). Inoltre, la dimensione del pacchetto di app subito dopo la compilazione può essere ingannevole. Poiché i pacchetti vengono compressi per l'App Store, le dimensioni diminuiscono drasticamente - puoi facilmente scrivere un'app MonoTouch che cade nello bene entro il limite di dimensioni accettabili per le app consegnate OTA (io porto questo perché è una domanda MT n0obs (giustamente) tendenzialmente chiedere). Quindi, Apple non ha alcun motivo reale per rifiutare in base alle dimensioni.

- Che si tratti di MonoTouch o di una struttura interna personalizzata come quella con cui lavoro/con, il materiale MonoTouch, fornito con la tua app, è solo un altro framework che potrebbe essere stato scritto in Objective- C.

- Se sei preoccupato di configurare la tua app per la distribuzione utilizzando l'intero stack MonoTouch e come ciò potrebbe influire sulle tue possibilità di approvazione, puoi dire a MonoDevelop (o all'utilità mtouch dalla riga di comando) di generare un Xcode progetto. Vedrai che il tuo codice è stato trasformato: vedrai l'assemblaggio nativo (non l'aroma di un IL). Puoi creare ed eseguire la tua app prodotta da MonoTouch direttamente da Xcode, quando ormai MonoTouch è praticamente fuori dall'immagine (ad eccezione di un framework contro cui stai costruendo (come MapKit, ad esempio)).

Per qualche motivo, tutto questo disturba un sottogruppo molto piccolo, ma vocale, di sviluppatori iPhone che, per qualsiasi motivo, non sopportano l'idea di persone che non conoscono utilizzando uno strumento diverso per creare app. Ma il loro hateage non cambia il semplice fatto che Apple ha accettato applicazioni MonoTouch (e Unity apps molto prima).

Il motivo principale per cui le app MT vengono rifiutate è che MT devs, nella mia esperienza (ne ho parlato con un bel po 'di persone - dopo aver tenuto discorsi, pubblicato forum, mailing list, qui ...), è che non hanno ancora imparato a sviluppare un'applicazione per iPhone. Questo è qualcosa che gli sviluppatori di iPhone devono fare regarldess di come scrivono le loro app. MonoTouch non è l'ostacolo - è sapere, per esempio, che Apple vuole la vostra applicazione per guardare un certo modo e di lavorare in un certo modo - dovrebbe guardare e sentire e comportarsi come gli altri (buono) applicazioni per iPhone, e non dovrebbe sii tra gli esempi di tentativi di scrivere app desktop per un telefono (che è dove il tuo media dev commette il suo primo errore durante la transizione allo sviluppo mobile).

In ultima analisi, il vostro strumento di scelta non sta andando alla materia fintanto che crea bit che giocano secondo le regole di Apple (come MonoTouch). Il vero ostacolo è l'apprendimento dell'iPhone Way of app design.

. Gli sviluppatori di applicazioni net, sia su Windows, Windows Mobile, o ovunque siano in esecuzione Mono (non MonoTouch), sono abituati a sviluppare app in base ai propri gusti. Questo non vola nel mondo di iPhone.

Si può tranquillamente andare con MonoTouch. Come è stato dimostrato, Apple provvederà all'approvazione delle app MT da parte di.

La cosa si ha realmente bisogno di fare (ancora una volta, indipendentemente da quale pila dev si sceglie) è leggere documenti di Apple sul design per iPhone e le loro linee guida. C'è una folla enorme di sviluppatori il loro attribuendo loro rifiuti app ad Apple di essere il male (o qualsiasi altra cosa - scuse disinformati, fondamentalmente), quando la verità è che le loro applicazioni sono spazzatura ed è chiaro gli sviluppatori non hanno giocato secondo le regole (o addirittura preoccuparsi di leggere le regole).

Alla fine, in molti casi, quando si utilizza MonoTouch scriverai molto meno codice, e il costo per questo è un pacchetto di app più grande (che, come ho detto, uscirà molto ragionevolmente dimensionato dopo che è stato compresso per la distribuzione).

Questo non è un gran problema. Con 3g, gli utenti non si preoccupano di scaricare applicazioni di 2-3MB. Se è abbastanza piccolo da inviare OTA, va tutto bene. E nei casi in cui la tua app supera il limite, è probabile che le risorse incorporate (media - immagini, video, ecc. - sia così che i bundle si gonfiano tipicamente verso le sole dimensioni wifi), e questo è qualcosa che anche gli sviluppatori Objective-C devono affrontare , quindi non è un problema di MonoTouch.

Così, ignorare i nemici (che non hanno nemmeno provato MonoTouch o la briga di imparare come funziona), e stare tranquilli che, fintanto che la vostra applicazione è conforme alle linee guida di Apple, non c'è alcuna motivo per loro di rifiutare esso. Ciò non significa che la tua app sia accettata a condizione che venga progettata correttamente (molte app vengono rifiutate senza un motivo apparente), ma puoi considerare te stesso, più o meno, di essere alla pari con gli sviluppatori che utilizzano gli strumenti di Apple.

Spero che questo aiuti :)

+0

Rory, grazie mille per la risposta! Questo è perfetto per me: una buona analisi dei fatti attuali intorno al monotouch e i compromessi riguardanti la piattaforma. –

+1

Felice di essere d'aiuto :) –

+6

Solo per saltare il tuo commento sulla creazione di una * buona * app per iPhone - penso che ci siano tante orribili applicazioni per iPhone Obj-c come ci sarebbero per Monotouch. Spesso vengono dimenticati quando viene creata una bella app. E fino ad ora - non è stato creato un bell'esempio di Monotouch, quindi la gente lo definisce fallo e incolpevole. Netto ragazzi per non aver compreso la piattaforma (se questo è vero o no). Sono sicuro che non appena le persone impiegheranno più tempo con Monotouch a sviluppare splendide app, è allora che Monotouch prenderà più interessi per le persone. – chrisntr

10

La comunità di MonoTouch sta mantenendo un numero list of MonoTouch applications disponibile oggi su Apple Store e che è stato scritto utilizzando MonoTouch.

+0

Quindi due app sono state create finora - una che non sembra che stia prendendo Vantaggio dell'hardware dell'iPhone in assoluto e uno che probabilmente verrà rimosso non appena Hasbro ne approfitterà. Yikes. – bpapa

+4

@bpapa Due app meno di due mesi dopo il rilascio del framework, compresa l'approvazione di AppStore. Qual è il tuo punto di nuovo? –

+0

Che ci sono poche prove che MonoTouch sia una piattaforma valida per lo sviluppo di iPhone. Sai, affrontando la domanda posta. – bpapa

3

La piattaforma di sviluppo del gioco unity utilizza la stessa base di codice touch mono per il supporto C# (e ha contribuito al progetto).

+0

Esattamente, questo è ciò che intendevo per "giochi in mono". Ho dimenticato il nome della piattaforma. Immagino che questo tipo di prova dimostra che Apple non ha problemi con il compilatore mono, ma non dice nulla riguardo i collegamenti all'interfaccia utente touch. –

+0

Non vengono compilati in CL, in quanto ciò non è consentito da Apple e, in base alla documentazione di Monotouch, si collegano a tutte le API di iPhone. – Oded

+0

@Oded - I binding sono abbastanza accurati, e puoi facilmente creare nuovi binding (che include binding alle tue librerie, che è piuttosto interessante e mostra la flessibilità di MT). Una cosa che * non * vincola (ancora) è CoreData, ma è una sfida che va oltre i semplici binding. Per fare bene CoreData *, devi anche essere soddisfatto degli strumenti CoreData di Apple. Un problema generale è la combinazione di tipi .Net e ObjC. Ho alcune idee lì, ma è ancora abbastanza compito. Altrimenti, sì: MT viene fornito con legature in abbondanza e significa (a mano o con uno strumento) per creare il tuo :) –

Problemi correlati