De toutes les nouvelles fonctionnalités iOS 8 présentées lors de la WWDC, peut-être, le plus important, sont l'extension (extensibilité). Ils devraient avoir un grand impact sur le développement du système d'exploitation. Souvent, cette fonctionnalité est décrite comme « la capacité des applications tierces d'interagir les uns avec les autres. » Ceci, bien sûr, est trop exagéré, puisque l'interaction n'est pas la seule possibilité d'extensions, et ils ne peuvent pas communiquer directement les uns avec les autres, pour être exact.
Nous avons lu la documentation des développeurs et des vidéos de la WWDC, pour comprendre comment fonctionnent les extensions et comment Apple a trouvé un compromis entre l'ouverture de la sécurité du système et des données d'utilisateur et souhaite en parler vous.
Alors qu'est-ce que l'expansion?
Activation des applications tierces pour accéder à l'autre, il n'y a qu'un seul problème, ce qui est de résoudre l'expansion. Côté du clavier; l'intégration des applications avec d'autres stockage en nuage, en plus d'iCloud; widgets dans Centre Notification - tout cela est également pris en charge par les extensions.
En fait, pas tous les iOS peut être « amélioré » les développeurs tiers. Par exemple, si vous voulez remplacer l'application par défaut ou ajouter un interrupteur dans la salle de contrôle - vous ne travaillerez pas. Apple fournit est pas tellement clairement défini « points d'extension» (points d'extension), pour montrer aux développeurs une partie du système d'exploitation, ils peuvent travailler. Une liste de ces points comme suit:
- Aujourd'hui l'expansion (extensions Aujourd'hui) ou widgets - sont utilisés pour fournir des informations instantanée dans le centre de notification. Vous pouvez les considérer comme une réponse aux tuiles en direct Windows Phone et Android widgets de l'écran d'accueil.
- améliorer l'échange de (extensions d'actions) - vous permettent d'envoyer des photos, des liens ou d'autres fichiers de l'application dans les services en ligne. Tels que l'affichage de photos dans Pinterest ou télécharger des fichiers Dropbox ou onedrive directement depuis l'application.
- élargissement (extensions d'action) - utilisés pour « la manipulation ou l'affichage du contenu dans le cadre d'une autre application. » En d'autres termes, cela signifie que vous pouvez modifier la photo, qui est contenue dans un document texte, ou, Par exemple, comme indiqué dans la présentation, utiliser quelque chose comme Bing Traduire pour traduire le texte dans une fenêtre Safari.
- Extensions pour la retouche photo (extensions Retouche photo) - peuvent utiliser les capacités d'édition d'autres applications lors de l'affichage des images dans le rouleau de la caméra.
- stockage élargi (Stockage Extensions de fournisseur) - permet aux applications de documents ouverts à partir d'un certain nombre de stockage en nuage. Par exemple, vous pouvez utiliser pour stocker vos documents Dropbox et accès les directement de l'Office pour iPad ou Pages.
- Extensions pour les claviers tiers (extensions de clavier personnalisés) - remplacer le clavier standard dans iOS.
extensions sont iOS dites, mais beaucoup d'entre eux (y compris des widgets échange et de l'expansion al.) Rodage OS X Yosemite, ainsi que dans iOS. les applications des développeurs App Store du Mac face à des restrictions similaires bac à sable et la mise en œuvre des extensions bit simplifier leur vie. Bien que, très probablement, de nombreux développeurs continuent à leur échapper, en évitant le Mac App Store du tout.
Cette liste préliminaire des points d'extension diffère des intentions du système (système), Intentions travaillant dans Android. Des applications sur Android utilisent les filtres pour comprendre le système d'exploitation les actions qu'ils peuvent réaliser et poignée. Par exemple, Twitter et Facebook peuvent publier des photos et des liens; Google Drive, et Dropbox peuvent télécharger divers fichiers; Chrome et Firefox peuvent ouvrir des pages web, etc. Les développeurs tiers peuvent même définir des filtres eux-mêmes, qui fonctionneront dans le système d'exploitation.
En même temps, iOS est beaucoup limitation à cet égard, mais pas sans raison. Cependant, pour les utilisateurs ordinaires ne remarqueront pas tout cela et développer un peu que diffèrent de leurs homologues Android, iOS tout en maintenant la politique de sécurité.
Comment installer des extensions, et comment ils travailler?
Ainsi que toute l'application officielle pour iOS, les extensions téléchargées depuis l'App Store. La plus grande limitation ici est que Apple ne permet pas aux développeurs de publier des extensions « forme pure ». Chaque extension doit être distribué dans le cadre de l'application (app contenant), qui devrait porter toutes les fonctionnalités de base et être utile à l'utilisateur. C'est, les développeurs ne peuvent pas publier sur l'App Store juste un widget ou tout simplement le clavier, comme cela se passe maintenant dans l'Android. En même temps, Apple n'impose aucune restriction quant au nombre et types d'extensions, qui peut contenir votre application.
D'autres recommandations pour les développeurs d'Apple ne sont pas nécessaires. Cela s'applique à la conception des extensions, ce qui devrait correspondre aux applications standard OS: widgets ne diffèrent pas de widgets existants dans le menu d'édition Centre de notification et photo dans le Camera Roll - radicalement différent de natif. Il y a probablement ceux qui ne respectent pas ces recommandations, mais surtout parce que la majorité des développeurs et adhèrent à la philosophie d'Apple lors de la création de leurs applications.
Chaque extension est activée de différentes manières. Widgets - du Centre de notification, claviers - des paramètres du système régional. Expansion de l'édition et le stockage de photos sont appelés que dans certaines situations d'applications qui permet une interaction avec eux. Améliorer l'échange et l'action peut être appelé de toute application, mais les développeurs doivent ajouter les règles d'activation pour développer et spécifier les données à traiter. Si votre poste ne prévoit que l'échange de photos, vous devez indiquer dans l'activation des règles que l'expansion ne semble pas lorsqu'un utilisateur veut partager un lien ou d'un document.
Malgré le fait que toutes les extensions doivent être « emballés » dans l'application (contenant l'application), ils peuvent travailler de façon autonome. Chaque extension - c'est un petit .appex fichierbinaire, qui ouvre le travail et fermé sans avoir à démarrer l'application principale. Pour les extensions qui effectuent les mêmes tâches que leur application principale (par exemple Instagram, utilisé pour ajouter un filtre à l'image) sont encouragés à utiliser un cadre intégré pour la transmission de code exécutable requis pour la tâche respective. Créer un cadre, mettre le code là-bas et vous serez en mesure de construire ce cadre à la fois dans l'application et dans l'extension. La seule restriction est que ces applications nécessitent la version iOS 8 et ci-dessus, ne fonctionnera pas sur les systèmes d'exploitation antérieurs.
L'une des raisons de l'expansion de fonctionner séparément de l'application de celle-ci, est difficile limite d'Apple sur la quantité de mémoire consommée. Cela vaut particulièrement pour le widget, que l'utilisateur peut avoir plusieurs widgets simultanés.
De plus, les widgets ne fonctionnent pas depuis longtemps, et enlevés de force du dispositif après la clôture. Pour les extensions qui exécutent des tâches longues de fond, telles que le téléchargement de fichiers, Apple recommande de transférer ces systèmes de tâches, puis fermez-le.
C'est tous les points principaux, sur les extensions iOS. Comme vous pouvez le voir toutes les extensions possibles strictement documentées, mais se distingue par le fait que, malgré les pouvoirs accrus, fournies par les développeurs et leurs applications, ils ne violent pas la politique de sécurité existante et de travailler au sein de son « Bac à sable ».
La sécurité des données de l'utilisateur. Différences de Android
En un mot, la différence entre l'approche des données de la vie privée et la sécurité des utilisateurs iOS et Android Il est que celui-ci fournit aux développeurs un certain nombre de la corde, ce qui est suffisant pour hang lui-même.
En fait, si les utilisateurs Android utilisent les paramètres de sécurité par défaut avant l'installation de chaque application lire la liste complète choses qu'il peut faire - le danger de leurs données personnelles à des tiers ou l'infection par des logiciels malveillants était pas grande. Mais toutes ces demandes de droits conduisent à la confusion. Certaines personnes choisissent d'installer des applications non seulement de Google Play, mais aussi d'autres sources; d'autres souhaitent obtenir l'accès root, afin d'installer des distributions alternatives - aucun problème, tout est possible avec Android. De telles choses sont d'intérêt des utilisateurs à la plate-forme, mais ils le font tout sur vos propres risques.
Regardez l'iOS, qui, même avec l'introduction de l'expansion encore des obstacles entre érige applications et leurs applications d'extensions et de données aux utilisateurs (et leurs protègent l'information) de eux-mêmes. Comme nous l'avons dit, encore des applications ne peuvent pas traiter directement entre elles, parce que l'expansion est de petits fichiers binaires qui fonctionnent séparément de l'application contenant. Toute application qui provoque l'expansion (l'application hôte dans la terminologie Apple) fait référence à se développer, mais pas à l'application qu'elle comprend (contenant l'application). Dans ce cas, lorsque l'application hôte doit utiliser l'extension, il envoie une requête via le cadre du système, plutôt que directement, et ne sera jamais avoir accès aux données d'application.
Développeur de quarante-deux Inc. Eduardo Fonseca explique comment gérer garder les applications iOS et les extensions « à une distance de sécurité. »
« Chaque extension - c'est un paquet séparé (paquet) dans l'application principale de paquet qui contient des fichiers exécutables séparés » - dit Fonseca. « Le plus drôle est que l'expansion n'est pas une application. Elle est causée par les cadres du système Apple, en utilisant une interface clairement définie, qui déclenche le processus de démarrage d'expansion. Dans ce cas, le code est exécuté séparément, et cela implique que l'exécution de tout code tiers ne peut pas être dans l'application. Par conséquent, il n'y a pas de risque que les applications qui soutiendront l'extension (comme Safari), vous pouvez rencontrer des problèmes lorsque vous utilisez des extensions à l'intérieur d'autres applications. Ils sont comme l'huile et l'eau - ils ne se mélangent pas ».
Même si l'expansion est nécessaire de se référer à avoir la même application, il Buet se produit que par l'API du système. Par défaut, l'application contient l'extension et l'expansion elle-même ne peut pas accéder aux données de l'autre.
Pour l'échange de données entre eux, vous devez les faire partie d'un groupe d'applications (App Group), ce qui leur permettra d'avoir des informations générales dans le conteneur externe, à la fois à l'extérieur du bac à sable. Vous avez sans doute remarqué qu'une fois connecté à votre compte dans Google Chrome sur iOS, il vous sera également connecté et à Google Maps et Google Drive - il est le résultat de l'utilisation du Groupe App. Mais même ces groupes sont limités à certains types de données qui peuvent être échangés contre. base de données échange autorisé informations de compte de cache. Cependant, pour les documents locaux et des fichiers multimédias ne sont pas le cas - ils sont toujours interdits.
Autrement dit, Apple ne veut pas certaines applications d'avoir accès à un bac à sable autre. Les extensions sont petit bac à sable dans une autre bac à sable, qui facilitera l'interaction des différentes applications, mais jamais permis à lancer l'application de données d'application (application hôte) qui contient une extension (contenant app).
Les mécanismes gérés sont également différentes de l'application. Si vous exécutez la même extension dans plusieurs applications telles que Safari et Mail, le système ouvrira deux copies de cette expansion, qui se déroulera dans des processus distincts. Ces extensions sont stockées dans différentes zones de mémoire. Ainsi, les informations des deux applications sont stockées dans des endroits différents, et ils ont seulement accès à leurs données. Pour la même raison, les navigateurs ouvrent une variété de sites dans des onglets séparés.
Android fournit son propre modèle de bac à sable, qui vise également à protéger les données stockées dans un l'application d'autres applications qui n'ont pas accès (bien que, si on le souhaite, les développeurs peuvent facilement contourner). Particulièrement dangereux est ici l'octroi des droits de lecture et d'accès en écriture à toutes les données d'applications même dépassé Android 4.2., bien que l'application est toujours en mesure d'accéder aux données d'autres applications.
Encore une fois, tous ces mécanismes ne sont efficaces que lorsqu'ils sont utilisés correctement, mais les gens ont tendance à être rares lire le contrat de licence et tout d'accord avec ces demandes, qui fournit des logiciels à installer, exposer leurs données risque. Apple est très bien adapté à cette question, et même maintenant dans iOS a un cadre confortable avec des commutateurs de confidentialité, que l'on voit clairement ce que prilolzheniya utiliser certaines informations. Quelque chose comme Google a annoncé dans Android 4.4, mais dans la version finale de ce fait, malheureusement, n'a pas été là. Il n'a aucun lien direct avec l'extension, mais cela est un bon exemple de la façon dont l'iOS 8, continue à sacrifier la flexibilité dans l'intérêt de la sécurité et la confidentialité des utilisateurs.
Apple impose également d'autres restrictions à l'expansion - ils ne peuvent pas utiliser toutes les API, qui est accessible par les applications. En particulier clavier personnalisé nombre limité d'exigences obligatoires et des règles. Les mécanismes d'interaction extensions d'Apple sont différents de ceux qui utilisent Google et, en fait, iOS 8 reste fermé le système d'exploitation, par rapport à Android. Les applications tierces ne peuvent toujours pas communiquer directement entre eux, et les éléments du système tels que l'écran d'accueil ou l'écran de verrouillage est ne se prête pas à la personnalisation, ainsi que des applications pour Par défaut.
Néanmoins, il semble que Apple a finalement écouté les plus grandes plaintes individuelles sur sa plate-forme mobile et a pris des mesures, mais caractéristique de son style, sans action drastique, ce qui pourrait augmenter les besoins en mémoire ou les menaces de sécurité utilisateurs. Maintenant, alors que iOS 8 n'a pas encore été publié, il est difficile de juger les avantages et les inconvénients d'une telle approche, mais sur le papier tout semble très prometteur.
(via)