Sto trasferendo la mia app da iOS ad Android: cosa devo sapere? [chiuso]

15

Quali trabocchetti dovrei evitare?

  • Quali paradigmi del linguaggio Java gli sviluppatori di Objective-C fraintendono costantemente? Ho imparato a programmare in Java, ma per anni ho lavorato solo con Objective-C.
  • In che modo i modelli di progettazione sono diversi tra Android e iOS?
  • Se hai effettuato personalmente la transizione, quali parti di Android ti hanno confuso o ti hanno impiegato più tempo a imparare di quanto avrebbe dovuto?
  • Eclipse è il miglior OS X IDE per Android?

Per la cronaca, la mia app è strongmente legata a UIKit e Foundation, quindi la parola "porting" potrebbe essere un termine improprio; Veramente lo sto riscrivendo completamente per Android. Nessun riutilizzo del codice. Inoltre, lo sto facendo per imparare Android, quindi preferirei fallire alla porta e imparare Android piuttosto che prendere una scorciatoia.

Come sfondo, questa domanda è stata suggerita dai tipi di domande che vedo su Stackoverflow. Spesso si può dire quale sia stato lo sfondo di qualcuno (C # o Java) da quali sciocchi errori fanno quando stanno cercando di scrivere Obj-C. Mi piacerebbe evitare i tipi di errori che fanno sì che gli sviluppatori Java facciano roteare gli occhi e dica: "Gli sviluppatori di Silly Objective-C, non apprenderanno mai?"

    
posta kubi 17.01.2011 - 03:51
fonte

2 risposte

11

Sto facendo il porting di un'app da iOS ad Android, è l'app di qualcun altro con cui sto lavorando per fare la porta ma in assoluto.

Innanzitutto vorrei dire che alle basi degli utenti sono stati insegnati modi drasticamente diversi di interagire con i loro dispositivi. Molto di questo viene dal design attuale delle applicazioni e dai modi in cui funzionano i dispositivi.

Alcune cose generali:

  • Landscape è praticamente richiesto sui dispositivi Android
  • Le app Android tendono a rimanere attive quando non vengono utilizzate attivamente, quindi devi pensarci per problemi di rete, gps, ecc ...
  • Segmentazione del dispositivo, ci sono un sacco di dispositivi Android e risoluzioni dello schermo, questo è dove i layout relativi e le immagini con nove patch sono molto utili.

Un grosso problema che molte persone inizialmente non pensano a Your UI can not be exactly the same on both devices , sicuro che può essere simile ma il porting di un'interfaccia utente iPhone su un dispositivo Android non funzionerà molto bene.

Alcuni motivi:

  • Menu contestuali a tocco lungo
  • Menu popups
  • Segmentazione del dispositivo che causa risoluzioni e proporzioni differenti
  • Non gli stessi controlli con cui lavorare

Il back-end in realtà non è un grosso problema dato che la maggior parte di essa sta semplicemente implementando la maggior parte di ciò che stavi lavorando con Java e con l'SDK Android. I miei maggiori problemi derivano da ciò che l'Utente si aspetta e dal comportamento dell'interfaccia utente e dalle differenze, a volte è meglio e, a volte, è peggio. Dipende solo da cosa sta facendo la tua app.

Modifica

Ho appena realizzato che non ho risposto alle parti reali delle tue domande, quindi ecco qui (il mio scatto migliore almeno)

Non direi che ci siano dei paradigmi linguistici di grande portata che Obj-C devia fraintendendo, direi che Java è probabilmente più semplice ottenere ciò che voglio che faccia da una prospettiva OOP. (Dovrei dire che lavoro davvero solo con .NET e Java e conosco solo abbastanza Obj-C da ottenere).

Userei sicuramente Eclipse, mi sono stancato di usare IntellijIdea per un po 'e mi ha dato solo molti problemi nel tentativo di farlo fare certe cose.

    
risposta data 17.01.2011 - 16:15
fonte
3

[questa risposta è una specie di brio o rantolo. Stavo per cancellarlo ma ho pensato che potesse essere interessante: fammi sapere tramite i commenti se dovessi eliminarlo e lo farò].

Non lavoro su Android ma lavoro in Java e iOS (con Obj-C). L'unica cosa che è molto diversa nello sviluppo di Java è quanto un IDE può dare una mano (le persone ti diranno di non usare un IDE, che è un approccio totalmente diverso sulla stessa cosa: poche persone lo consigliano con Java, comunque) . XCode generalmente non è in grado di rilevare CORRETTAMENTE anche i più semplici errori di sintassi (a causa della struttura del linguaggio, penso). In Java, d'altra parte, l'IDE può farti muovere molto più velocemente di quanto faresti senza di esso. Puoi anche fare cose interessanti come programmare il ciente chiamante e POI scrivere il metodo. In Eclipse, ad esempio, se digito

blah.doIt(firstObj, secondObj);

e firstObj e secondObj sono String istanze, l'IDE mi darà la possibilità di creare un metodo con il sig "public void doIt (String firstObj, String secondObj)." È davvero bello, e solo la punta dell'iceberg: l'IDE è tuo amico. Ho sentito che IntelliJ potrebbe essere ancora più bello (anche se nelle mie prove non lo è stato).

C'è una trappola in questa risposta? Forse è così: pensare che l'IDE giochi lo stesso ruolo in Obj-C e Java. In Java, l'IDE può fare cose che sarebbe incredibilmente difficile da fare da soli. Il refactoring automatico, a causa del modo in cui è Java, è 100 volte più potente di XCode. Ciò significa che puoi posticipare alcune domande di progettazione fino a un momento successivo.

    
risposta data 01.02.2011 - 08:35
fonte

Leggi altre domande sui tag