Android vs iOS: Welche Plattform ist am besten für Entwickler
Makradar Technologie / / December 19, 2019
Android vs iOS. Ewiges Thema für Online-Schlachten, die bereits anständig all podnadoest hat. Hetzen Sie nicht den Text des Artikels zu übergeben und sofort bewegt auf die Ausgießung seiner einzig richtigen Meinung in den Kommentaren. Heute werden wir wieder darüber reden, welches System besser ist, aber in einer anderen Art und Weise.
Entwickler - diejenigen, die einen wesentlichen Bestandteil jeder Plattform zu erstellen, dh Anwendungen. Es ist die Qualität der Entwicklungs-Tools, es bietet eine Plattform, auf das Endergebnis abhängt. So unter System, was ist besser zu schreiben? Beantworten Sie diese Frage einen erfahrenen Anwendungsentwickler, der im App Store beleuchtet werden mußte, und in Google Play.
Die Wahl der Plattform - ein grundsätzliches Problem für jedes neues Projekt. Android oder iOS? Angesichts der jüngsten Nachrichten, dass Android hat erfolgreich 80% des Marktes erfasst, wird die Wahl noch schwieriger. Es spielt keine Rolle, was Manager und andere nicht zu kenntnisreich mit den technischen Aspekten der Frage der Leute darüber denken. Eine andere Sache - die Entwickler.
Was ist ihre Meinung? Der Vorteil dieser oder jener Plattform ist direkt abhängig von ihrer Fähigkeit, ihr Leben besser zu machen.
Und mit „sie“ meine ich „unsere.“ Zusätzlich zu den Aktivitäten des Autors bei TechCrunch, entwickle ich in HappyFunCorp. Außerdem sind nicht so lange her, da habe ich ein Duett opensorsnyh Anwendungen über sein Projekt-Haustier. Es sind diese Anwendungen, die ich für den Vergleich verwenden.
Für das Protokoll: Ich hatte vorher ein paar Android und iOS-Anwendungen zu schreiben, sowohl für den persönlichen Gebrauch und für die Arbeit. Insbesondere habe ich Mobile-Client für Ihre News-Aggregator ScanvineDas sammelt ungewöhnlich populäre Geschichten von Social Media. Der Quellcode meiner Anwendung kann auf Github zu finden (androide | iOS) Und die Anwendungen selbst sind in google Play und App Store.
Nun, lassen Sie die Schlacht beginnen.
Mittwoch
Sie können immer noch Code in einem Text-Editor schreiben, und viele tun so weit, aber in Bezug auf Leistung ist sinnvoller, den IDE (Integrated Development Environment zu verwenden - IDE).
Im Fall von Apple haben wir Xcode, und die Arbeit in diesem Umfeld - Vergnügen. Es ist flexibel, schnell, leistungsfähig und in der Lage zu helfen, ohne dabei zu aufdringlich zu sein. Und sie wird immer besser, trotz der schwierigen und paranoid von Apple ergriffenen Maßnahmen die volle Kontrolle über die iOS-Anwendungen zu behalten und Geräte. Der Debugger läuft reibungslos und Simulation - schnell und reaktionsschnell.
Was ist Android? Oh, Android. Im Moment der eigentlichen Entwicklungsumgebung unter ihm ist das Eclipse, eine Handvoll Android maßgeschneiderte Plug-Ins, und es obszön schlecht. Langsam, unbeholfen, unlogisch, oft offen unverständlich, schlecht konzipiert, zu komplex - ein echtes Chaos. Sein Debugger ist so ungünstig, dass die meisten der Zeit, die ich mit Protokollen in Bastelei verbringen, während sie mit Xcode in meinem Besitz eines echter Werkzeug-Jäger Bugs. Vergessen Sie nicht über den Emulator Android, die zuerst ein paar Minuten zum Download dauert, und dann konnte er sich nicht an die ADB verbinden.
Um fair zu sein zu sagen, dass Google sich dieses Problems bewusst ist und sie arbeiten an einem neuen Android Studio IDE:
Derzeit ist Android Studio als eine frühe Vorschau verfügbar. Einige Funktionen können nicht einrichten oder nicht umgesetzt werden, die Fehler verursachen könnten. Wenn die Verwendung des unfertigen Produkts Ihre Beschwerden verursacht, dann können Sie herunterladen und auch weiterhin die ADT Bundle (Eclipse-Plugin mit ADT) verwenden.
Schön zu sehen, dass sie auf dem Problem arbeiten, aber immer noch überraschend - nach 4 und einem halben Jahr nach dem Kauf meines erste Android-like Chaos ist immer noch die Grenze der Perfektion, die eine Entwicklungsumgebung konnte erreichen Android.
Hier schlägt iOS, bedingungslos.
Konfigurieren
Unter dem Furnier von Xcode und Objective-C sind Schrecken von Lovecraft aus der Ära der siebziger Jahre Programmierung versteckt. Nur ein Scherz, ich bin kidding... aber immer noch. Makros und Header-Dateien, Projekte, Ziele, Schema und Montagekonfiguration und erschreckend, erschreckend Liste der Montageparameter. und mehr unglaubliche Entdeckungen im Stil von „Oh, Ihr Code von Drittanbietern nicht unterstützt ARC? Einfach die Flagge hinzufügen -fno-objc-Bogen ». Gerade? Nein!
In Android haben Sie eine Manifest-Datei, und Eclipse sind in der Regel neu erstellt vollständig die App jedes Mal, wenn Sie eine Datei zu halten. Ich würde mehr Klarheit, wie wenn man zum Beispiel einer Fehlermeldung angezeigt, aufgrund der Tatsache, dass die Regel richtig konfigurieren, aber es ist ein kleiner Fehler. Android-Anwendung konfigurieren ist einfach und elegant.
Hier schlägt Android.
Interface-Design
Es scheint, dass Apple auf jeden Fall als Sieger hervorgehen wird. Mit ihrem Designer können Sie einfach und schnell eine einfache und gut aussehende Oberfläche erstellen kann. Das Problem ist, dass, je länger ich mit dem Designer arbeitete, desto weniger mochte ich es. Dies ist ein weiteres Mal, wenn Sie die Konfigurationskomplexität öffnen - Werkzeug ideal für die Erstellung von einfachen Dingen ist, aber mit der Entwicklung von Anwendung einfache Dinge werden plötzlich kompliziert, und ich wirklich nicht, wie diese Multi-Screen Storyboards, die von Apple über hinzugefügt vor einem Jahr.
Auf Android wird die Theorie vergleichbare Visualisierungs-Tool zur Verfügung gestellt, aber in der Praxis Sie schreiben XML-DateienEnthält, zeichnen Anweisungen, die zu einem bestimmten Glück führt zu einer korrekten Darstellung der Anwendung auf alle Vielzahl von Formaten Bildschirmen von Android-Geräten. Apple bewegt sich auf die gleiche Weise, und ihre auto-Layout deutlich geschärft für Bildschirme Expansion Variationen Zukunft auf iOS-Geräten.
Zur gleichen Zeit gibt Android-Entwickler icon-SetsWährend iOS-Entwickler zu drehen gezwungen FremdleistungenOder Ihre eigenen Icons zeichnen.
In dieser Runde zu wählen, der Gewinner schwieriger, aber ich gebe iOS bevorzugt aus zwei Gründen. Erstens ist es noch viel einfacher - nur 3 Bildschirmgröße (einschließlich dem iPad) und 2-Format Seitenverhältnis. Android Vielfalt in dieser Hinsicht erhöht die Komplexität. Der zweite Punkt ist die Attraktivität des Standard von visuellen Elementen (Pop-up-Menü, Nachrichten und so weiter). In iOS es sieht alles viel attraktiver.
Hier schlägt iOS.
Sprache
auf Objective-C - Android-Anwendungen in Java, iOS geschrieben. Es gibt Ausnahmen wie die XamarinAber in den meisten Fällen eine solche Aufteilung ist gültig.
Ich habe gelernt zu schreiben in Java, und zunächst nicht besonders Gedanken über Objective-C, vor allem wegen seiner Sperrigkeit.
Eine Zeichenfolge wie:
String s2 = s1.replace ( "abc", "XYZ");
Turns ihm in:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"];
Aber in dem Prozess entdecken Sie die Sprache, die ich wirklich möchte. Er ist besser und sauberer als Java.
In diesem Fall ist, gibt es Vor-Java. Zum Beispiel kann eine einfache Falle und Spurenfehler. In den letzten Jahren hat Android ein weiterer sehr wesentlicher Vorteil in Bezug auf die Abfallsammlung gewesen, das heißt, automatische Reinigung von unnötigen Objekten der Erinnerung, aber jetzt iOS kennt das gleiche, und ist eigentlich ein Vorteil sich nicht zunichte machen. In Anbetracht der Tatsache, dass der letzte Sieg auf iOS geht hier.
Hier schlägt iOS.
API
In Android und iOS eine riesige Bibliothek von Software zur Verfügung, um Entwicklern haben, und allgemein gesprochen, sind sie ziemlich ähnlich: API für Betrieb von Telefonfunktionen und Kommunikation, die API für den Zugriff auf das Netzwerk, das Arsenal der Zuschauer, darunter leistungsstarken WebView - praktisch ein Klon der vollen Browser.
Der größte Teil der Arbeit befasst sich mit den Controllern getan und allgemeine iOS Viewcontroller ist das Äquivalent von Android Aktivität.
Welche nicht über Android wirklich, weil es sich um eine vollständige analoge Core Data-Framework ist. Im Großen und Ganzen ist das System saubere und besser entwickelt. Man vergleiche beispielsweise nur diesezwei Klasse in iOS, die die meiste Arbeit in der Anwendung durchführen, mit diesedreiäquivalent Klassen in Android. Am Ende, ziehe ich viel Arbeit mit iOS CollectionViewControllerAls mit Android ListAdapter.
Eine weitere wichtige Kennzahl: die Anzahl der Codezeilen. Meine Version der Anwendung für beiden Plattformen sind nahezu identisch in Features und Funktionen, aber in iOS sie umzusetzen Es dauerte meine 1596 Zeilen Code, einschließlich Header-Dateien und die Android-Version mit den gleichen Funktionen erstellen erforderlich 2109 Zeilen. Die Differenz beträgt 32%.
Hier schlägt iOS.
Internet
Heute ist die überwiegende Mehrheit der Anwendungen sind Führungen auf das Internet, anstatt eigenständige Programme. Dies ist ein sehr wichtiger Punkt, und es sollte separat betrachtet werden. In dem Arsenal der beiden Systeme haben eine Reihe von Tools und API für die Durchführung der Zusammenarbeit mit dem Netzwerk. Auch implementieren beide Plattformen praktisch vollwertiger Browser, der in die App eingebaut werden können, wie Sie möchten und wohin Sie gehen.
Die Anschlüsse müssen im Hintergrund laufen und stört nicht die Anwendung selbst. Für die Umsetzung in Android Multithreading verwendet AsyncTask. Es funktioniert sehr gut und ermöglicht eine einfache bestimmenOb der Benutzer im Web im Moment. iOS bietet auch ähnliche Fähigkeiten, aber sie sind auf einem relativ niedrigen Niveau umgesetzt und nicht die Bedürfnisse von Entwicklern erfüllen.
Allerdings gibt es viele Bibliotheken von Drittanbietern, Open Source, und sie machen das Leben viel einfacher. Früher habe ich AFNetworking, und es funktioniert genauso gut, wie es in der Anzeige genannt wird.
Hier schlägt die Standard-Android und iOS Bibliotheken von Drittanbietern verwenden.
Sharing
Wie einfach Sie teilen die jeder der jeweiligen Anwendung in Facebook, Twitter, Evernote und andere Dienste? Es scheint, dass dies die erste Runde, in der Android 100% Knockout gewinnen: es ein leistungsfähiges System der Interaktion hat zwischen Anwendungen Intents und allgemein genannt, Android ist viel mehr treu auf die Anfrage und die Übertragung von Daten zwischen Anwendungen.
Im Allgemeinen hat Apple deutlich Wettbewerber in sharinga Gelegenheiten gefangen. Sie können mein Wort nicht nehmen, überprüfen Sie den Funktionscode „Anteil Geschichte“ in Scanvine auf androide und iOS. Der einzige Grund, warum iOS Code mehr - die Präsenz in ihm eine flexibleren Tracking von Google Analytics, statt im Android.
Dann ziehen.
Zersplitterung
Dann brauche ich nicht viel zu sagen. Allerdings versucht Google zu verwenden interessante DefragmentierungsstrategieSo dass in kurzer Zeit wird das Element erneut geprüft werden.
Hier schlägt iOS.
Veröffentlichung der Anmeldung
Veröffentlichung von Android-Anwendungen ist äußerst einfach. Tool in Eclipse können Sie die Anwendung schnell bauen, und in den Händen haben bereits eine apk-Datei. Senden sie eine E-Mail, Post online, oder zum Download auf Google Play, es verfügbar über (fast) der Welt in nur einer Stunde. Dann wird es möglich, Installationen Statistiken und Absturzberichte bis zu einer bestimmten Codezeile zu überwachen, durch die die Anwendung abstürzt. Bei Bedarf können Sie aktualisieren sofort ausrollen.
Die Veröffentlichung im App Store - es ist ein Alptraum. Mein Freund rät zur Entwicklung des Kalenders mindestens einen Tag auf den Krieg mit Zertifikaten und Verteilungsprofile zuzuordnen. Egal, wie oft man es vorher getan hat, und wie viel einfacher es versucht, den Prozess der nächsten Version von Xcode zu machen - Sie werden immer noch viele Probleme. Anwendungstests wird noch ein Problem, es sei denn, Sie verwenden Testflug. Hinzu kommt die iTunes Connect, die nicht mit der Google Play Developer Console keinen Vergleich geht.
Hier schlägt Android, bedingungslos.
Gewinner
Es wird iOS, zudem mit einem gewissen Spielraum. Wir haben die Vorteile von Android, aber im Allgemeinen eine gute Anwendung für iOS schreiben immer noch viel einfacher als unter Android ist. Hinzu kommt die Tatsache, dass iOS Nutzer mehr als Solvenz, und Sie eine Antwort auf die Frage, welche Plattform eine Priorität für einen Startup sein sollte. Wahrscheinlich wird die Lücke nach der Veröffentlichung von Android Studio reduziert werden, wodurch einige Probleme zu lösen, so dass... aber nicht alle.
By the way, mein Haupttelefon - Nexus 4, und ich bin sehr zufrieden.
(über)