Android vs iOS. Eviga tema för onlinestrider, som redan anständigt all podnadoest. Ha inte bråttom att passera texten i artikeln och omedelbart gå vidare till utgjutande av hans enda korrekta åsikten i kommentarerna. Idag kommer vi att prata igen om vilket system som är bättre, men på ett annat sätt.
Utvecklare - de som skapar en viktig del av alla plattformar, dvs applikationer. Det är kvaliteten på utvecklingsverktyg, det ger en plattform beror på slutresultatet. Så under vilka systemet är bättre att skriva? Svara på denna fråga en erfaren applikationsutvecklare, som var tvungen att tändas i App Store, och i Google Play.
Valet av plattform - ett grundläggande problem för alla nya projekt. Android eller iOS? Med tanke på den senaste nyheten att Android framgångsrikt har fångat 80% av marknaden, blir valet ännu svårare. Det spelar ingen roll vad chefer och andra inte alltför kunnig med de tekniska aspekterna av emissions folk tycker om det. En annan sak - utvecklarna.
Vad är deras åsikt? Fördelen med den ena eller den plattform är direkt beroende av dess förmåga att göra deras liv bättre.
Och "de" menar jag "vår". Förutom författarens aktiviteter på Techcrunch, jag utvecklas i HappyFunCorp. Dessutom är inte så länge sedan, skapade jag en duett opensorsnyh applikationer genom sitt projekt-pet. Det är dessa program jag använder för jämförelse.
För att undvika missförstånd: jag tidigare var tvungen att skriva några Android och iOS applikationer, både för personligt bruk och för arbete. Framför allt skrev jag Mobile-klienten för nyhetssamlare ScanvineSom samlar ovanligt populära berättelser från sociala medier. Källkod min ansökan kan hittas på Github (Android | iOS), Och de program själva finns i Google Play och app Store.
Nåväl, låt striden börja.
onsdag
Du kan fortfarande skriva kod i en textredigerare, och många gör så här långt, men när det gäller prestanda är mer lämpligt att använda IDE (Integrated Development Environment - IDE).
I fallet med Apple, har vi Xcode, och arbeta i denna miljö - nöje. Det är flexibelt, snabb, kraftfull och kunna hjälpa, utan att vara alltför påträngande. Och hon blir bättre, trots de svåra och paranoida åtgärder som Apple att behålla full kontroll över iOS applikationer och enheter. Debugger löper smidigt och simulering - snabb och lyhörd.
Vad sägs om Android? Åh, Android. Just nu, den faktiska utvecklingen miljön under det är Eclipse, en handfull Android anpassade plug-ins, och det obscent dåligt. Långsam, klumpig, ologiskt, ofta sagt obegripliga, dåligt utformade, för komplicerad - en riktig röra. Dess debugger är så obekvämt att det mesta jag tillbringar i mixtra med stockar, medan med Xcode i min ägo en riktig verktygs jägare buggar. Glöm inte emulatorn Android, som först tar några minuter att ladda ner, och då han inte kunde ansluta till ADB.
För att vara rättvist att säga att Google är medvetna om detta problem och de arbetar på en ny Android Studio IDE:
För närvarande är Android Studio tillgänglig som en tidig förhandsvisning. Vissa funktioner kan inte ställa upp eller inte genomförs, som kan orsaka misstag. Om användningen av oavslutade produkten orsakar din obehag, då kan du ladda ner och fortsätta att använda Bundle ADT (Eclipse plugin med ADT).
Trevligt att se att de arbetar på problemet, men ändå överraskande - efter fyra och ett halvt år efter köpet av min första Android-liknande röran är fortfarande gränsen för perfektion, som kunde uppnå en utvecklingsmiljö Android.
Här slår iOS, villkorslöst.
Konfigurera
Under faner av Xcode och Objective-C är dolda fasor Lovecraft från eran av sjuttiotalet programmering. Bara skojar, jag skojar... men ändå. Makron och huvudfiler, projekt, mål, system och monterings konfiguration, och skrämmande, skrämmande lista över monteringsparametrar. och mer otro upptäckter i stil med "Oh, tredjepartskoden inte stöder ARC? Helt enkelt lägga till flaggan -fno-objc båge». Just? Nej!
I Android du har en manifestfil, och Eclipse är oftast helt ombyggnader appen varje gång du håller en fil. Jag skulle vilja större tydlighet när du till exempel får du ett felmeddelande på grund av det faktum att korrekt konfigurera regeln, men det är ett mindre fel. Konfigurera Android är enkel och elegant.
Här slår Android.
gränssnittsdesign
Det verkar som om Apple är definitivt segrande. Med deras designer kan du enkelt och snabbt bygga en enkel och snygg gränssnitt. Problemet är att ju längre jag arbetat med designer, ju mindre jag gillade det. Detta är en annan tid när du öppnar konfigurations komplexitet - verktyg är idealisk för att skapa enkla saker, men med utvecklingen av Application enkla saker plötsligt bli komplicerat, och jag verkligen inte gillar dessa flerskärmsStoryBoards, som Apple lagt om för ett år sedan.
På Android är teorin som jämförbara visualiseringsverktyg, men i praktiken du skriver XML-filerInnehåller ritning instruktioner att vid en viss tur leder till en korrekt visning av programmet på alla olika format skärmar Android-enheter. Apple går på samma sätt, och deras Auto Layout klart skärpt för framtida expansion variationer skärmar på iOS-enheter.
Samtidigt, Android ger utvecklare ikonuppsättningarMedan iOS utvecklare tvingas vända sig till tredjepartstjänsterEller dra dina egna ikoner.
I denna runda vinnaren att välja svårare, men jag kommer att ge iOS preferens för två skäl. För det första är det fortfarande mycket enklare - bara tre skärmstorlek (inklusive iPad) och 2-format bildförhållande. Android mångfalden i detta avseende tillägger komplexitet. Den andra punkten är överklagandet av standard av visuella element (pop-up menyer, meddelanden och så vidare). I iOS allt ser mycket mer attraktiva.
Här slår iOS.
språk
Android-program är skrivna i Java, Ios - på Objective-C. Det finns undantag såsom XamarinMen i de flesta fall en sådan uppdelning är giltigt.
Jag lärde mig att skriva i Java, och först inte särskilt tänkt på Objective-C, till stor del på grund av sin skrymmande.
En sträng som:
String s2 = s1.replace ( "abc", "xyz");
Vänder sig till honom i:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Men i processen att upptäcka språket jag gillade. Han är bättre och renare än Java.
I detta fall finns det fördelar Java. Till exempel en enkel fälla och spår fel. De senaste åren har Android varit en annan mycket viktig fördel när det gäller avfallsinsamling, det vill säga automatisk rening av minne från onödiga objekt, men nu iOS vet samma sak, och är faktiskt en fördel kommit på skam. Med tanke på att den sista segern går till iOS här.
Här slår iOS.
API
I Android och iOS har ett stort bibliotek med programvara för utvecklare, och generellt sett de är ganska lika: API för drift av telefonens funktioner och kommunikationer, API för åtkomst till nätverket, den arsenal av tittarna, bland annat kraftfulla WebView - nästan en klon av full webbläsare.
Det mesta av arbetet sker med styrenheter och allmänna iOS ViewController motsvarar Android aktivitet.
Som verkligen inte har Android, eftersom det är en hel kärna Data ramverk analog. På det hela taget är systemet renare och bättre utformade. Till exempel, bara jämföra dessatvå klass i iOS, som utför det mesta av arbetet i ansökan, med dessatreekvivalent klasser i Android. I slutändan föredrar jag mycket att arbeta med iOS CollectionViewControllerÄn med Android ListAdapter.
En annan viktig mått: antalet rader kod. Min version av ansökan om båda plattformarna är praktiskt taget identiska i funktioner, men i iOS att genomföra dem Det tog min 1596 rader kod, inklusive header-filer och för att skapa Android-versionen med samma funktioner som krävs 2109 rader. Skillnaden är 32%.
Här slår iOS.
Internet
Idag, den stora majoriteten av applikationer finns fler guider till Internet, snarare än fristående program. Detta är en mycket viktig punkt, och det bör behandlas separat. I den arsenal av båda systemen har ett antal verktyg och API för att genomföra samarbetet med nätverket. Också båda plattformarna genomför nästan fullfjädrad webbläsare som kan byggas in i appen som du vill och vart du än går.
Anslutningarna måste köras i bakgrunden och inte stör själva ansökan. För att genomföra multitrådning i Android används AsyncTask. Det fungerar mycket bra och gör det lätt bestämmaOavsett om användaren är på webben just nu. iOS erbjuder också liknande kapacitet, men de genomförs på en relativt låg nivå och inte tillgodose behoven hos utvecklarna.
Men det finns många tredjepartsbibliotek, öppen källkod, och de gör livet mycket enklare. Jag använde AFNetworking, och det fungerar lika bra som det hänvisas till i annonsen.
Här slår standard Android och iOS använder tredje part bibliotek.
delning
Hur lätt du dela någon av de särskilda program i Facebook, Twitter, Evernote och andra tjänster? Det verkar som om detta kommer att bli den första omgången där Android vinner 100% knockout: den har ett kraftfullt system för interaktion mellan applikationer kallas Intents, och i allmänhet, är Android mycket mer lojala mot begäran och för överföring av data mellan tillämpningar.
I allmänhet har Apple fångat upp betydligt konkurrent i sharinga möjligheter. Du kan inte ta mitt ord, kontrollera funktionskoden "Dela story" i Scanvine på Android och iOS. Den enda anledningen till att iOS-kod mer - närvaron i det av en mer flexibel spårning av Google Analytics, snarare än i Android.
Dra sedan.
fragmentering
Då jag behöver inte säga så mycket. Dock är Google försöker använda intressant defragmentering strategiSå att på kort tid objektet kommer att vara omprövade.
Här slår iOS.
offentliggörandet av ansökan
Publicering av Android-program är mycket enkel. Tool i Eclipse gör att du snabbt bygga ansökan och i dina händer redan har en apk-fil. Skicka in den till ett e-postmeddelande, lägga på nätet, eller ladda ner på Google Play, vilket gör den tillgänglig över (nästan) hela världen på bara en timme. Då blir det möjligt att övervaka installationer statistik och kraschrapporter upp till en viss kodrad, varför programmet kraschar. Om det behövs kan du uppdatera att rulla ut direkt.
Offentliggörande i App Store - det är en mardröm. Min vän rekommenderar att fördela till utvecklingen av kalendern åtminstone en dag på kriget med certifikat och profiler distributions. Oavsett hur många gånger du har gjort det förut, och hur mycket lättare det är att försöka göra processen för nästa version av Xcode - du kommer fortfarande att finnas många problem. Applikationstestning blir ännu mer av ett problem, om du inte använder TestFlight. Lägg till detta iTunes Connect, som inte gå till någon jämförelse med Google Play Developer Console.
Här slår Android, villkorslöst.
vinnare
Det blir iOS, dessutom med en viss marginal. Vi har fördelarna med Android, men i allmänhet för att skriva en bra ansökan för iOS är fortfarande mycket enklare än i Android. Lägg till detta det faktum att iOS användarna mer än solvens, och du får ett svar på frågan om vilken plattform bör vara en prioritet för en start. Förmodligen kommer gapet att minska efter utgivningen av Android Studio, vilket gör det möjligt att lösa vissa problem... men inte alla.
Förresten, min huvudsakliga telefon - är Nexus 4 och jag mycket nöjd.
(via)