Android vs iOS: platforma care este cel mai bun pentru dezvoltatori
Makradar De Tehnologie / / December 19, 2019
Android vs iOS. Tema Veșnic pentru lupte on-line, care are deja decent toate podnadoest. Nu te grăbi să treacă textul articolului și imediat trece la revărsarea aviz numai corectă în comentariile. Astăzi vom vorbi din nou despre care sistem este mai bine, dar într-un mod diferit.
Dezvoltatorii - cei care creează o parte esențială a oricărei platforme, adică aplicații. Este calitatea instrumentelor de dezvoltare, acesta oferă o platformă depinde de rezultatul final. Deci, în ce sistem este mai bine să scrie? Răspunde la această întrebare un dezvoltator de aplicații cu experiență, care a trebuit să fie aprins în App Store, și în Google Play.
Alegerea platformei - o problemă fundamentală pentru orice proiect nou. Android sau iOS? Având în vedere știri recente pe care Android a capturat cu succes 80% din piață, alegerea devine și mai dificilă. Nu contează ceea ce managerii și alte nu prea cunoștință cu aspectele tehnice ale problemei oamenilor gândesc la asta. Un alt lucru - dezvoltatorii.
Care este opinia lor? Avantajul acestei platforme sau că depinde în mod direct de capacitatea sa de a face viața mai bună.
Și prin „ei“ Vreau să spun „noastră.“ În plus față de activitatea autorului la TechCrunch, eu sunt în curs de dezvoltare, în HappyFunCorp. Mai mult decât atât, nu atât de mult timp în urmă, am creat un duet opensorsnyh aplicații prin intermediul său proiect de animalele de companie. Este aceste aplicații le folosesc pentru comparație.
Pentru înregistrare: am avut anterior pentru a scrie câteva aplicații Android și iOS, atât pentru uz personal cât și pentru muncă. În special, am scris client mobil pentru agregator de știri ScanvineCare colectează neobișnuit de povești populare din social media. Codul sursă de cererea mea poate fi găsită pe Github (Android | iOS), Și aplicațiile în sine sunt disponibile în Google Play și App Store.
Ei bine, să înceapă lupta.
miercuri
Puteți scrie în continuare cod într-un editor de text, și mulți fac până acum, dar în ceea ce privește performanta este mai util să se utilizeze IDE (Integrated Development Environment - IDE).
În cazul Apple, avem Xcode, și să lucreze în acest mediu - plăcere. Este flexibil, rapid, puternic și capabil de a ajuta, fără a fi prea intruziv. Și ea tot mai bine, în ciuda măsurilor dificile și paranoide luate de Apple pentru a păstra controlul deplin asupra aplicațiilor iOS, și dispozitive. Debugger funcționează fără probleme, și simulare - rapid și receptiv.
Ce despre Android? Oh, Android. În acest moment, mediul actual de dezvoltare sub ea este Eclipse, o mână de Android personalizate plug-in-uri, și rău necuviincios. Lent, lipsit de tact, ilogice, de multe ori sincer de neînțeles, prost conceput, prea complex - un dezastru real. depanator sa este atât de incomod încât cele mai multe ori îmi petrec în tinkering cu bușteni, în timp ce cu Xcode în posesia mea un adevarat instrument de bug-uri-Hunter. Nu uita despre emulatorul Android, care durează mai întâi câteva minute pentru a descărca, și apoi el nu a putut conecta la ADB.
Pentru a fi corect să spunem că Google este conștient de această problemă și lucrează la un nou Android Studio IDE:
În prezent, Android Studio este disponibil ca avanpremiere. Unele funcții nu pot înființa, sau nu sunt puse în aplicare, ceea ce ar putea duce la greșeli. În cazul în care utilizarea produsului neterminat provoacă disconfort, atunci puteți descărca și de a continua să utilizeze ADT Bundle (Eclipse plug-in cu ADT).
Mă bucur să văd că ei lucrează la această problemă, dar încă surprinzător - după ani 4 și jumătate după achiziționarea mea Primul Android cum ar fi mizerie este încă limita de perfecțiune, care a fost capabil de a realiza un mediu de dezvoltare Android.
Aici bate iOS, în mod necondiționat.
Configurarea
Sub furnir de Xcode si Objective-C sunt ascunse orori de Lovecraft, din epoca anilor șaptezeci programare. Glumesti Doar, eu sunt glumesc... dar încă. Macrocomenzi și fișiere antet, proiecte, obiective, scheme de asamblare și de configurare, și terifiant, lista înfricoșătoare a parametrilor de asamblare. şi mai mult descoperiri incredibile în stilul „Oh, codul terță parte nu acceptă ARC? Pur și simplu adăugați steagul -fno-objc-arc ». Doar? Nu!
În Android aveți un manifest fișier și Eclipse sunt, de obicei reconstruiește complet aplicația de fiecare dată când păstrați un fișier. Aș dori o mai mare claritate, atunci când, de exemplu, primiți un mesaj de eroare datorită faptului că configura în mod corespunzător regula, dar este un defect minor. Configurarea aplicație Android este simplu și elegant.
Aici bate Android.
design de interfață
S-ar părea că Apple este cu siguranță emerge victorios. Cu proiectantul lor, puteți construi cu ușurință și rapid o interfață simplă și frumos în căutarea. Problema este că mai mult am lucrat cu proiectantul, cu atât mai puțin mi-a plăcut. Acesta este un alt moment atunci când deschideți complexitatea de configurare - instrument este ideal pentru a crea lucruri simple, dar cu dezvoltarea Aplicarea simplu lucrurile devin brusc complicate, iar eu chiar nu le place aceste multiscreen storyboard care Apple a adăugat despre un an în urmă.
Pe Android, teoria este furnizat instrumente de vizualizare comparabile, dar în practică se scrie fișiere XMLCu instrucțiuni de desen care la un anumit noroc conduce la un ecran corectă a aplicației pe toate varietate de formate de ecrane de dispozitive Android. Apple a se deplasează în același mod, și lor Aspect auto în mod clar ascuțit pentru ecrane variante de expansiune viitoare pe dispozitive iOS.
În același timp, oferă dezvoltatorilor Android seturi de pictogrameÎntrucât dezvoltatorii iOS sunt nevoiți să apeleze la servicii furnizate de terțe părțiSau trage propriile pictograme.
În această rundă câștigătorul de a alege mai dificil, dar voi da iOS preferință pentru două motive. În primul rând, este încă mult mai ușor - doar 3 dimensiunea ecranului (inclusiv iPad) și raportul de aspect în format 2. diversitate Android în acest sens adaugă complexitate. Al doilea punct este recursul de incapacitate de plată a elementelor vizuale (meniurile pop-up, mesaje, și așa mai departe). În iOS totul are un aspect mult mai atractiv.
Aici bate iOS.
limbă
aplicații Android sunt scrise în Java, iOS - pe Objective-C. Există excepții, cum ar fi XamarinDar, în cele mai multe cazuri, o astfel de diviziune este validă.
Am învățat să scrie în Java, iar la început nu a crezut în special despre Objective-C, în mare parte datorită volumului mare sale.
Un șir cum ar fi:
String s2 = s1.replace ( "abc", "xyz");
Se întoarce la el în:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Dar, în procesul de a descoperi limba mi-a placut. Este mai bine și mai curat decât Java.
În acest caz, de asemenea, există argumente pro Java. De exemplu, un simplu trap și urme erori. În ultimii ani, Android a fost un alt avantaj foarte important în ceea ce privește colectarea deșeurilor, adică, purificarea automată a memoriei de obiecte inutile, dar acum iOS știe același lucru, și este de fapt un avantaj ajungă la zero. Având în vedere faptul că ultima victorie merge la iOS aici.
Aici bate iOS.
API-ul
În Android și iOS au o bibliotecă mare de software-ul disponibil pentru dezvoltatori, și, în general vorbind, ele sunt destul de asemănătoare: API pentru operarea funcțiilor telefonului și de comunicații, API-ul pentru accesul la rețea, arsenalul de telespectatori, inclusiv VizualizareWeb puternic - practic o clonă a întregului browser-ul.
Cea mai mare parte munca se face cu controlorii, și generale iOS ViewController este echivalentul a Android activitate.
Ceea ce într-adevăr nu au Android, deoarece este un analog cadru plin de bază de date. Pe ansamblu, sistemul este mai curat și mai bine proiectate. De exemplu, doar compara acesteadouă clasă în iOS, care efectuează cele mai multe dintre lucrările în cerere, cu acesteatreiechivalent clase în Android. În final, am prefera să lucreze cu iOS CollectionViewControllerDecât cu Android ListAdapter.
O altă valoare importantă: numărul de linii de cod. Versiunea mea a cererii pentru ambele platforme sunt practic identice în caracteristici și funcții, dar în iOS pentru a le pune în aplicare Ea mi-a luat 1596 de linii de cod, inclusiv fișierele antet, și pentru a crea versiunea pentru Android cu aceleași funcții necesare 2109 rânduri. Diferența este de 32%.
Aici bate iOS.
Internet
Astăzi, marea majoritate a aplicațiilor sunt mai multe ghiduri la Internet, mai degrabă decât de programe de sine stătătoare. Acesta este un punct foarte important, și ar trebui să fie luate în considerare separat. În arsenalul de ambele sisteme au un număr de instrumente și API pentru punerea în aplicare a cooperării cu rețeaua. De asemenea, ambele platforme pune în aplicare browser-ul, practic, cu drepturi depline, care poate fi construit în App așa cum vă place și oriunde te duci.
Conexiunile trebuie să ruleze în fundal și nu interferează cu aplicația în sine. Pentru a pune în aplicare multithreading în Android folosite AsyncTask. Acesta funcționează foarte bine și permite ușor determinaIndiferent dacă utilizatorul este pe web în acest moment. iOS oferă, de asemenea, capabilitati similare, dar acestea sunt puse în aplicare la un nivel relativ scăzut și nu satisface nevoile de dezvoltatori.
Cu toate acestea, există multe biblioteci terțe părți, open source, și ei fac viața mult mai ușoară. Am folosit AFNetworking, și funcționează la fel de bine cum este menționat în anunț.
Aici bate implicit Android și iOS folosind biblioteci terțe părți.
Partajarea
Cât de ușor când partajați orice aplicație anume Facebook, Twitter, Evernote, și alte servicii? Se pare că acest lucru va fi prima rundă în care Android va câștiga 100% knock-out: acesta are un sistem puternic de interacțiune între aplicații numite Intenții, și, în general, Android este mult mai loial cererii și transmiterea de date între aplicații.
În general, Apple a prins semnificativ concurent în oportunități sharinga. Nu poți lua cuvântul meu, verificați codul funcției „poveste Colaborați“ Scanvine pe Android și iOS. Singurul motiv pentru care codul iOS mai mult - prezența în ea unui urmărire mai flexibilă a serviciului Google Analytics, mai degrabă decât în Android.
Apoi trage.
fragmentare
Atunci nu trebuie să spun prea multe. Cu toate acestea, Google este încercarea de a utiliza Strategia de defragmentare interesantăAșa că într-un timp scurt, elementul va fi reexaminată.
Aici bate iOS.
publicarea cererii
Publicarea de aplicații Android este extrem de simplu. Instrumentul în Eclipse vă permite să construiască rapid aplicația, și în mâinile tale au deja un fișier apk. Trimiteți-l la un e-mail, posta on-line sau descărcare pe Google Play, făcându-l disponibil pe (aproape) lume în doar o oră. Apoi, devine posibilă monitorizarea statisticilor instalațiilor și a-rapoarte de avarie până la o anumită linie de cod, din cauza căreia cererea se blochează. Dacă este necesar, puteți actualiza pentru a lansa instantaneu.
Publicarea în App Store - este un coșmar. Prietenul meu sfătuiește să aloce la dezvoltarea calendarului de cel puțin o zi în război cu certificate și profiluri de distribuție. Nu contează cât de multe ori v-ați făcut-o înainte, și cât de mult mai ușor este încercarea de a face procesul de următoarea versiune a Xcode - vei fi încă multe probleme. Testarea de aplicare devine chiar mai mult de o problemă, dacă nu utilizați TestFlight. Adăugați la acest iTunes Connect, care nu merge la orice comparație cu Play Consola pentru dezvoltatori Google.
Aici bate Android, în mod necondiționat.
câștigător
Devine iOS, în plus, cu o anumită marjă. Avem avantajele Android, dar, în general, pentru a scrie o aplicație bună pentru iOS este încă mult mai ușor decât în Android. Adăugați la aceasta faptul că utilizatorii iOS mai mult de solvabilitate, și veți obține un răspuns la întrebarea pe care platforma ar trebui să fie o prioritate pentru o pornire. Probabil, decalajul va fi redus după lansarea Android Studio, permițând astfel pentru a rezolva unele probleme... dar nu toate.
Apropo, telefonul meu principal - Nexus 4, și eu sunt foarte multumit.
(prin)