Android vs iOS: welk platform het beste is voor ontwikkelaars
Makradar Van Technologie / / December 19, 2019
Android vs iOS. Eeuwige thema voor online gevechten, die reeds fatsoenlijk alle podnadoest heeft. Haast je niet om de tekst van het artikel passeren en onmiddellijk overgaan tot de uitstorting van zijn enige juiste advies in de commentaren. Vandaag zullen we weer praten over welk systeem beter is, maar op een andere manier.
Ontwikkelaars - zij die een belangrijk onderdeel van elk platform, dat wil zeggen toepassingen. Het is de kwaliteit van de ontwikkeltools, biedt het een platform hangt af van het uiteindelijke resultaat. Ja, onder welke systeem is beter te schrijven? Beantwoord deze vraag een ervaren applicatie ontwikkelaar, die moest worden verlicht in de App Store en Google Play.
De keuze van het platform - een fundamenteel probleem voor een nieuw project. Android of iOS? Gezien de recente nieuws dat Android met succes heeft gevangen 80% van de markt, de keuze wordt nog moeilijker. Het maakt niet uit wat voor managers en andere niet al te goed geïnformeerd met de technische aspecten van de problematiek mensen denken over het. Een ander ding - de ontwikkelaars.
Wat is hun mening? Het voordeel van deze of gene platform is direct afhankelijk van het vermogen om hun leven beter te maken.
En met "ze" bedoel ik "onze". In aanvulling op de activiteiten van de auteur op TechCrunch, ik ben het ontwikkelen in HappyFunCorp. Bovendien is nog niet zo lang geleden heb ik een duet opensorsnyh applicaties door middel van haar project-pet. Het zijn deze applicaties die ik gebruik voor de vergelijking.
Voor de goede orde: ik had eerder een paar Android en iOS applicaties te schrijven, zowel voor persoonlijk gebruik en voor het werk. In het bijzonder, schreef ik Mobile client voor uw nieuws aggregator ScanvineDie verzamelt ongewoon populaire verhalen van social media. Broncode van mijn aanvraag is te vinden op GitHub (Android | iOS), En de applicaties zelf zijn verkrijgbaar in Google Play en App Store.
Nou, laten we de strijd beginnen.
woensdag
U kunt nog steeds code schrijven in een teksteditor, en veel aan het doen zijn tot nu toe, maar in termen van prestaties is nuttig om de IDE (Integrated Development Environment - IDE).
In het geval van Apple, hebben we Xcode, en werken in deze omgeving - plezier. Het is flexibel, snel, krachtig en in staat om te helpen, zonder al te opdringerig. En ze is steeds beter, ondanks de moeilijke en paranoïde maatregelen van Apple om volledige controle over de iOS toepassingen en apparaten te behouden. De debugger loopt soepel, en simulatie - snel en responsief.
Hoe zit het met Android? Oh, Android. Op dit moment is de feitelijke ontwikkeling omgeving onder het is de Eclipse, een handvol Android aangepaste plug-ins, en het obsceen slecht. Langzaam, onhandig, onlogisch, vaak eerlijk gezegd onbegrijpelijk, slecht ontworpen, te complex - een echte puinhoop. De debugger is zo lastig dat de meeste van de tijd die ik doorbreng in knutselen met hout, terwijl met Xcode in mijn bezit een echt instrument-hunter bugs. Vergeet niet over de emulator Android, die voor het eerst een paar minuten duurt om te downloaden, en dan kon hij geen verbinding met de ADB.
Om eerlijk te zijn om te zeggen dat Google is zich bewust van dit probleem en ze werken aan een nieuwe Android Studio IDE:
Op dit moment, Android Studio is beschikbaar als een vroege preview. Bepaalde functies zijn niet ingesteld, of niet uitgevoerd, wat kan leiden tot fouten. Indien het gebruik van het onvoltooide product oorzaak is van uw ongemak, dan kunt u deze downloaden en blijven de ADT Bundle (Eclipse plugin met ADT) te gebruiken.
Leuk om te zien dat ze werken aan het probleem, maar nog steeds verrassend - na 4 en een half jaar na de aankoop van mijn eerste Android-achtige puinhoop is nog steeds de grens van perfectie, die in staat zijn om een ontwikkelomgeving te bereiken was Android.
Hier slaat iOS, onvoorwaardelijk.
configureren
Onder het fineer van Xcode en Objective-C zijn verborgen verschrikkingen van Lovecraft uit het tijdperk van de jaren zeventig programmeren. Grapje, ik maak een grapje... maar toch. Macro's en header-bestanden, projecten, de doelstellingen, de opzet en montage configuratie en angstaanjagend, angstaanjagende lijst van vergadering parameters. en nog veel meer ongelooflijke ontdekkingen in de stijl van "Oh, uw code van derden niet de ARC te ondersteunen? Voeg gewoon de vlag -fno-objc-arc ». Gewoon? Nee!
In Android heb je een manifest bestand en Eclipse zijn meestal volledig herbouwt de app elke keer dat u een bestand te houden. Ik wil graag meer duidelijkheid wanneer u, bijvoorbeeld, een foutmelding krijgt u te wijten aan het feit dat de juiste wijze van de regel te configureren, maar het is een klein defect. Android applicatie configuratie is eenvoudig en elegant.
Hier slaat Android.
interface design
Het lijkt erop dat Apple is zeker als overwinnaar tevoorschijn. Met hun designer kunt u eenvoudig en snel te bouwen een eenvoudig en mooi uitziende interface. Het probleem is dat hoe langer ik samengewerkt met de ontwerper, hoe minder ik vond het leuk. Dit is een ander tijdstip waarop u de configuratie complexiteit te openen - tool is ideaal voor het maken van eenvoudige dingen, maar met de ontwikkeling van Application eenvoudige dingen opeens ingewikkeld, en ik echt niet als deze multiscreen storyboards, die Apple toegevoegd over een jaar geleden.
Op Android, wordt de theorie verschaft vergelijkbare visualisatietools, maar in de praktijk je schrijft XML-bestandenMet instructies tekenen dat op een bepaald geluk leidt tot een correcte weergave van de applicatie op alle verschillende formaten schermen van Android-apparaten. Apple beweegt op dezelfde manier, en hun auto Layout duidelijk aangescherpt voor toekomstige uitbreiding variaties schermen op iOS-apparaten.
Op hetzelfde moment, Android biedt ontwikkelaars pictogrammensetsOverwegende dat iOS-ontwikkelaars worden gedwongen zich te wenden tot diensten van derdenOf trek uw eigen pictogrammen.
In deze ronde de winnaar moeilijker te kiezen, maar ik zal iOS de voorkeur geven om twee redenen. Ten eerste is het nog veel makkelijker - slechts 3 schermgrootte (met inbegrip van de iPad) en 2-indeling aspect ratio. Android diversiteit in dit opzicht voegt complexiteit. Het tweede punt is de aantrekkingskracht van in gebreke blijven van visuele elementen (pop-up menu's, berichten, enzovoort). In iOS het ziet er allemaal veel aantrekkelijker.
Hier slaat iOS.
taal
Android-applicaties zijn geschreven in Java, iOS - op Objective-C. Er zijn uitzonderingen, zoals de XamarinMaar in de meeste gevallen een dergelijke verdeling geldig is.
Ik heb geleerd om te schrijven in Java, en in eerste instantie niet bijzonder nagedacht over Objective-C, grotendeels te danken aan de grote omvang.
Een string, zoals:
String s2 = s1.replace ( "abc", "xyz");
Wendt zich tot hem:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withstring: @ "xyz"];
Maar in het proces te ontdekken de taal die ik echt leuk vond. Hij is beter en schoner dan Java.
In dit geval is, zijn er pros Java. Bijvoorbeeld, een eenvoudige val en sporen fouten. De laatste paar jaar, Android is een ander zeer belangrijk voordeel in termen van afvalinzameling, dat wil zeggen, automatische zuivering van het geheugen van onnodige voorwerpen, maar nu iOS kent hetzelfde, en is eigenlijk een voordeel op niets uitlopen. Gezien het feit dat de laatste overwinning gaat naar iOS hier.
Hier slaat iOS.
API
In Android en iOS hebben een enorme bibliotheek van software beschikbaar voor ontwikkelaars, en in het algemeen, ze lijken veel op elkaar: API voor bediening van de telefoon functies en communicatie, de API voor de toegang tot het netwerk, het arsenaal van de kijkers, met inbegrip van krachtige WebView - bijna een kloon van de volledige browser.
Het grootste deel van het werk wordt gedaan met de controllers, en de algemene iOS ViewController is het equivalent van Android Activity.
Die echt niet Android, want het is een volledige analoge Core Data kader. Over het geheel genomen is het systeem schoner en beter ontworpen. Bijvoorbeeld, gewoon vergelijken dezetwee klasse in iOS, die het grootste deel van het werk in de applicatie uit te voeren, met dezedrieequivalent klassen in Android. Op het einde, ik geef de voorkeur om te werken met iOS CollectionViewControllerDan met Android ListAdapter.
Een andere belangrijke maatstaf: het aantal regels code. Mijn versie van de applicatie voor beide platforms zijn vrijwel identiek in functies en functies, maar in iOS te implementeren Het nam mijn 1596 regels code, met inbegrip van header-bestanden, en de Android-versie met dezelfde functies nodig te creëren 2109 rijen. Het verschil is 32%.
Hier slaat iOS.
internet
Vandaag de dag, de overgrote meerderheid van de toepassingen zijn meer gidsen op het internet, in plaats van stand-alone programma. Dit is een heel belangrijk punt, en het moet apart worden beschouwd. In het arsenaal van beide systemen hebben een aantal hulpmiddelen en API voor de uitvoering van de samenwerking met het netwerk. Ook beide platformen uit te voeren nagenoeg volwaardige browser, die kan worden ingebouwd in de app als je wilt en waar je ook gaat.
De aansluitingen moet worden uitgevoerd op de achtergrond en heeft geen invloed op de toepassing zelf. Implementeren multithreading gebruikt in Android AsyncTask. Het werkt erg goed en maakt een eenvoudige bepalenOf de gebruiker op het web op dit moment. iOS biedt ook vergelijkbare mogelijkheden, maar ze worden uitgevoerd op een relatief laag niveau en niet voldoen aan de behoeften van ontwikkelaars.
Echter, er zijn vele bibliotheken van derden, open source, en ze maken het leven een stuk eenvoudiger. Ik gebruikte AFNetworking, en het werkt net zo goed als het om in de advertentie wordt genoemd.
Hier slaat de standaard Android en iOS met behulp van derden bibliotheken.
sharing
Hoe gemakkelijk Deelt u de enige van de specifieke toepassing in Facebook, Twitter, Evernote, en andere diensten? Het lijkt erop dat dit de eerste ronde waarin Android 100% knock-out zal winnen zal zijn: het heeft een krachtig systeem van interactie tussen applicaties genaamd Intents, en in het algemeen, Android is veel meer loyaal aan het verzoek en de overdracht van gegevens tussen toepassingen.
In het algemeen is Apple ingehaald aanzienlijk concurrent in Sharinga kansen. Je kunt mijn woord, controleer dan de functie code "Share verhaal" in Scanvine op Android en iOS. De enige reden waarom iOS code meer - de aanwezigheid daarin van een meer flexibele volgen van Google Analytics, in plaats van in de Android.
Teken dan.
fragmentatie
Dan hoef ik niet veel te zeggen. Echter, Google probeert gebruik interessante defragmentatie strategieDus dat in een korte tijd het item zal opnieuw worden onderzocht.
Hier slaat iOS.
publicatie van de aanvraag
Publicatie van Android applicaties is uiterst eenvoudig. Tool in Eclipse kunt u de applicatie snel te bouwen, en in je handen een apk-bestand al hebben. Legt dit voor aan een e-mail, post online, of downloaden via Google Play, waardoor het beschikbaar zijn over (bijna) de wereld in slechts een uur. Dan wordt het mogelijk om installaties statistieken controleren en crash-rapporten tot een bepaalde regel code, waardoor de applicatie crasht. Indien nodig, kunt u een update direct uit te rollen.
Publicatie in de App Store - het is een nachtmerrie. Mijn vriend adviseert toe te wijzen aan de ontwikkeling van het kalenderjaar ten minste een dag op de oorlog met certificaten en distributie van profielen. Het maakt niet uit hoe vaak je het al eerder hebt gedaan, en hoeveel makkelijker het is het proberen om het proces van de volgende versie van Xcode maken - u zult nog steeds veel problemen. Application testen wordt nog een probleem, tenzij je testvlucht gebruiken. Voeg daarbij de iTunes Connect, die niet verder gaat elke vergelijking met de Google Play Developer Console.
Hier slaat Android, onvoorwaardelijk.
winnaar
Het wordt IOS bovendien een zekere marge. We hebben de voordelen van Android, maar in het algemeen om te schrijven een goede applicatie voor iOS is nog veel gemakkelijker dan bij Android. Voeg daarbij het feit dat iOS-gebruikers meer dan de solvabiliteit, en u een antwoord op de vraag van welk platform een prioriteit voor een startup zou moeten krijgen. Waarschijnlijk zal het verschil worden verminderd na de release van Android Studio, waardoor een aantal problemen op te lossen... maar niet allemaal.
By the way, mijn belangrijkste telefoon - word Nexus 4, en ik ben zeer tevreden.
(via)