Android vs iOS: ποια πλατφόρμα είναι η καλύτερη για προγραμματιστές
Makradar Της τεχνολογίας / / December 19, 2019
Android vs iOS. Αιώνιο θέμα για online μάχες, το οποίο έχει ήδη αξιοπρεπώς όλους podnadoest. Μη βιαστείτε να περάσετε το κείμενο του άρθρου και αμέσως να προχωρήσουμε στο ξέσπασμα της μόνη σωστή γνώμη του στα σχόλια. Σήμερα θα μιλήσουμε και πάλι για το οποίο το σύστημα είναι καλύτερο, αλλά με διαφορετικό τρόπο.
Προγραμματιστές - εκείνοι που δημιουργούν ένα βασικό μέρος της κάθε πλατφόρμας, δηλαδή εφαρμογές. Είναι η ποιότητα των αναπτυξιακών εργαλείων, παρέχει μια πλατφόρμα εξαρτάται από το τελικό αποτέλεσμα. Έτσι, στο πλαίσιο αυτό σύστημα είναι καλύτερο να γράφουν; Απαντήσουμε στο ερώτημα αυτό έναν έμπειρο προγραμματιστή εφαρμογής, οι οποίοι έπρεπε να αναμμένα στο App Store και στο Google Play.
Η επιλογή της πλατφόρμας - ένα θεμελιώδες πρόβλημα για κάθε νέο έργο. Android ή iOS; Λαμβάνοντας υπόψη την πρόσφατη είδηση ότι το Android έχει συλλάβει επιτυχώς το 80% της αγοράς, η επιλογή γίνεται ακόμα πιο δύσκολη. Δεν έχει σημασία τι διευθυντές και άλλα όχι πολύ γνώστες με τις τεχνικές πτυχές του θέματος άνθρωποι σκέφτονται γι 'αυτό. Ένα άλλο πράγμα - οι προγραμματιστές.
Ποια είναι η γνώμη τους; Το πλεονέκτημα αυτό ή εκείνο της πλατφόρμας εξαρτάται άμεσα από την ικανότητά της να κάνουν τη ζωή τους καλύτερη.
Και από το «αυτοί» εννοώ «μας». Εκτός από τις δραστηριότητες του συγγραφέα στο TechCrunch, είμαι ανάπτυξη στην HappyFunCorp. Επιπλέον, όχι πολύ καιρό πριν, έχω δημιουργήσει ένα ντουέτο opensorsnyh εφαρμογές μέσω του προγράμματος-κατοικίδιο ζώο του. Είναι αυτές οι εφαρμογές που χρησιμοποιούν για σύγκριση.
Για την ιστορία: Έχω ήδη έπρεπε να γράψω μερικές εφαρμογές Android και iOS, τόσο για προσωπική χρήση και για την εργασία. Ειδικότερα, έγραψα Mobile πελάτη για συλλέκτης ειδήσεων σας ScanvineΠου συλλέγει ασυνήθιστα δημοφιλείς ιστορίες από τα social media. Ο πηγαίος κώδικας της εφαρμογής μου μπορεί να βρεθεί στο Github (Android | iOS), Και οι ίδιοι οι εφαρμογές είναι διαθέσιμες σε Το Google Play και App Store.
Λοιπόν, ας αρχίσει η μάχη.
Τετάρτη
Μπορείτε ακόμα να γράψετε κώδικα σε ένα πρόγραμμα επεξεργασίας κειμένου, και πολλοί κάνουν μέχρι τώρα, αλλά από την άποψη της απόδοσης είναι πιο χρήσιμο να χρησιμοποιήσετε το IDE (Ολοκληρωμένο Περιβάλλον Ανάπτυξης - IDE).
Στην περίπτωση της Apple, έχουμε Xcode, και να εργαστούν σε αυτό το περιβάλλον - απόλαυση. Είναι ευέλικτο, γρήγορο, ισχυρό και μπορεί να βοηθήσει, χωρίς να είναι υπερβολικά παρεμβατική. Και αυτή είναι όλο και καλύτερη, παρά τις δύσκολες και παρανοϊκή μέτρα που έχουν ληφθεί από την Apple να διατηρήσει τον πλήρη έλεγχο των εφαρμογών iOS και συσκευών. Το πρόγραμμα εντοπισμού σφαλμάτων λειτουργεί ομαλά, και η προσομοίωση - γρήγορη και ευαίσθητη.
Τι γίνεται με το Android; Ω, Android. Προς το παρόν, το πραγματικό περιβάλλον ανάπτυξης στο πλαίσιο αυτό είναι η έκλειψη, μια χούφτα του Android προσαρμοσμένη plug-ins, και αισχρά κακό. Αργή, αδέξια, παράλογο, συχνά ειλικρινά ακατανόητο, άσχημα σχεδιασμένο, πολύ περίπλοκη - ένα πραγματικό χάος. εντοπισμού σφαλμάτων του είναι τόσο ενοχλητικό ότι το μεγαλύτερο μέρος του χρόνου που ξοδεύουν σε χάνουμε με κορμούς, ενώ με το Xcode στην κατοχή μου ένα πραγματικό σφάλματα εργαλείο-κυνηγός. Μην ξεχάστε για το εξομοιωτή Android, η οποία κάνει τα πρώτα λίγα λεπτά για να κατεβάσετε, και στη συνέχεια δεν μπορούσε να συνδεθεί με την ΑΤΑ.
Για να είναι δίκαιο να πούμε ότι η Google έχει επίγνωση αυτού του προβλήματος και να εργάζονται σε ένα νέο Android Studio IDE:
Επί του παρόντος, το Android Studio είναι διαθέσιμο ως ένα πρώιμο προεπισκόπηση. Ορισμένες λειτουργίες μπορεί να μην έχει συσταθεί, ή δεν εφαρμόζονται, το οποίο θα μπορούσε να προκαλέσει λάθη. Εάν η χρήση του ημιτελούς προϊόντος προκαλεί δυσφορία σας, τότε μπορείτε να κατεβάσετε και να συνεχίσουν να χρησιμοποιούν το ADT Πακέτο (Eclipse plugin με ADT).
Χαίρομαι που βλέπω ότι εργάζονται για το πρόβλημα, αλλά εξακολουθεί να προκαλεί έκπληξη - μετά από 4 έτη και έξι μήνες μετά την αγορά του μου πρώτο Android-όπως χάος εξακολουθεί να είναι το όριο της τελειότητας, η οποία ήταν σε θέση να επιτύχει ένα περιβάλλον ανάπτυξης Android.
Εδώ χτυπάει iOS, άνευ όρων.
Διαμόρφωση
Σύμφωνα με τον καπλαμά του Xcode και Objective-C είναι κρυμμένα φρίκη του Λάβκραφτ από την εποχή της δεκαετίας του εβδομήντα προγραμματισμού. Αστειεύομαι, είμαι αστειεύεστε... αλλά ακόμα. Οι μακροεντολές, και header αρχεία, τα σχέδια, οι στόχοι, πρόγραμμα και το συγκρότημα διαμόρφωσης και τρομακτικό, τρομακτική λίστα των παραμέτρων συναρμολόγησης. και πιο απίστευτες ανακαλύψεις στο στυλ του «Ω, κωδικό τρίτου μέρους σας δεν υποστηρίζει το ARC; Απλά προσθέστε τη σημαία -fno-objc τόξου ». Ακριβώς; Όχι!
Σε Android έχετε ένα αρχείο δήλωσης, και το Eclipse είναι συνήθως αναδομεί πλήρως η εφαρμογή κάθε φορά που θα κρατήσει ένα αρχείο. Θα ήθελα μεγαλύτερη σαφήνεια όταν, για παράδειγμα, θα λάβετε ένα μήνυμα σφάλματος που οφείλεται στο γεγονός ότι ρυθμίσετε σωστά τον κανόνα, αλλά είναι ένα μικρό ελάττωμα. Ρύθμιση Android εφαρμογή είναι απλή και κομψή.
Εδώ χτυπάει Android.
σχεδιασμό διεπαφής
Φαίνεται ότι η Apple είναι σίγουρα βγει νικητής. Με σχεδιαστή τους, μπορείτε εύκολα και γρήγορα να οικοδομήσουμε ένα απλό και ωραίο αναζητούν interface. Το πρόβλημα είναι ότι όσο περισσότερο μπορώ συνεργάστηκε με τον σχεδιαστή, τόσο λιγότερο μου άρεσε. Αυτό είναι μια άλλη φορά, όταν ανοίγετε την πολυπλοκότητα διαμόρφωση - εργαλείο είναι ιδανικό για τη δημιουργία απλά πράγματα, αλλά με την ανάπτυξη της απλή εφαρμογή πράγματα γίνονται ξαφνικά περίπλοκη, και εγώ πραγματικά δεν μου αρέσει αυτές πολλαπλών Storyboards, το οποίο η Apple πρόσθεσε σχετικά πριν από ένα χρόνο.
Στο Android, η θεωρία παρέχονται συγκρίσιμα εργαλεία απεικόνισης, αλλά στην πράξη θα γράψετε αρχεία XMLΠεριέχουν σχέδιο οδηγίες ότι σε μια συγκεκριμένη οδηγεί τύχη σε μια σωστή απεικόνιση της εφαρμογής σε όλες τις διάφορες μορφές οθόνες των συσκευών Android. Η Apple κινείται με τον ίδιο τρόπο, και τους auto Διάταξη σαφώς αιχμηρό για τις διακυμάνσεις μελλοντική επέκταση οθόνες σε συσκευές iOS.
Την ίδια στιγμή, το Android δίνει προγραμματιστές σύνολα εικονιδίωνΕνώ οι iOS προγραμματιστές είναι αναγκασμένοι να στραφούν σε υπηρεσιών από τρίτουςΉ να σχεδιάσετε τις δικές σας εικόνες.
Σε αυτό το γύρο το νικητή να επιλέξει πιο δύσκολο, αλλά θα δώσω το iOS προτίμηση για δύο λόγους. Πρώτον, εξακολουθεί να είναι πολύ πιο εύκολο - μόλις 3 μέγεθος της οθόνης (συμπεριλαμβανομένου του iPad) και αναλογία διαστάσεων 2 μορφή. Android ποικιλομορφία από την άποψη αυτή, προσθέτει πολυπλοκότητα. Το δεύτερο σημείο είναι η έκκληση της αθέτησης των οπτικών στοιχείων (pop-up μενού, μηνύματα, και ούτω καθεξής). Σε iOS όλα φαίνεται πολύ πιο ελκυστική.
Εδώ χτυπάει iOS.
γλώσσα
Οι Android εφαρμογές γραμμένο σε Java, iOS - σε Objective-C. Υπάρχουν εξαιρέσεις, όπως η XamarinΑλλά στις περισσότερες περιπτώσεις, μια τέτοια διαίρεση είναι έγκυρη.
Έμαθα να γράψει σε Java, και στην πρώτη δεν είναι ιδιαίτερα σκεφτεί Objective-C, σε μεγάλο βαθμό λόγω της ογκώδες της.
Μια σειρά όπως:
String s2 = s1.replace ( "abc", "xyz")?
Στροφές σε αυτόν σε:
NSString * s2 = [s1 stringByReplacingOccurrencesOfString: @ "abc" withString: @ "xyz"]?
Αλλά στη διαδικασία να ανακαλύψετε τη γλώσσα μου άρεσε πολύ. Είναι καλύτερο και καθαρότερο από ό, τι Java.
Σε αυτή την περίπτωση, επίσης, υπάρχουν πλεονεκτήματα της Java. Για παράδειγμα, ένα απλό παγίδα και ίχνος λάθη. Τα τελευταία χρόνια, το Android ήταν ένα άλλο πολύ σημαντικό πλεονέκτημα όσον αφορά την αποκομιδή απορριμμάτων, που είναι, αυτόματο καθαρισμό της μνήμης από περιττά αντικείμενα, αλλά τώρα iOS ξέρει το ίδιο πράγμα, και είναι πραγματικά ένα πλεονέκτημα πάψει να ισχύει. Λαμβάνοντας υπόψη το γεγονός ότι η τελευταία νίκη πηγαίνει στο iOS εδώ.
Εδώ χτυπάει iOS.
API
Σε Android και iOS έχουν τεράστια βιβλιοθήκη λογισμικού που διατίθενται για την ανάπτυξη και σε γενικές γραμμές, είναι αρκετά παρόμοια: API για λειτουργία των λειτουργιών του τηλεφώνου και επικοινωνιών, το API για την πρόσβαση στο δίκτυο, το οπλοστάσιο των τηλεθεατών, συμπεριλαμβανομένων των ισχυρών WebView - ουσιαστικά ένας κλώνος του πλήρους πρόγραμμα περιήγησης.
Το μεγαλύτερο μέρος της εργασίας γίνεται με τους ελεγκτές και γενικά iOS ViewController είναι το ισοδύναμο του Android δραστηριότητας.
Ποια πραγματικά δεν έχουν Android, διότι είναι ένα πλήρες αναλογικό πλαίσιο βασικών δεδομένων. Σε γενικές γραμμές, το σύστημα είναι καθαρότερο και καλύτερα σχεδιασμένη. Για παράδειγμα, μόλις συγκρίνετε αυτοίδυο τάξη στο iOS, το οποίο εκτελεί το μεγαλύτερο μέρος του έργου στην αίτηση, με αυτοίτρίαισοδύναμος τάξεις στο Android. Στο τέλος, θα προτιμούσα να συνεργαστεί με iOS CollectionViewControllerΑπό ό, τι με Android ListAdapter.
Μια άλλη σημαντική μέτρηση: ο αριθμός των γραμμών κώδικα. Μου έκδοση της εφαρμογής για τις δύο πλατφόρμες είναι σχεδόν ταυτόσημα με τα χαρακτηριστικά και τις λειτουργίες, αλλά σε iOS για την εφαρμογή τους Πήρε 1596 γραμμές μου κώδικα, συμπεριλαμβανομένων των αρχείων επικεφαλίδας, και να δημιουργήσει το Android έκδοση με τις ίδιες λειτουργίες που απαιτούνται 2109 σειρές. Η διαφορά είναι 32%.
Εδώ χτυπάει iOS.
Internet
Σήμερα, η συντριπτική πλειοψηφία των εφαρμογών είναι πιο οδηγούς στο διαδίκτυο, και όχι αυτόνομα προγράμματα. Αυτό είναι ένα πολύ σημαντικό σημείο, και θα πρέπει να εξετάζεται χωριστά. Στο οπλοστάσιο των δύο συστήματα έχουν μια σειρά από εργαλεία και API για την υλοποίηση της συνεργασίας με το Δίκτυο. Επίσης, και οι δύο πλατφόρμες εφαρμόσουν σχεδόν ολοκληρωμένο πρόγραμμα περιήγησης, το οποίο μπορεί να ενσωματωμένο στο app, όπως σας αρέσει και όπου κι αν πάτε.
Οι συνδέσεις πρέπει να εκτελούνται στο παρασκήνιο και δεν έχει καμία σχέση με την ίδια την εφαρμογή. Για την εφαρμογή multithreading στο Android που χρησιμοποιείται AsyncTask. Λειτουργεί πολύ καλά και επιτρέπει την εύκολη καθορίσειΑν ο χρήστης βρίσκεται στο διαδίκτυο αυτή τη στιγμή. iOS προσφέρει επίσης παρόμοιες δυνατότητες, αλλά εφαρμόζονται σε σχετικά χαμηλό επίπεδο και δεν ανταποκρίνονται στις ανάγκες των προγραμματιστών.
Ωστόσο, υπάρχουν πολλές βιβλιοθήκες τρίτων κατασκευαστών, ανοικτού κώδικα, και να κάνουν τη ζωή πολύ πιο εύκολη. Θα χρησιμοποιηθεί AFNetworking, και λειτουργεί εξίσου καλά όπως αναφέρεται στη διαφήμιση.
Εδώ χτυπάει η προεπιλεγμένη Android και iOS χρησιμοποιώντας βιβλιοθήκες τρίτων κατασκευαστών.
Κοινή χρήση
Πόσο εύκολο να μοιραστείτε το οποιοδήποτε από τη συγκεκριμένη εφαρμογή στο Facebook, Twitter, Evernote, και άλλες υπηρεσίες; Φαίνεται ότι αυτό θα είναι το πρώτο γύρο στο οποίο Android θα κερδίσει 100% νοκ-άουτ: έχει ένα ισχυρό σύστημα αλληλεπίδρασης μεταξύ των εφαρμογών που ονομάζεται Προθέσεις, και σε γενικές γραμμές, το Android είναι πολύ πιο πιστοί στο αίτημα και η μετάδοση των δεδομένων μεταξύ εφαρμογών.
Σε γενικές γραμμές, η Apple έχει καταφέρει να συμβαδίσει σημαντικά ανταγωνιστή σε ευκαιρίες sharinga. Δεν μπορείτε να πάρετε το λόγο μου, ελέγξτε τον κωδικό λειτουργίας «ιστορία Share» σε Scanvine για Android και iOS. Ο μόνος λόγος για τον οποίο κωδικό iOS περισσότερο - η παρουσία σε αυτό μιας πιο ευέλικτης παρακολούθησης του Google Analytics, όχι στο Android.
Στη συνέχεια κλήρωση.
θρυμματισμός
Τότε δεν χρειάζεται να πω πολλά. Ωστόσο, η Google προσπαθεί με τη χρήση ενδιαφέρουσα στρατηγική ανασυγκρότησηΈτσι ώστε σε σύντομο χρονικό διάστημα το στοιχείο θα είναι εκ νέου εξέταση.
Εδώ χτυπάει iOS.
δημοσίευση της αίτησης
Δημοσίευση των εφαρμογών του Android είναι εξαιρετικά απλή. Εργαλείο Eclipse σας επιτρέπει να οικοδομήσουμε γρήγορα την εφαρμογή, και στα χέρια σας έχετε ήδη ένα αρχείο apk. Υποβολή αυτό σε ένα μήνυμα ηλεκτρονικού ταχυδρομείου, να δημοσιεύσετε στο διαδίκτυο, ή να κατεβάσετε από το Google Play, καθιστώντας διαθέσιμη σε (σχεδόν) τον κόσμο μέσα σε μόλις μία ώρα. Στη συνέχεια, γίνεται δυνατή η παρακολούθηση στατιστικών στοιχείων εγκαταστάσεων και crash-εκθέσεις μέχρι μια συγκεκριμένη γραμμή κώδικα, εξαιτίας των οποίων η εφαρμογή κολλάει. Εάν είναι απαραίτητο, μπορείτε να ενημερώσετε για να κυλήσει έξω αμέσως.
Δημοσίευση στο App Store - είναι ένας εφιάλτης. Ο φίλος μου συμβουλεύει να διαθέσει για την ανάπτυξη του ημερολογιακού τουλάχιστον μία ημέρα σχετικά με τον πόλεμο με τα πιστοποιητικά και προφίλ διανομής. Δεν έχει σημασία πόσες φορές έχετε κάνει στο παρελθόν, και πόσο πιο εύκολο προσπαθεί να καταστήσει τη διαδικασία της επόμενης έκδοσης του Xcode - θα εξακολουθεί να είναι πολλά προβλήματα. δοκιμή εφαρμογών γίνεται ακόμη μεγαλύτερο πρόβλημα, εκτός και αν χρησιμοποιείτε TestFlight. Προσθέστε σε αυτό το iTunes Connect, η οποία δεν πηγαίνουν σε οποιοδήποτε σύγκριση με το Play Developer Console της Google.
Εδώ χτυπάει το Android, άνευ όρων.
νικητής
Γίνεται iOS, άλλωστε με ένα ορισμένο περιθώριο. Έχουμε τα πλεονεκτήματα του Android, αλλά σε γενικές γραμμές να γράψει μια καλή εφαρμογή για iOS εξακολουθεί να είναι πολύ πιο εύκολο από ό, τι στο πλαίσιο του Android. Προσθέστε σε αυτά το γεγονός ότι οι χρήστες iOS περισσότερο από τη φερεγγυότητα, και θα έχετε μια απάντηση στο ερώτημα του οποίου πλατφόρμα θα πρέπει να αποτελέσει προτεραιότητα για την εκκίνηση. Πιθανώς, η διαφορά θα μειωθεί μετά την κυκλοφορία του Android Studio, επιτρέποντας έτσι να λύσει κάποια προβλήματα... αλλά όχι όλα.
Με την ευκαιρία, το κύριο τηλέφωνό μου - Nexus 4, και είμαι πολύ ευχαριστημένος.
(μέσω)