Android vs iOS: ktorá platforma je najlepšie pre vývojárov
Makradar Technológia / / December 19, 2019
Android vs iOS. Večná téma pre online bitiek, ktorá má už slušne všetky podnadoest. Neponáhľajte odovzdať text článku a okamžite prejsť k vyliatiu jeho len správne mienky v komentároch. Dnes budeme opäť hovoriť o tom, ktorý systém je lepší, ale iným spôsobom.
Vývojári - tí, ktorí vytvárajú kľúčovou súčasťou akejkoľvek platforme, tj aplikácie. Je kvalita vývojových nástrojov, poskytuje platformu záleží na konečnom výsledku. Takže, za akých systém je lepší písať? Odpoveď na túto otázku skúsený vývojár aplikácie, ktorá mala byť osvetlená v App Store, a v službe Google Play.
Voľba platformy - zásadným problémom pre akýkoľvek nový projekt. Android alebo iOS? S ohľadom na poslednej správy, že Android úspešne zachytil 80% trhu, voľba sa stáva ešte ťažšie. Nezáleží na tom, čo manažéri a ďalšie nie príliš znalý s technickými aspektmi problematiky ľudí si myslí o tom. Ďalšia vec - vývojári.
Aký je ich názor? To má tú výhodu, alebo že platforma je priamo závislá na jeho schopnosti, aby sa ich život lepší.
A "oni" Myslím "naše". Popri činnosti autora v TechCrunch, ja vyvíja HappyFunCorp. Okrem toho, nie je to tak dávno, som vytvoril duet opensorsnyh aplikácií prostredníctvom svojej projektovej maznáčika. Sú to práve tieto aplikácie môžem použiť pre porovnanie.
Pre pripomenutie: Predtým som musel napísať pár Android a iOS aplikácií, a to ako pre osobnú potrebu a pre prácu. Najmä som napísal mobilný klient pre váš agregátor noviniek ScanvineKtorý zbiera nezvyčajne populárnych príbehov zo sociálnych médií. Zdrojový kód mojej žiadosti možno nájsť na GitHub (robot | iOS), A sú k dispozícii v samotnej aplikácie Google Play a App Store.
No, tak bitka môže začať.
streda
Stále môžete písať kód v textovom editore, a mnoho z nich robí tak ďaleko, ale pokiaľ ide o Výkon je vhodnejšie použiť IDE (Integrated Development Environment - IDE).
V prípade Apple, máme Xcode a pracovať v tomto prostredí - potešenie. Je flexibilný, rýchly, silný a schopný pomôcť, bez príliš dotieravý. A ona je čím ďalej lepšia, napriek obtiažnym a paranoidných opatreniam prijatým Apple udržať plnú kontrolu nad aplikácií iOS a zariadení. Ladiaci program beží hladko, a simulácie - rýchly a citlivý.
Čo o Androidu? Oh, Android. V súčasnej dobe je aktuálne vývojové prostredie pod ním je Eclipse, hŕstka Android prispôsobiť plug-inov, a to obscénne zlé. Pomalý, ťažkopádny, nelogické, často otvorene nepochopiteľné, zle navrhnutý, príliš zložitý - skutočný neporiadok. Jeho debugger je tak nepohodlné, že väčšinu času trávim v vŕtať sa v protokoloch, zatiaľ čo s Xcode v mojom vlastníctve skutočným nástrojom-lovec chyby. Nezabudnite na emulátora Android, ktorý najprv trvá niekoľko minút, aby sťahovanie, a potom sa nemohol pripojiť k ADB.
Aby bolo spravodlivé povedať, že Google si je vedomá tohto problému a pracujú na novom Android Studio IDE:
V súčasnej dobe Android Studio je k dispozícii ako predbežnú verziu. Niektoré funkcie nemusia zriadiť, alebo nie sú implementované, ktorý by mohol spôsobiť chyby. Ak by sa používanie nedokončenej produktu je príčinou vášho nepohodlie, potom si môžete stiahnuť a používať aj naďalej ADT Bundle (Eclipse plug-in s ADT).
Pekné vidieť, že pracujú na probléme, ale stále prekvapujúce - po 4 a pol roka po zakúpení mojej Prvý Android podobný neporiadok je stále hranice dokonalosti, ktorý bol schopný dosiahnuť vývojového prostredia Android.
Tu bije iOS, bezpodmienečne.
Konfigurácia
Pod pozlátkom Xcode a Objective-C sú skryté hrôzy Lovecraft z éry sedemdesiatych rokov programovania. Robím si srandu, že si robím srandu... ale napriek tomu. Makrá a hlavičkové súbory, projekty, ciele, program a montážne konfigurácie a desivé, desivý zoznam parametrov zhromaždenia. a ďalšie neuveriteľné objavy v štýle "Ach, vaše tretie strany kód nepodporuje ARC? Stačí pridať príznak -fno-objc oblúkom ». Len? Nie!
V Androidu máte súbor manifestu, a Eclipse sú obvykle úplne prestaví aplikácie zakaždým, keď budete mať súbor. Chcel by som väčšiu jasnosť, ak sa napríklad zobrazí chybové hlásenie vzhľadom na to, že správne nastaviť pravidlo, ale je to menšie vadu. Nastavenie aplikácie pre Android je jednoduchá a elegantná.
Tu bije Android.
interface dizajn
Zdá sa, že Apple je určite zvíťazí. S ich designer môžete ľahko a rýchlo vytvárať jednoduché a pekne vyzerajúce rozhranie. Problém je v tom, že čím dlhšie som pracoval s projektantom, tým menej sa mi to páčilo. To je ďalší čas pri otvorení zložitosť konfigurácie - nástroj je ideálny pre vytváranie jednoduchých vecí, ale s rozvojom Aplikácia jednoduché veci sa zrazu stanú zložitá, a ja naozaj nemám rád tieto viacnásobného storyboardy, ktoré Apple pridali o pred rokom.
V systéme Android, teória je poskytovaná porovnateľná vizualizačné nástroje, ale v praxi píšete XML súboryObsahujúce výkresu inštrukcie, že v niektorých Luck vedie ku správne zobrazenie aplikácie na všetkých rôznych formátov obrazoviek zariadení so systémom Android. Apple sa pohybuje rovnakým spôsobom, a ich auto Layout jasne naostrený pre budúce rozšírenie variantov obrazoviek na zariadeniach so systémom iOS.
V rovnakej dobe, Android dáva vývojárom sád ikonKým vývojári iOS sú nútení sa obrátiť na Služby tretích stránAlebo nakresliť vlastné ikony.
V tomto kole víťaz zvoliť náročnejšie, ale dám prednosť iOS z dvoch dôvodov. Po prvé, je to ešte oveľa jednoduchšie - stačí 3 veľkosť obrazovky (vrátane iPadu) a formát s pomerom strán 2. Android rozmanitosť v tejto súvislosti dodáva zložitosť. Druhým bodom je odvolanie z omeškania vizuálnych prvkov (pop-up menu, správy, a tak ďalej). V systéme iOS to všetko vyzerá oveľa atraktívnejšie.
Tu bije iOS.
jazyk
Android aplikácie sú napísané v jazyku Java, iOS - na Objective-C. Existujú však výnimky, ako je The XamarinAle vo väčšine prípadov takéto rozdelenie je platné.
Naučil som sa písať v Jave, a na prvý pohľad nijako zvlášť premýšľal o Objective-C, a to predovšetkým vďaka svojej objemnosti.
Reťazec ako sú:
Reťazec s2 = s1.replace ( "abc", "xyz");
Zákruty k nemu:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Ale v procese objaviť jazyk sa mi naozaj páčil. Je to lepšie a čistejšie než Java.
V tomto prípade, aj tam sú výhody Java. Napríklad jednoduchý pasce a stopové chyby. V posledných niekoľkých rokoch, Android bol ďalší veľmi významná výhoda, pokiaľ ide o zber odpadu, ktorý je, automatické čistenie pamäti od zbytočných predmetov, ale teraz iOS vie to isté, a je vlastne výhoda k ničomu. Vzhľadom k tomu, že posledný víťazstvo prechádza do iOS tu.
Tu bije iOS.
API
V Android a iOS majú obrovskú knižnicu softvér k dispozícii pre vývojárov, a všeobecne povedané, sú veľmi podobné: API pre Prevádzka funkcie telefónu a komunikácie, rozhranie API pre prístup k sieti, arzenálu divákov, vrátane mocné WebView - prakticky klon plnej browser.
Väčšina práce sa vykonáva s regulátormi a všeobecne iOS ViewController je ekvivalent pre Android aktivity.
Ktoré naozaj nemajú Android, pretože sa jedná o plne analógový základných údajov rámec. Na celý systém je čistejší a lepší dizajn. Napríklad len porovnať títodva trieda v iOS, ktoré vykonávajú väčšinu práce v žiadosti, pričom títotriekvivalentná triedy v Android. Na konci som sa radšej na prácu s iOS CollectionViewControllerNež s operačným systémom Android ListAdapter.
Ďalším dôležitým metrický: počet riadkov kódu. Moja verzia aplikácie pre obe platformy sú prakticky totožné v vlastností a funkcií, ale v systéme iOS pre ich vykonávanie Trvalo mi 1596 riadkov kódu, vrátane hlavičkových súborov a vytvoriť systém Android verzia s rovnakými funkciami požadovanými 2109 riadkov. Rozdiel je 32%.
Tu bije iOS.
internet
V súčasnej dobe drvivá väčšina aplikácií sú ďalšie návody na internete, skôr než samostatné programy. To je veľmi dôležitý bod, a to by malo byť posudzované oddelene. V arzenálu oboch systémov má rad nástrojov a API pre vykonávanie spolupráce so sieťou. Tiež obe platformy realizovať prakticky plnohodnotné prehliadača, ktorý môže byť zabudovaný do aplikácie, ako sa vám páči a nech ste kdekoľvek.
Prípojky musia bežať na pozadí a nenarušuje samotnej aplikácie. Implementovať multithreading v Android používa AsyncTask. Funguje to veľmi dobre a umožňuje jednoduchú určiťČi je používateľ na webe v tomto okamihu. iOS tiež ponúka podobné funkcie, ale sú vykonávané na relatívne nízkej úrovni a nezodpovedajú potrebám developerov.
Avšak, existuje mnoho knižníc tretích strán, open source, a robia život oveľa jednoduchší. Použil som AFNetworking, a funguje to rovnako dobre, ako to je odvolával sa na reklamu.
Tu bije predvolené Android a iOS pomocou knižníc tretích strán.
zdieľanie
Ako ľahko zdieľať niektoré z konkrétnej aplikácie v Facebook, Twitter, Evernote a ďalších služieb? Zdá sa, že to bude prvé kolo, v ktorom Android vyhrá 100% knockout: má silný systém interakcie medzi aplikáciami zvaných zámery, a všeobecne, Android je oveľa viac lojálni k žiadosti a prenosu údajov medzi aplikácie.
Všeobecne platí, že Apple už dohnal výrazne konkurenta v sharing príležitostí. Nemôžete vziať moje slovo, skontrolujte kód funkcie "Share príbeh" v Scanvine na robot a iOS. Jediným dôvodom, prečo iOS kód viac - prítomnosť v ňom pružnejšieho sledovania Google Analytics, nie v Androidu.
Potom nakreslite.
roztrieštenia
Potom Nepotrebujem hovoriť veľa. Avšak, Google sa snaží o využití Zaujímavý stratégie defragmentácieTak, že v krátkej dobe položka bude znovu preskúmaná.
Tu bije iOS.
zverejnenia prihlášky
Publikovanie aplikácií pre Android je veľmi jednoduchá. Nástroj v Eclipse umožňuje rýchlo vytvárať aplikácie, a vo vašich rukách už máte súbor APK. Odoslať ju na e-mail, odosielať on-line, alebo stiahnuť z Google Play, takže je k dispozícii v celej (takmer) na svete, len jednu hodinu. Potom sa stáva možné sledovať štatistiky inštalácií a núdzovo hlási až na určitý riadok kódu, vďaka ktorému sa žiadosť zrúti. Ak je to nutné, môžete aktualizovať na zavedenie okamžite.
Zverejnenie v App Store - je to nočná mora. Môj priateľ odporúča vyčleniť na vývoj kalendára aspoň jeden deň na vojnu s certifikátmi a distribučných profilov. Bez ohľadu na to, koľkokrát ste to urobil predtým, a ako oveľa jednoduchšie sa snaží, aby sa proces ďalšieho verziu Xcode - budete aj naďalej veľa problémov. testovanie aplikácií sa stáva ešte väčším problémom, ak nepoužijete TestFlight. Pridajte k tomu iTunes Connect, ktorá nemá ísť do akejkoľvek porovnaní s Play konzoly Google Developer Console.
Tu bije Android, bezpodmienečne.
víťaz
Stáva iOS, navyše s určitou rezervou. Máme výhody Android, ale všeobecne písať dobré aplikácie pre iOS je stále oveľa jednoduchšie, než v Android. Pridajte k tomu skutočnosť, že užívatelia iOS viac ako solventnosť, a dostanete odpoveď na otázku, ktorá platforma by mala byť prioritou pre uvedenie do prevádzky. Pravdepodobne bude medzera zníži po vydaní Android Studio, čo umožňuje vyriešiť niektoré problémy... ale nie všetky.
Mimochodom, môj hlavný telefón - Nexus 4, a ja som veľmi potešený.
(via)