Android vs iOS: která platforma je nejlepší pro vývojáře
Makradar Technologie / / December 19, 2019
Android vs iOS. Věčné téma pro online bitev, která má již slušně všechny podnadoest. Nespěchejte předat text článku a okamžitě přejít k vylití jeho jen správné mínění v komentářích. Dnes budeme opět mluvit o tom, který systém je lepší, ale jiným způsobem.
Vývojáři - ti, kteří vytvářejí klíčovou součástí jakékoliv platformě, tj aplikace. Je kvalita vývojových nástrojů, poskytuje platformu záleží na konečném výsledku. Takže, za jakých systém je lepší psát? Odpověď na tuto otázku zkušený vývojář aplikace, která měla být osvětlena v App Store, a ve službě Google Play.
Volba platformy - zásadním problémem pro jakýkoli nový projekt. Android nebo iOS? S ohledem na poslední zprávy, že Android úspěšně zachytil 80% trhu, volba se stává ještě obtížnější. Nezáleží na tom, co manažeři a další ne příliš znalý s technickými aspekty problematiky lidí si myslí o tom. Další věc - vývojáři.
Jaký je jejich názor? To má tu výhodu, nebo že platforma je přímo závislá na jeho schopnosti, aby se jejich život lepší.
A „oni“ Myslím „naše“. Vedle činnosti autora v TechCrunch, já vyvíjí HappyFunCorp. Kromě toho, není to tak dávno, jsem vytvořil duet opensorsnyh aplikací prostřednictvím své projektové mazlíčka. Jsou to právě tyto aplikace mohu použít pro srovnání.
Pro připomenutí: Předtím jsem musel napsat pár Android a iOS aplikací, a to jak pro osobní potřebu a pro práci. Zejména jsem napsal mobilní klient pro váš agregátor novinek ScanvineKterý sbírá nezvykle populárních příběhů ze sociálních médií. Zdrojový kód mé žádosti lze nalézt na GitHub (robot | iOS), A jsou k dispozici v samotné aplikace Google Play a App Store.
No, tak bitva může začít.
středa
Stále můžete psát kód v textovém editoru, a mnoho z nich dělá tak daleko, ale pokud jde o Výkon je vhodnější použít IDE (Integrated Development Environment - IDE).
V případě Apple, máme Xcode a pracovat v tomto prostředí - potěšení. Je flexibilní, rychlý, silný a schopný pomoci, aniž by příliš dotěrný. A ona je čím dál lepší, navzdory obtížným a paranoidních opatřením přijatým Apple udržet plnou kontrolu nad aplikací iOS a zařízení. Ladicí program běží hladce, a simulace - rychlý a citlivý.
Co o Androidu? Oh, Android. V současné době je aktuální vývojové prostředí pod ním je Eclipse, hrstka Android přizpůsobit plug-inů, a to obscénně špatné. Pomalý, těžkopádný, nelogické, často otevřeně nepochopitelné, špatně navržen, příliš složitý - skutečný nepořádek. Jeho debugger je tak nepohodlné, že většinu času trávím v vrtat se v protokolech, zatímco s Xcode v mém vlastnictví skutečným nástrojem-lovec chyby. Nezapomeňte na emulátoru Android, který nejprve trvá několik minut, aby stahování, a pak se nemohl připojit k ADB.
Aby bylo spravedlivé říci, že Google si je vědoma tohoto problému a pracují na novém Android Studio IDE:
V současné době Android Studio je k dispozici jako předběžnou verzi. Některé funkce nemusí zřídit, nebo nejsou implementovány, který by mohl způsobit chyby. Pokud by se používání nedokončené produktu je příčinou vašeho nepohodlí, pak si můžete stáhnout a používat i nadále ADT Bundle (Eclipse plug-in s ADT).
Hezké vidět, že pracují na problému, ale stále překvapující - po 4 a půl roku po zakoupení mé První Android podobný nepořádek je stále hranice dokonalosti, který byl schopen dosáhnout vývojového prostředí Android.
Zde bije iOS, bezpodmínečně.
Konfigurace
Pod pozlátkem Xcode a Objective-C jsou skryté hrůzy Lovecraft z éry sedmdesátých let programování. Dělám si srandu, že si dělám legraci... ale přesto. Makra a hlavičkové soubory, projekty, cíle, program a montážní konfigurace a děsivé, děsivý seznam parametrů shromáždění. a další neuvěřitelné objevy ve stylu „Ach, vaše třetí strany kód nepodporuje ARC? Stačí přidat příznak -fno-objc obloukem ». Jen? Ne!
V Androidu máte soubor manifestu, a Eclipse jsou obvykle zcela přestaví aplikace pokaždé, když budete mít soubor. Chtěl bych větší jasnost, pokud se například zobrazí chybová zpráva vzhledem k tomu, že správně nastavit pravidlo, ale je to menší vadu. Nastavení aplikace pro Android je jednoduchá a elegantní.
Zde bije Android.
interface design
Zdá se, že Apple je určitě zvítězí. S jejich designer můžete snadno a rychle vytvářet jednoduché a pěkně vypadající rozhraní. Problém je v tom, že čím déle jsem pracoval s projektantem, tím méně se mi to líbilo. To je další čas při otevření složitost konfigurace - nástroj je ideální pro vytváření jednoduchých věcí, ale s rozvojem Aplikace jednoduché věci se najednou stanou složitá, a já opravdu nemám rád tyto vícenásobného storyboardy, které Apple přidali o před rokem.
V systému Android, teorie je poskytována srovnatelná vizualizační nástroje, ale v praxi píšete XML souboryObsahující výkresu instrukce, že v některých Luck vede ke správné zobrazení aplikace na všech různých formátů obrazovek zařízení se systémem Android. Apple se pohybuje stejným způsobem, a jejich auto Layout jasně naostřený pro budoucí rozšíření variant obrazovek na zařízeních se systémem iOS.
Ve stejné době, Android dává vývojářům sad ikonZatímco vývojáři iOS jsou nuceni se obrátit na Služby třetích stranNebo nakreslit vlastní ikony.
V tomto kole vítěz zvolit náročnější, ale dám přednost iOS ze dvou důvodů. Za prvé, je to ještě mnohem jednodušší - stačí 3 velikost obrazovky (včetně iPadu) a formát s poměrem stran 2. Android rozmanitost v tomto ohledu dodává složitost. Druhým bodem je odvolání z prodlení vizuálních prvků (pop-up menu, zprávy, a tak dále). V systému iOS to všechno vypadá mnohem atraktivnější.
Zde bije iOS.
jazyk
Android aplikace jsou napsány v jazyce Java, iOS - na Objective-C. Existují však výjimky, jako je The XamarinAle ve většině případů takové rozdělení je platné.
Naučil jsem se psát v Javě, a na první pohled nijak zvlášť přemýšlel o Objective-C, a to především díky své objemnosti.
Řetězec jako jsou:
Řetězec s2 = s1.replace ( "abc", "xyz");
Zatáčky k němu:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Ale v procesu objevit jazyk se mi opravdu líbil. Je to lepší a čistší než Java.
V tomto případě, i tam jsou výhody Java. Například jednoduchý pasti a stopové chyby. V posledních několika letech, Android byl další velmi významná výhoda, pokud jde o sběr odpadu, který je, automatické čištění paměti od zbytečných předmětů, ale nyní iOS ví totéž, a je vlastně výhoda k ničemu. Vzhledem k tomu, že poslední vítězství přechází do iOS zde.
Zde bije iOS.
API
V Android a iOS mají obrovskou knihovnu software k dispozici pro vývojáře, a obecně řečeno, jsou velmi podobné: API pro Provoz funkce telefonu a komunikace, rozhraní API pro přístup k síti, arzenálu diváků, včetně mocné WebView - prakticky klon plné browser.
Většina práce se provádí s regulátory a obecně iOS ViewController je ekvivalent pro Android aktivity.
Které opravdu nemají Android, protože se jedná o plně analogový základních údajů rámec. Na celý systém je čistší a lepší design. Například jen porovnat titodva třída v iOS, které vykonávají většinu práce v žádosti, přičemž titotřiekvivalentní třídy v Android. Na konci jsem se raději na práci s iOS CollectionViewControllerNež s operačním systémem Android ListAdapter.
Dalším důležitým metrický: počet řádků kódu. Moje verze aplikace pro obě platformy jsou prakticky totožné v vlastností a funkcí, ale v systému iOS pro jejich provádění Trvalo mi 1596 řádků kódu, včetně hlavičkových souborů a vytvořit systém Android verze se stejnými funkcemi požadovanými 2109 řádků. Rozdíl je 32%.
Zde bije iOS.
Internet
V současné době drtivá většina aplikací jsou další návody na internetu, spíše než samostatné programy. To je velmi důležitý bod, a to by mělo být posuzovány odděleně. V arzenálu obou systémů má řadu nástrojů a API pro provádění spolupráce se sítí. Také obě platformy realizovat prakticky plnohodnotné prohlížeče, který může být zabudován do aplikace, jak se vám líbí a ať jste kdekoli.
Přípojky musí běžet na pozadí a nenarušuje samotné aplikace. Implementovat multithreading v Android používá AsyncTask. Funguje to velmi dobře a umožňuje snadnou určitZda je uživatel na webu v tomto okamžiku. iOS rovněž nabízí podobné funkce, ale jsou prováděny na relativně nízké úrovni a neodpovídají potřebám developerů.
Nicméně, existuje mnoho knihoven třetích stran, open source, a dělají život mnohem jednodušší. Použil jsem AFNetworking, a funguje to stejně dobře, jako to je odkazoval se na reklamu.
Zde bije výchozí Android a iOS pomocí knihoven třetích stran.
sdílení
Jak snadno sdílet některé z konkrétní aplikace v Facebook, Twitter, Evernote a dalších služeb? Zdá se, že to bude první kolo, ve kterém Android vyhraje 100% knockout: má silný systém interakce mezi aplikacemi zvaných záměry, a obecně, Android je mnohem více loajální k žádosti a předávání údajů mezi aplikace.
Obecně platí, že Apple již dohnal výrazně konkurenta v sharinga příležitostí. Nemůžete vzít mé slovo, zkontrolujte kód funkce „Share příběh“ v Scanvine na robot a iOS. Jediným důvodem, proč iOS kód více - přítomnost v něm pružnějšího sledování Google Analytics, nikoli v Androidu.
Potom nakreslete.
roztříštění
Pak Nepotřebuji říkat mnoho. Nicméně, Google se snaží o využití Zajímavý strategie defragmentaceTak, že v krátké době položka bude znovu přezkoumána.
Zde bije iOS.
zveřejnění přihlášky
Publikování aplikací pro Android je velmi jednoduchá. Nástroj v Eclipse umožňuje rychle vytvářet aplikace, a ve vašich rukou již máte soubor APK. Odeslat ji na e-mail, odesílat on-line, nebo stáhnout z Google Play, takže je k dispozici v celé (téměř) na světě, jen jednu hodinu. Pak se stává možné sledovat statistiky instalací a nouzově hlásí až na určitý řádek kódu, díky němuž se žádost zhroutí. Pokud je to nutné, můžete aktualizovat na zavedení okamžitě.
Zveřejnění v App Store - je to noční můra. Můj přítel doporučuje vyčlenit na vývoj kalendáře alespoň jeden den na válku s certifikáty a distribučních profilů. Bez ohledu na to, kolikrát jste to udělal předtím, a jak mnohem jednodušší se snaží, aby se proces dalšího verzi Xcode - budete i nadále mnoho problémů. testování aplikací se stává ještě větším problémem, pokud nepoužijete TestFlight. Přidejte k tomu iTunes Connect, která nemá jít do jakékoliv srovnání s Play konzole Google Developer Console.
Zde bije Android, bezpodmínečně.
vítěz
Stává iOS, navíc s určitou rezervou. Máme výhody Android, ale obecně psát dobré aplikace pro iOS je stále mnohem jednodušší, než v Android. Přidejte k tomu skutečnost, že uživatelé iOS více než solventnost, a dostanete odpověď na otázku, která platforma by měla být prioritou pro uvedení do provozu. Pravděpodobně bude mezera sníží po vydání Android Studio, což umožňuje vyřešit některé problémy... ale ne všechny.
Mimochodem, můj hlavní telefon - Nexus 4, a já jsem velmi potěšen.
(via)