Από όλα τα νέα χαρακτηριστικά iOS 8 παρουσιάζονται στο WWDC, το πιο σημαντικό, ίσως, είναι η επέκταση (επεκτασιμότητα). Θα πρέπει να έχουν μεγάλη επίδραση στην περαιτέρω ανάπτυξη του λειτουργικού συστήματος. Συχνά αυτό το χαρακτηριστικό περιγράφεται ως «η ικανότητα των εφαρμογών τρίτων για να αλληλεπιδρούν μεταξύ τους.» Αυτό, βέβαια, είναι πολύ υπερβολικές, δεδομένου ότι η αλληλεπίδραση δεν είναι η μόνη δυνατότητα παράτασης, και δεν μπορούν να επικοινωνούν απευθείας μεταξύ τους, για να είμαστε ακριβείς.
Έχουμε διαβάσει την τεκμηρίωση του έργου και βίντεο από το WWDC, να κατανοήσουν πώς λειτουργούν οι επεκτάσεις και πως η Apple έχει βρει μια συμβιβαστική λύση μεταξύ του ανοίγματος της ασφάλειας του συστήματος και των δεδομένων του χρήστη και θα ήθελα να μιλήσω γι 'αυτό σας.
Έτσι, αυτό που κάνει την επέκταση;
Ενεργοποίηση εφαρμογές τρίτων να έχουν πρόσβαση ο ένας τον άλλο, δεν είναι μόνο ένα πρόβλημα, το οποίο είναι να λύσει την επέκταση. Πλευρά του πληκτρολογίου? ολοκλήρωσης εφαρμογής με άλλα σύννεφο αποθήκευσης, εκτός από την iCloud? widgets στο Γνωστοποίηση Κέντρο - όλα αυτά επιβεβαιώνεται επίσης από τις επεκτάσεις.
Στην πραγματικότητα, δεν είναι όλα του iOS μπορεί να «ενισχυθεί» τρίτους προγραμματιστές. Για παράδειγμα, εάν θέλετε να αντικαταστήσετε την προεπιλεγμένη εφαρμογή ή να προσθέσετε ένα διακόπτη στην αίθουσα ελέγχου - δεν θα λειτουργήσει. Η Apple παρέχει δεν είναι τόσο σαφώς καθορισμένη «σημεία επέκτασης» (σημεία επέκταση), για να δείξει τους προγραμματιστές με οποιοδήποτε μέρος του λειτουργικού συστήματος που μπορεί να λειτουργήσει. Ένας κατάλογος αυτών των σημείων ως εξής:
- επέκταση Σήμερα (Σήμερα επεκτάσεις) ή widgets - χρησιμοποιούνται για να παρέχουν άμεση πληροφόρηση στο Γνωστοποίηση Κέντρο. Μπορείτε να τα θεωρούν ως απάντηση στα ζωντανά πλακίδια Windows Phone και Android widgets στην αρχική οθόνη.
- να ενισχύσει την ανταλλαγή (Share επεκτάσεις) - σας επιτρέπει να στείλετε φωτογραφίες, συνδέσμους ή άλλα αρχεία της εφαρμογής στις online υπηρεσίες. Όπως η ανάρτηση φωτογραφιών στο Pinterest ή αποστολή αρχείων στο Dropbox ή onedrive απευθείας από την εφαρμογή.
- κλιμάκωση (Επεκτάσεις Δράση) - χρησιμοποιείται για την «χειραγώγηση ή την προβολή περιεχομένου στο πλαίσιο μιας άλλης εφαρμογής.» Με άλλα λόγια, αυτό σημαίνει ότι μπορείτε να επεξεργαστείτε τη φωτογραφία, η οποία περιέχεται σε ένα έγγραφο κειμένου, ή, Για παράδειγμα, όπως φαίνεται στην παρουσίαση, χρήση κάτι σαν το Bing Translate για να μεταφράσει το κείμενο σε ένα παράθυρο Safari.
- Επεκτάσεις για επεξεργασία φωτογραφιών (Επεκτάσεις επεξεργασίας φωτογραφιών) - μπορούν να χρησιμοποιήσουν τις δυνατότητες επεξεργασία άλλων εφαρμογών κατά την προβολή εικόνων σε ρολό φωτογραφική μηχανή.
- διευρυμένη αποθήκευση (Αποθήκευση επεκτάσεις Provider) - επιτρέπει στις εφαρμογές να ανοίξετε έγγραφα από μια σειρά αποθήκευσης σύννεφο. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε για να αποθηκεύσετε τα έγγραφά σας Dropbox και η πρόσβαση απευθείας από το Office για το iPad ή σελίδες.
- Επεκτάσεις για πληκτρολόγια από τρίτους (Επεκτάσεις πληκτρολόγιο Προσαρμοσμένο) - αντικαταστήσει το πρότυπο πληκτρολόγιο στο iOS.
Οι αναφερθείσες επεκτάσεις είναι iOS, αλλά πολλοί από αυτούς (συμπεριλαμβανομένων widgets ανταλλάσσουν και επέκτασης αϊ.) Τρέξιμο στο OS X Yosemite, καθώς και σε iOS. εφαρμογών από τους προγραμματιστές App Store της Mac προσώπου παρόμοιους περιορισμούς sandbox και την εφαρμογή των επεκτάσεων λίγο απλοποιήσει τη ζωή τους. Αν και, κατά πάσα πιθανότητα, πολλοί προγραμματιστές να συνεχίσει να τους αποφύγει, αποφεύγοντας το Mac App Store καθόλου.
Αυτό το προκαταρκτικό κατάλογο των σημείων επέκτασης διαφέρει από τις προθέσεις του συστήματος (σύστημα Προθέσεις), που εργάζονται στο Android. Εφαρμογές για Android χρησιμοποιήστε τα φίλτρα για να κατανοήσουν το λειτουργικό σύστημα ποιες ενέργειες μπορούν να εκτελέσουν και λαβή. Για παράδειγμα, το Twitter και το Facebook μπορούν να δημοσιεύουν φωτογραφίες και συνδέσμους? Google Drive και το Dropbox να κατεβάσετε διάφορα αρχεία? Chrome και Firefox μπορεί να ανοίξει ιστοσελίδες, κ.λπ. τρίτους προγραμματιστές μπορούν ακόμη και να θέσουν τα ίδια φίλτρα, το οποίο θα λειτουργεί στο λειτουργικό σύστημα.
Την ίδια στιγμή, το iOS είναι πολύ περιορισμός σε αυτή την άποψη, αν και όχι χωρίς λόγο. Ωστόσο, για τους απλούς χρήστες δεν θα παρατηρήσετε όλα αυτά και επεκτείνει λίγο από ό, τι θα διαφέρουν από τους ομολόγους τους Android, iOS, διατηρώντας παράλληλα την πολιτική ασφάλειας.
Πώς να εγκαταστήσετε επεκτάσεις, και πώς να κάνει τη δουλειά;
Καθώς και όλες τις επίσημες app για iOS, επεκτάσεις κατεβάσει από το App Store. Ο μεγαλύτερος περιορισμός εδώ είναι ότι η Apple δεν επιτρέπει στους προγραμματιστές να δημοσιεύουν τις επεκτάσεις σε «καθαρή μορφή». Κάθε παράταση πρέπει να διανέμονται ως μέρος της αίτησης (που περιέχει app), το οποίο με τη σειρά του θα πρέπει να φέρουν οποιαδήποτε βασική λειτουργικότητα και είναι χρήσιμες για το χρήστη. Δηλαδή, οι προγραμματιστές δεν μπορεί να δημοσιεύσει στο App Store μόνο ένα widget ή απλά το πληκτρολόγιο, όπως συμβαίνει τώρα στο Android. Την ίδια στιγμή, η Apple δεν επιβάλλει περιορισμούς όσον αφορά τον αριθμό και το είδος των επεκτάσεων, η οποία μπορεί να περιέχει την αίτησή σας.
Άλλες συστάσεις για τους προγραμματιστές της Apple δεν απαιτούνται. Αυτό ισχύει και για το σχεδιασμό των επεκτάσεων, η οποία θα πρέπει να ανταποκρίνονται στις βασικές εφαρμογές OS: widgets δεν διαφέρουν από τα υπάρχοντα widgets στο Γνωστοποίηση Κέντρο και φωτογραφιών μενού επεξεργασία στο Roll κάμερα - ριζικά διαφορετική από μητρική. Πιθανώς υπάρχουν εκείνοι που αποτυγχάνουν να συμμορφωθούν με τις συστάσεις αυτές, αλλά κυρίως επειδή η πλειοψηφία των προγραμματιστών και να συμμορφώνονται με τη φιλοσοφία της Apple κατά τη δημιουργία των εφαρμογών τους.
Κάθε επέκταση ενεργοποιείται με διαφορετικούς τρόπους. Widgets - από την κοινοποίηση Κέντρο, πληκτρολόγια - από τις ρυθμίσεις του περιφερειακού συστήματος. Επέκταση της επεξεργασίας φωτογραφιών και την αποθήκευση καλούνται μόνο σε ορισμένες περιπτώσεις εφαρμογών που παρέχει η αλληλεπίδραση μαζί τους. Ενίσχυση της ανταλλαγής και της δράσης μπορεί να κληθεί από οποιαδήποτε εφαρμογή, αλλά οι προγραμματιστές πρέπει να προσθέσετε τους κανόνες ενεργοποίησης να επεκτείνει και να καθορίσετε ποια στοιχεία πρέπει να υποβάλλονται σε επεξεργασία. Αν η επέκτασή σας παρέχει μόνο για την ανταλλαγή φωτογραφιών, θα πρέπει να καθορίσετε την ενεργοποίηση των κανόνων που η επέκταση δεν εμφανίζεται όταν ένας χρήστης θέλει να μοιραστεί μια σύνδεση ή έγγραφο.
Παρά το γεγονός ότι όλοι οι επεκτάσεις πρέπει να «συσκευασμένα» στην εφαρμογή (app που περιέχει), μπορούν να λειτουργούν ανεξάρτητα. Κάθε επέκταση - αυτό είναι ένα μικρό δυαδικό .appex-αρχείο, το οποίο ανοίγει τη δουλειά και έκλεισε χωρίς να χρειάζεται να ξεκινήσει η κύρια εφαρμογή. Για επεκτάσεις που εκτελούν τα ίδια καθήκοντα με κύρια εφαρμογή τους (π.χ. Instagram, χρησιμοποιείται για την προσθήκη ενός φίλτρου στην εικόνα) ενθαρρύνονται να χρησιμοποιούν ένα ενσωματωμένο πλαίσιο για τη διαβίβαση των εκτελέσιμο κώδικα που απαιτείται για την αντίστοιχη εργασία. Δημιουργήστε ένα πλαίσιο, βάλτε τον κωδικό εκεί και θα είστε σε θέση να οικοδομήσουμε αυτό το πλαίσιο, τόσο όσον αφορά την εφαρμογή και την επέκταση. Ο μόνος περιορισμός είναι ότι αυτές οι εφαρμογές θα απαιτούν iOS έκδοση 8 και παραπάνω, καθώς δεν θα τρέξει σε παλαιότερα λειτουργικά συστήματα.
Ένας από τους λόγους για την επέκταση τρέξει ξεχωριστά από την εφαρμογή τους, είναι δύσκολο όριο της Apple για το ποσό της μνήμης που καταναλώνεται. Ειδικότερα, αυτό ισχύει και για το widget, καθώς ο χρήστης μπορεί να έχει πολλαπλές ταυτόχρονες widgets.
Επιπλέον, τα widgets δεν λειτουργούν για μεγάλο χρονικό διάστημα, και απομακρύνονται δια της βίας από τη συσκευή μετά το κλείσιμο. Για τις επεκτάσεις που εκτελούν χρονοβόρες εργασίες υπόβαθρο, όπως το κατέβασμα αρχείων, η Apple συνιστά να μεταφέρει αυτά τα καθήκοντα συστήματος, και στη συνέχεια κλείστε το.
Αυτό είναι όλα τα κύρια σημεία, τις επεκτάσεις iOS. Όπως μπορείτε να δείτε όλες τις πιθανές επεκτάσεις απολύτως τεκμηριωμένη, αλλά είναι αξιοσημείωτο το γεγονός ότι παρά τις αυξημένες εξουσίες, που παρέχονται από τους προγραμματιστές και τις εφαρμογές τους, δεν παραβιάζουν την υπάρχουσα πολιτική ασφάλειας και εργασίας στο πλαίσιο της "Sandbox".
Ασφάλεια των δεδομένων του χρήστη. Διαφορές από το Android
Με λίγα λόγια, η διαφορά μεταξύ της προσέγγισης στα δεδομένα της ιδιωτικής ζωής και της ασφάλειας iOS και Android χρήστες Είναι ότι η τελευταία παρέχει στους προγραμματιστές με έναν αριθμό του σχοινιού, η οποία είναι επαρκής για να Κρεμάστε τον εαυτό του.
Στην πραγματικότητα, αν οι χρήστες του Android να χρησιμοποιήσετε τις προεπιλεγμένες ρυθμίσεις ασφαλείας πριν από την εγκατάσταση κάθε εφαρμογής διαβάσετε την εκτεταμένη λίστα πράγματα που μπορεί να κάνει - ο κίνδυνος των προσωπικών τους δεδομένων σε τρίτους ή λοίμωξη malware δεν ήταν τόσο μεγάλη. Αλλά εφαρμογές όλα αυτά τα δικαιώματα να οδηγήσει σε σύγχυση. Μερικοί άνθρωποι επιλέγουν να εγκαταστήσετε εφαρμογές, όχι μόνο από το Google Play, αλλά και από άλλες πηγές? άλλοι επιθυμούν να πάρει root πρόσβαση, προκειμένου να εγκαταστήσετε εναλλακτικές διανομές - κανένα πρόβλημα, όλα είναι δυνατά με το Android. Τέτοια πράγματα έχουν ενδιαφέρον ορισμένοι χρήστες στην πλατφόρμα, αλλά να τα κάνει όλα με δική σας ευθύνη.
Κοιτάξτε το iOS, η οποία, ακόμη και με την εισαγωγή των επεκτάσεων εξακολουθούν να στήνει εμπόδια μεταξύ εφαρμογές και επεκτάσεις και τα δεδομένα των εφαρμογών τους για την προστασία των χρηστών (και οι πληροφορίες τους) από οι ίδιοι. Όπως έχουμε πει, ακόμα εφαρμογές δεν μπορούν να αντιμετωπίσουν ο ένας τον άλλο άμεσα, επειδή η επέκταση είναι μικρό δυαδικά αρχεία που τρέχουν ανεξάρτητα από την αίτηση που περιέχουν. Κάθε εφαρμογή η οποία προκαλεί (app ξενιστή στην ορολογία Apple) διαστολής αναφέρεται σε επέκταση, αλλά όχι με την εφαρμογή από το ότι περιλαμβάνει (περιέχει app). Σε αυτή την περίπτωση, όταν η εφαρμογή υποδοχής θα πρέπει να χρησιμοποιούν την επέκταση, στέλνει ένα αίτημα μέσω του πλαισίου του συστήματος, και όχι άμεσα, και ποτέ δεν θα έχουν πρόσβαση στα δεδομένα της εφαρμογής.
Προγραμματιστής της FortyTwo Inc. Eduardo Fonseca εξηγεί πώς να καταφέρει να κρατήσει το iOS εφαρμογές και επεκτάσεις «σε απόσταση ασφαλείας.»
«Κάθε επέκταση - αυτό είναι μια ξεχωριστή δέσμη (πακέτο) στο εσωτερικό της κύριας προσφυγής πακέτο που περιέχει χωριστές εκτελέσιμα» - λέει ο Fonseca. «Το αστείο είναι ότι η διεύρυνση δεν είναι μια εφαρμογή. Προκαλείται μέσω των πλαισίων του συστήματος της Apple, χρησιμοποιώντας ένα σαφώς καθορισμένο interface, η οποία εκκινεί τη διαδικασία της εκκίνησης διαστολής. Στην περίπτωση αυτή, ο κώδικας εκτελείται ξεχωριστά, και αυτό σημαίνει ότι η απόδοση του κάθε κώδικα τρίτων δεν μπορεί να είναι μέσα από την εφαρμογή. Ως εκ τούτου, δεν υπάρχει κανένας κίνδυνος ότι οι εφαρμογές που θα υποστηρίξουν την επέκταση (όπως το Safari), ενδέχεται να αντιμετωπίσετε προβλήματα όταν χρησιμοποιείτε επεκτάσεις μέσα σε άλλες εφαρμογές. Είναι όπως το λάδι και το νερό - δεν αναμειγνύεται ".
Ακόμη και αν η επέκταση είναι αναγκαία η αναφορά του ότι έχει την ίδια εφαρμογή, Buet συμβεί μόνο μέσω του API του συστήματος. Από προεπιλογή, η εφαρμογή περιλαμβάνει την επέκταση και την επέκταση της μόνη της δεν μπορεί να έχει πρόσβαση σε δεδομένα του άλλου.
Για την ανταλλαγή δεδομένων μεταξύ τους, θα πρέπει να τους κάνει μέρος μιας ομάδας εφαρμογών (App Group), η οποία θα τους επιτρέψει να έχουν κάποιες γενικές πληροφορίες στο εξωτερικό δοχείο, τόσο έξω από το sandbox. Μπορείτε ίσως παρατηρήσει ότι μόλις συνδεθείτε στο λογαριασμό σας στο Google Chrome για iOS, μπορείτε επίσης να έχετε συνδεθεί και στο Google Maps και το Google Drive - είναι το αποτέλεσμα της χρήσης του Ομίλου App. Αλλά ακόμα και αυτές οι ομάδες περιορίζονται σε ορισμένα είδη των δεδομένων που μπορούν να ανταλλάσσονται. Επιτρεπόμενες τα στοιχεία του λογαριασμού μνήμη cache της βάσης δεδομένων ανταλλαγή. Ωστόσο, για τα τοπικά έγγραφα και αρχεία πολυμέσων δεν είναι η περίπτωση - που εξακολουθούν να απαγορεύονται.
Με απλά λόγια, η Apple δεν θέλει κάποιες εφαρμογές να έχουν πρόσβαση σε ένα sandbox άλλα. Οι επεκτάσεις είναι μικρά sandbox μέσα σε ένα άλλο sandbox, που θα διευκολύνουν την αλληλεπίδραση των διαφορετικών εφαρμογών, αλλά ποτέ δεν επιτρέπεται κοντά την έναρξη της εφαρμογής (app υποδοχής) εφαρμογή δεδομένων που περιέχει μια επέκταση (που περιέχει app).
Μηχανισμοί τρέξει επεκτάσεις είναι επίσης διαφορετική από την εφαρμογή. Εάν εκτελέσετε την ίδια επέκταση σε διάφορες εφαρμογές, όπως το Safari και Mail, το σύστημα θα ανοίξει δύο αντίγραφα αυτής της επέκτασης, που θα εκτελούνται σε ξεχωριστές διαδικασίες. Αυτές οι επεκτάσεις αποθηκεύονται σε διάφορες περιοχές της μνήμης. Έτσι, οι πληροφορίες και των δύο εφαρμογών είναι αποθηκευμένα σε διάφορες θέσεις, και έχουν πρόσβαση στα δεδομένα τους μόνο. Για τον ίδιο λόγο, τα προγράμματα περιήγησης ανοίξει μια ποικιλία από τοποθεσίες σε ξεχωριστές καρτέλες.
Android προσφέρει τη δική του sandbox μοντέλο, το οποίο έχει επίσης ως στόχο την προστασία των δεδομένων που είναι αποθηκευμένα σε ένα εφαρμογής από άλλες εφαρμογές που δεν έχουν πρόσβαση σε αυτά (αν και, αν θέλετε, οι προγραμματιστές εύκολα μπορούν να εργαστούν γύρω από αυτό). Ιδιαίτερα επικίνδυνο εδώ είναι η χορήγηση δικαιωμάτων διαβάσει και πρόσβαση εγγραφής σε όλα τα δεδομένα των εφαρμογών που ξεπερασμένη ακόμα και Android 4.2., αν και η εφαρμογή είναι ακόμη σε θέση να έχουν πρόσβαση στα δεδομένα των άλλων εφαρμογών.
Και πάλι, όλα αυτά τα μηχανισμοί είναι αποτελεσματικές μόνο όταν χρησιμοποιούνται σωστά, αλλά οι άνθρωποι τείνουν να είναι σπάνια διαβάσετε την άδεια χρήσης και μόνο συμφωνώ με τα αιτήματα αυτά, η οποία παρέχει λογισμικό για την εγκατάσταση, εκθέτοντας τα δεδομένα τους του κινδύνου. Η Apple είναι πολύ καλά προσαρμοσμένη σε αυτό το θέμα, και ακόμα και τώρα στο iOS έχει ένα άνετο περιβάλλον με διακόπτες προστασίας της ιδιωτικής ζωής, το οποίο μπορεί να φανεί καθαρά τι prilolzheniya χρησιμοποιήσετε κάποιες πληροφορίες. Κάτι σαν το Google ανακοίνωσε το Android 4.4, αλλά στην τελική έκδοση του αυτό, δυστυχώς, δεν ήταν εκεί. Δεν έχει καμία άμεση σχέση με την επέκταση, αλλά αυτό είναι ένα καλό παράδειγμα για το πώς το iOS 8, συνεχίζει να θυσιάσει την ευελιξία για χάρη της ασφάλειας και της ιδιωτικής ζωής των χρηστών.
Η Apple επιβάλλει επίσης και άλλους περιορισμούς σχετικά με την επέκταση - δεν μπορούν να χρησιμοποιήσουν όλα τα API, το οποίο είναι προσβάσιμο από τις εφαρμογές. Συγκεκριμένα έθιμο πληκτρολόγιο περιορισμένο αριθμό των υποχρεωτικών απαιτήσεων και κανόνων. Μηχανισμοί των επεκτάσεων της Apple αλληλεπίδρασης είναι διαφορετικές από εκείνες που χρησιμοποιούν το Google και, στην πραγματικότητα, iOS 8 παραμένει κλειστή λειτουργικό σύστημα, σε σύγκριση με το Android. εφαρμογές τρίτων εξακολουθούν να μην μπορούν να επικοινωνούν απευθείας μεταξύ τους, και στοιχεία του συστήματος όπως η αρχική οθόνη ή την οθόνη κλειδώματος δεν μπορεί να αποτελέσει αντικείμενο προσαρμογής, καθώς και εφαρμογές για την Προεπιλογή.
Παρ 'όλα αυτά, φαίνεται ότι η Apple έχει επιτέλους άκουσε τα ενιαία μεγαλύτερα παράπονα για την κινητή πλατφόρμα και έχει λάβει μέτρα, αλλά χαρακτηριστική για το στυλ της, χωρίς δραστικά μέτρα, τα οποία θα μπορούσαν να αυξήσουν τις απαιτήσεις σε μνήμη ή απειλές για την ασφάλεια χρήστες. Τώρα, ενώ iOS 8 δεν έχει ακόμη δημοσιευθεί, είναι δύσκολο να κρίνουμε τα πλεονεκτήματα και τα μειονεκτήματα μιας τέτοιας προσέγγισης, αλλά στα χαρτιά είναι όλα τα βλέμματα είναι πολύ ελπιδοφόρα.
(μέσω)