Android vs iOS: hvilken platform er bedst for udviklere
Makradar Af Teknologi / / December 19, 2019
Android vs iOS. Eternal tema for online kampe, som allerede har anstændigt alle podnadoest. Må ikke haste til at videregive teksten af artiklen og straks gå videre til udgydelsen af hans eneste rigtige mening i kommentarerne. I dag vil vi tale igen om hvilket system der er bedre, men på en anden måde.
Udviklere - dem, der skaber en vigtig del af enhver platform, dvs. applikationer. Det er kvaliteten af udviklingsværktøjer, det giver en platform, afhænger af den endelige resultat. Så under hvilke systemet er bedre at skrive? Besvare dette spørgsmål en erfaren applikation udvikler, der måtte være oplyst i App Store, og i Google Play.
Valget af platform - et grundlæggende problem for enhver ny projekt. Android eller iOS? I betragtning af den seneste nyhed, at Android held har erobret 80% af markedet, valget bliver endnu vanskeligere. Det er ligegyldigt, hvad ledere og andre ikke alt vidende med de tekniske aspekter af spørgsmålet folk tænker over det. En anden ting - udviklerne.
Hvad er deres mening? Fordelen ved denne eller hin platform er direkte afhængig af dens evne til at gøre deres liv bedre.
Og ved "de" mener jeg "vores". Ud over forfatterens aktiviteter på TechCrunch, jeg udvikler i HappyFunCorp. Desuden er det ikke så længe siden, jeg har oprettet en duet opensorsnyh applikationer gennem sit projekt-kæledyr. Det er disse applikationer jeg bruger til sammenligning.
For the record: Jeg har tidligere haft til at skrive et par Android- og iOS-applikationer, både til eget brug og til arbejde. Især skrev jeg Mobil-klient til din nyhedssamler ScanvineDer indsamler usædvanligt populære historier fra sociale medier. Kildekoden af min ansøgning kan findes på Github (Android | iOS), Og de programmer selv er tilgængelige i google Play og App Store.
Nå, lad slaget begynde.
onsdag
Du kan stadig skrive kode i en teksteditor, og mange gør indtil videre, men i form af ydeevne er mere nyttigt at bruge IDE (Integrated Development Environment - IDE).
I tilfældet med Apple, har vi Xcode, og arbejde i dette miljø - fornøjelse. Den er fleksibel, hurtig, kraftfuld og i stand til at hjælpe, uden at være alt for påtrængende. Og hun bliver bedre, på trods af de vanskelige og paranoide foranstaltninger af Apple truffet for at bevare fuld kontrol over de iOS-applikationer, og enheder. Fejlsøgeren kører problemfrit, og simulering - hurtig og lydhør.
Hvad med Android? Åh, Android. På nuværende tidspunkt, er det faktiske udviklingsmiljø under det er Eclipse, en håndfuld Android tilpassede plug-ins, og det forsætlig dårlig. Langsom, klodset, ulogisk, ofte ærligt uforståelige, dårligt designet, for kompleks - en rigtig rod. Dens debugger er så ubelejligt at det meste af den tid, jeg tilbringer i fifle med logfiler, mens med Xcode i min besiddelse en reel værktøj-jæger bugs. Glem ikke om emulatoren Android, som først tager et par minutter at downloade, og så kunne han ikke oprette forbindelse til ADB.
For at være fair at sige, at Google er klar over dette problem, og de arbejder på en ny Android Studio IDE:
I øjeblikket er Android Studio er tilgængelig som en tidlig preview. Nogle funktioner er muligvis ikke sat op, eller der ikke er gennemført, som kan forårsage fejl. Hvis brugen af det ufærdige produkt der forårsager din ubehag, så kan du downloade og fortsætte med at bruge ADT Bundle (Eclipse plugin med ADT).
Rart at se, at de arbejder på problemet, men stadig overraskende - efter 4 og et halvt år efter købet af min første Android-lignende rodet er stadig grænsen for perfektion, som var i stand til at opnå et udviklingsmiljø Android.
Her slår iOS, betingelsesløst.
Konfiguration
Under finer af Xcode og Objective-C er skjulte rædsler Lovecraft fra den æra af halvfjerdserne programmering. Just kidding, jeg kidding... men stadig. Makroer og header-filer, projekter, mål, ordning og montage konfiguration, og skræmmende, skræmmende liste af montage parametre. og mere utrolige opdagelser i stil med "Åh, din tredjepartskode understøtter ikke ARC? Du skal blot tilføje flaget -fno-objc-bue ». Bare? Nej!
I Android har du en manifestfil, og Eclipse er som regel helt genopbygger den app, hver gang du holder en fil. Jeg vil gerne større klarhed, når du for eksempel vises en fejlmeddelelse på grund af det faktum, at konfigurere den regel, men det er en mindre defekt. Konfiguration af Android applikation er enkel og elegant.
Her slår Android.
interface design
Det ser ud til, at Apple er afgjort komme sejrrigt. Med deres designer kan du nemt og hurtigt at opbygge en enkel og pæn brugerflade. Problemet er, at jo længere jeg arbejdede med designeren, jo mindre jeg kunne lide det. Dette er en anden gang, når du åbner konfigurationen kompleksitet - værktøj er ideel til at skabe simple ting, men med udviklingen af Ansøgning enkle ting pludselig bliver kompliceret, og jeg ikke rigtig lide disse multiskærmvisninger Storyboards, som Apple tilføjet omkring for et år siden.
På Android, er teorien forudsat sammenlignelige visualiseringsværktøjer, men i praksis du skriver XML-filerIndeholder tegning instruktioner at på et vist held fører til en korrekt visning af programmet på alle forskellige formater skærme af Android-enheder. Apple bevæger den samme måde, og deres auto layout klart skærpet til fremtidig ekspansion variationer skærme på iOS-enheder.
Samtidig, Android giver udviklere ikonsætUd fra følgende betragtninger iOS udviklere er tvunget til at henvende sig til tredjepartstjenesterEller tegne dine egne ikoner.
I denne runde vinderen at vælge sværere, men jeg vil give iOS præference af to grunde. For det første, er det stadig meget lettere - bare 3 skærmstørrelse (herunder iPad) og 2-format billedformat. Android mangfoldighed i den forbindelse tilføjer kompleksitet. Det andet punkt er appellen af misligholdelse af visuelle elementer (pop-up-menuer, beskeder, og så videre). I iOS det hele ser meget mere attraktivt.
Her slår iOS.
sprog
Android-applikationer er skrevet i Java, iOS - på Objective-C. Der er undtagelser ligesom XamarinMen i de fleste tilfælde en sådan opdeling er gyldig.
Jeg lærte at skrive i Java, og i første omgang ikke specielt tænkt på Objective-C, hovedsagelig på grund af dens bulkiness.
En streng som:
String s2 = s1.replace ( "abc", "xyz");
Vender sig til ham i:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Men i processen opdager det sprog jeg virkelig godt lide. Han er bedre og renere end Java.
I dette tilfælde er der også fordele Java. For eksempel en simpel fælde og spor fejl. De sidste par år har Android været en anden meget væsentlig fordel med hensyn til indsamling af affald, der er, automatisk rensning af hukommelse fra unødvendige genstande, men nu iOS kender det samme, og er faktisk en fordel blive til intet. I betragtning af, at den sidste sejr går til iOS her.
Her slår iOS.
API
I Android og iOS har et stort bibliotek af software til rådighed for udviklere, og generelt er de helt ens: API til drift af telefonens funktioner og kommunikation, API for adgang til nettet, det arsenal af seerne, herunder kraftfulde WebView - næsten en klon af den fulde browser.
Det meste af arbejdet udføres med controllerne, og generelt iOS viewcontroller svarer til Android aktivitet.
Hvilket virkelig ikke har Android, fordi det er en fuld analog Core Data rammer. I det hele taget, at systemet er renere og bedre designet. For eksempel, bare sammenligne disseto klasse i iOS, der udfører det meste af arbejdet i ansøgningen, med dissetretilsvarende klasser i Android. I sidste ende, jeg meget hellere arbejde med iOS CollectionViewControllerEnd med Android ListAdapter.
En anden vigtig parameter: Antallet af linjer kode. Min version af programmet for begge platforme er næsten identiske i egenskaber og funktioner, men i iOS til at gennemføre dem Det tog min 1596 linjer kode, herunder header-filer, og for at skabe den Android-version med de samme funktioner, som kræves 2109 rækker. Forskellen er 32%.
Her slår iOS.
Internet
I dag er langt de fleste applikationer er flere guider til internettet, snarere end enkeltstående programmer. Dette er et meget vigtigt punkt, og det skal behandles særskilt. I det arsenal af begge systemer har en række værktøjer og API for gennemførelsen af samarbejdet med netværket. Også begge platforme gennemføre næsten fuldgyldigt browser, der kan bygges ind i den app, som du gerne og hvor du går.
Tilslutningerne skal køre i baggrunden og ikke forstyrrer selve programmet. At gennemføre multithreading i Android brugt AsyncTask. Det fungerer meget godt og giver let bestemmeOm brugeren er på nettet i øjeblikket. iOS tilbyder også lignende evner, men de gennemføres på et relativt lavt niveau, og ikke opfylde behovene hos udviklerne.
Men der er mange tredjeparts biblioteker, open source, og de gør livet meget lettere. Jeg brugte AFNetworking, og det virker lige så godt som det er nævnt i annoncen.
Her slår standard Android og iOS ved hjælp tredjeparts biblioteker.
Deling
Hvor let du deler noget af den særlige anvendelse i Facebook, Twitter, Evernote, og andre tjenester? Det lader til, at dette vil være den første runde, hvor Android vil vinde 100% knockout: den har et kraftfuldt system for interaktion mellem programmer kaldet Intents, og i almindelighed, Android er langt mere loyal over for anmodning om og fremsendelse af data mellem applikationer.
Generelt har Apple fanget markant konkurrent i sharinga muligheder. Du kan ikke tage mit ord, skal du kontrollere funktionen kode "Del historie" i Scanvine på Android og iOS. Den eneste grund til, at iOS kode mere - tilstedeværelsen i det af en mere fleksibel sporing af Google Analytics, snarere end i Android.
Så tegne.
fragmentering
Så jeg behøver ikke at sige meget. Dog er Google forsøger at bruge interessant defragmentering strategiSå det i en kort tid elementet vil være fornyet overvejelse.
Her slår iOS.
offentliggørelse af ansøgningen
Offentliggørelse af Android-applikationer er meget enkel. Værktøj i Eclipse gør det muligt hurtigt at opbygge ansøgningen, og i dine hænder allerede har en APK-fil. Send det til en e-mail, lagt på nettet, eller download på Google Play, hvilket gør den tilgængelig på tværs (næsten) hele verden på blot en time. Så bliver det muligt at overvåge installationer statistik og crash-rapporter op til en bestemt linje kode, skyldes som ansøgningen går ned. Hvis det er nødvendigt, kan du opdatere til udrulning samme.
Offentliggørelse i App Store - det er et mareridt. Min ven tilråder at afsætte til udviklingen af kalenderen i det mindste en dag på krigen med certifikater og distributionsomkostninger profiler. Ligegyldigt hvor mange gange du har gjort det før, og hvor meget lettere det er at forsøge at gøre processen med den næste version af Xcode - vil du stadig være mange problemer. Ansøgning test bliver endnu mere af et problem, medmindre du bruger TestFlight. Hertil iTunes Connect, som ikke går til nogen sammenligning med Google Play Developer Console.
Her slår Android, betingelsesløst.
vinder
Det bliver iOS øvrigt med en vis margin. Vi har fordelene af Android, men generelt til at skrive en god ansøgning til iOS er stadig meget lettere end under Android. Hertil kommer det faktum, at iOS-brugere mere end solvens, og du får et svar på spørgsmålet om, hvilken platform bør være en prioritet for en start. Sandsynligvis vil hullet blive reduceret efter udgivelsen af Android Studio, hvilket gør det muligt at løse nogle problemer... men ikke alle.
Af den måde, min vigtigste telefon - am Nexus 4, og jeg er meget glad.
(via)