Android vs iOS: quale piattaforma è la cosa migliore per gli sviluppatori
Makradar Della Tecnologia / / December 19, 2019
Android vs iOS. tema eterno per battaglie online, che ha già decentemente tutto podnadoest. Non abbiate fretta di passare il testo dell'articolo e subito passare alla effusione del suo unico corretta opinione nei commenti. Oggi parleremo di nuovo su quale sistema è migliore, ma in un modo diverso.
Gli sviluppatori - quelli che creano una parte fondamentale di qualsiasi piattaforma, vale a dire applicazioni. E 'la qualità degli strumenti di sviluppo, fornisce una piattaforma dipende dal risultato finale. Quindi, sotto quale sistema è meglio scrivere? Rispondi a questa domanda uno sviluppatore di applicazioni con esperienza, che ha dovuto essere illuminato in App Store e su Google Play.
La scelta della piattaforma - un problema fondamentale per ogni nuovo progetto. Android o iOS? Data la recente notizia che Android ha catturato con successo l'80% del mercato, la scelta diventa ancora più difficile. Non importa ciò che i manager e altri non troppo informato con gli aspetti tecnici del popolo emissione pensarci. Un'altra cosa - gli sviluppatori.
Qual è la loro opinione? Il vantaggio di questa o quella piattaforma è direttamente dipendente dalla sua capacità di rendere migliore la loro vita.
E per "loro" intendo "il nostro". Oltre alle attività dell'autore al TechCrunch, sto sviluppando in HappyFunCorp. Inoltre, non molto tempo fa, ho creato un duetto opensorsnyh applicazioni attraverso il suo progetto-pet. Si tratta di queste applicazioni che uso per il confronto.
Per la cronaca: ho già dovuto scrivere alcune applicazioni Android e iOS, sia per uso personale e per il lavoro. In particolare, ho scritto client mobile per il vostro aggregatore di notizie ScanvineChe raccoglie insolitamente storie popolari social media. Il codice sorgente della mia applicazione può essere trovato su Github (androide | iOS), E le applicazioni stesse sono disponibili in Google Play e App Store.
Beh, lasciate che la battaglia abbia inizio.
mercoledì
È ancora possibile scrivere codice in un editor di testo, e molti stanno facendo fino ad ora, ma in termini di prestazioni è più utile usare l'IDE (Integrated Development Environment - IDE).
Nel caso di Apple, abbiamo Xcode, e lavorare in questo ambiente - piacere. E 'flessibile, veloce, potente e in grado di aiutare, senza essere troppo invadente. E lei è sempre meglio, nonostante le misure difficili e paranoiche prese da Apple per mantenere il pieno controllo sulle applicazioni iOS e dispositivi. Il debugger senza intoppi, e la simulazione - veloce e reattivo.
Che dire di Android? Oh, Android. Al momento, l'ambiente di sviluppo vero e proprio sotto di essa è l'Eclipse, una manciata di Android personalizzato plug-in, e oscenamente male. Lento, impacciato, illogica, spesso francamente incomprensibile, mal progettato, troppo complesso - un vero e proprio disastro. Il suo debugger è così scomodo che la maggior parte del tempo che passo in armeggiare con i registri, mentre con Xcode in mio possesso un vero e proprio bug strumento-Hunter. Non dimenticare l'emulatore di Android, che prende prima un paio di minuti per scaricare, e poi non riusciva a collegarsi al ADB.
Per essere giusto dire che Google è a conoscenza di questo problema e stanno lavorando ad un nuovo Android Studio IDE:
Attualmente, Android Studio è disponibile in anteprima in anticipo. Alcune funzioni non possono costituire, o non vengono attuate, che potrebbe causare errori. Se l'uso del prodotto non finito sta causando il disagio, quindi è possibile scaricare e continuare a utilizzare l'ADT Bundle (plug-in Eclipse con ADT).
Bello vedere che stanno lavorando sul problema, ma comunque sorprendente - dopo 4 anni e mezzo dopo l'acquisto della mia primo Android-come disordine è ancora il limite della perfezione, che è stato in grado di raggiungere un ambiente di sviluppo Android.
Qui batte iOS, senza condizioni.
Configurazione
Sotto la patina di Xcode e Objective-C si nascondono orrori Lovecraft dall'era degli anni settanta di programmazione. Sto scherzando, sto scherzando... ma ancora. Macro e file di intestazione, progetti, obiettivi, e schema di montaggio di configurazione, e terrificanti, lista spaventosa di parametri di montaggio. e più scoperte incredibili nello stile di "Oh, il tuo codice di terze parti non supporta l'ARC? Basta aggiungere il flag -fno-objc-arc ». Basta? No!
In Android si dispone di un file manifesto, ed Eclipse sono di solito ricostruisce completamente l'applicazione ogni volta che si mantiene un file. Vorrei maggiore chiarezza quando, ad esempio, viene visualizzato un messaggio di errore a causa del fatto che configurare correttamente la regola, ma è un difetto minore. Configurazione applicazione Android è semplice ed elegante.
Qui batte Android.
interface design
Sembrerebbe che Apple è sicuramente uscire vittoriosi. Con il loro design si può facilmente e rapidamente costruire una semplice e piacevole guardare interfaccia. Il problema è che più ho lavorato con il progettista, meno mi è piaciuto. Questo è un altro momento in cui si apre la complessità di configurazione - strumento è ideale per la creazione di cose semplici, ma con lo sviluppo di cose semplici applicazioni diventano improvvisamente complicata, e io davvero non mi piace questi multischermo storyboard, che Apple ha aggiunto su un anno fa.
Su Android, la teoria è fornito strumenti di visualizzazione comparabili, ma in pratica si scrive file XMLContenente le istruzioni di disegno che a un certo porta fortuna per una corretta visualizzazione della applicazione su tutte le varietà di formati schermi dei dispositivi Android. Apple sta muovendo nello stesso modo, e la loro layout automatico chiaramente affilato per variazioni di espansione futura schermi sui dispositivi iOS.
Allo stesso tempo, Android offre agli sviluppatori set di iconeMentre gli sviluppatori iOS sono costretti a rivolgersi a servizi di terze partiO disegnare le proprie icone.
In questo giro il vincitore di scegliere più difficile, ma mi darà iOS preferenza per due motivi. In primo luogo, è ancora molto facile - solo 3 dimensioni dello schermo (compreso l'iPad) e proporzioni 2 formato. diversità Android a questo proposito aggiunge complessità. Il secondo punto è l'appello di predefinito di elementi visivi (menu pop-up, messaggi, e così via). In iOS sembra tutto molto più attraente.
Qui batte iOS.
lingua
le applicazioni Android sono scritte in Java, iOS - su Objective-C. Ci sono delle eccezioni, come la XamarinMa nella maggior parte dei casi una tale divisione è valido.
Ho imparato a scrivere in Java, e in un primo momento non particolarmente pensato di Objective-C, in gran parte a causa della sua ingombro.
Una stringa del tipo:
String s2 = s1.replace ( "abc", "xyz");
Si rivolge a lui in:
NSString * s2 = [S1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Ma nel processo di scoprire la lingua mi è piaciuto molto. Sta meglio e più pulito di Java.
In questo caso, ci sono pro Java. Ad esempio, un semplice intercettare gli errori e traccia. Negli ultimi anni, Android è stato un altro vantaggio molto significativo in termini di raccolta dei rifiuti, che è, depurazione automatica della memoria da oggetti inutili, ma ora iOS conosce la stessa cosa, ed è in realtà un vantaggio venire a nulla. Tenuto conto del fatto che l'ultima vittoria va a iOS qui.
Qui batte iOS.
API
In Android e iOS hanno una vasta libreria di software disponibile per gli sviluppatori, e in generale, sono abbastanza simili: API per funzionamento delle funzioni del telefono e delle comunicazioni, le API per l'accesso alla rete, l'arsenale di spettatori, tra cui potenti WebView - praticamente un clone del pieno browser.
La maggior parte del lavoro è fatto con i controllori, e generale iOS ViewController è l'equivalente di Android attività.
Che in realtà non hanno Android, perché è un analogo quadro completo Core Data. Nel complesso, il sistema è più pulito e meglio progettati. Ad esempio, basta confrontare questedue di classe in iOS, che svolgono la maggior parte del lavoro nell'applicazione, con questetreequivalente classi in Android. Alla fine, preferisco di gran lunga al lavoro con iOS CollectionViewControllerChe con Android ListAdapter.
Un altro parametro importante: il numero di linee di codice. La mia versione dell'applicazione per entrambe le piattaforme sono praticamente identici per caratteristiche e funzioni, ma in iOS per la loro attuazione Ci sono voluti i miei 1596 linee di codice, inclusi i file di intestazione, e di creare la versione Android con le stesse funzioni richieste 2109 righe. La differenza è 32%.
Qui batte iOS.
Internet
Oggi, la maggior parte delle applicazioni sono più guide a Internet, piuttosto che programmi autonomi. Questo è un punto molto importante, e dovrebbe essere considerato separatamente. Nel arsenale di entrambi i sistemi hanno una serie di strumenti e API per l'attuazione della cooperazione con la Rete. Inoltre entrambe le piattaforme implementano praticamente a tutti gli effetti del browser, che può essere costruito in app come ti piace e ovunque tu vada.
Il collegamento deve essere eseguito in background e non interferisce con l'applicazione stessa. Per implementare il multithreading in Android usato AsyncTask. Funziona molto bene e permette un facile determinareSe l'utente è sul web in questo momento. iOS offre anche funzionalità simili, ma la loro applicazione a un livello relativamente basso e non soddisfano le esigenze degli sviluppatori.
Tuttavia, ci sono molte librerie di terze parti, open source, e rendono la vita molto più facile. Ho usato AFNetworking, e funziona altrettanto bene come è indicato nella pubblicità.
Qui batte il default di Android e iOS utilizzando librerie di terze parti.
Condivisione
Quanto è facile condividere la qualsiasi particolare applicazione in Facebook, Twitter, Evernote, e altri servizi? Sembra che questo sarà il primo turno in cui Android vincerà 100% eliminazione diretta: ha un potente sistema di interazione tra le applicazioni chiamate Intenti, e, in generale, Android è molto più fedele alla richiesta e la trasmissione di dati tra applicazioni.
In generale, Apple ha raggiunto in modo significativo concorrente opportunità sharinga. Non si può prendere la mia parola, controllare il codice funzione "Condividi storia" in Scanvine su androide e iOS. L'unico motivo per cui il codice iOS di più - la presenza in essa di un monitoraggio più flessibile di Google Analytics, piuttosto che nel Android.
Quindi disegnare.
frammentazione
Poi non ho bisogno di dire molto. Tuttavia, Google sta cercando di utilizzo strategia di deframmentazione interessanteIn modo che in breve tempo l'articolo sarà riesaminato.
Qui batte iOS.
pubblicazione della domanda
Pubblicazione di applicazioni Android è estremamente semplice. Strumento in Eclipse permette di creare rapidamente l'applicazione, e nelle vostre mani già avere un file apk. Invia ad una e-mail, pubblicare online, o scaricare su Google Play, rendendolo disponibile in tutto (quasi) il mondo in una sola ora. Allora diventa possibile monitorare installazioni statistiche e crash-segnala fino a una specifica linea di codice, a causa della quale l'applicazione si blocca. Se necessario, è possibile aggiornare a rotolare fuori all'istante.
Pubblicazione in App Store - è un incubo. Il mio amico consiglia di destinare allo sviluppo del calendario almeno un giorno sulla guerra con i certificati e profili di distribuzione. Non importa quante volte hai fatto prima, e quanto più facile che sta cercando di rendere il processo della prossima versione di Xcode - si sarà ancora molti problemi. test delle applicazioni diventa ancora più di un problema, a meno che non si utilizza PROVA Scelta dei colori. Aggiungere a questo l'iTunes Connect, che non va a qualsiasi confronto con il Google Play Console per gli sviluppatori.
Qui batte Android, incondizionatamente.
vincitore
Diventa IOS, peraltro con un certo margine. Abbiamo i vantaggi di Android, ma in generale per scrivere un'applicazione buona per iOS è ancora molto più facile che in Android. Aggiungere a questo il fatto che gli utenti iOS più di solvibilità, e si ottiene una risposta alla questione di quale piattaforma dovrebbe essere una priorità per una startup. Probabilmente, il divario si riduce dopo il rilascio di Android Studio, permettendo così di risolvere alcuni problemi... ma non tutti.
A proposito, il mio principale del telefono - Nexus 4, e sono molto contento.
(via)