De todos os novos recursos do iOS 8 apresentados na WWDC, o mais importante, talvez, é a extensão (extensibilidade). Eles devem ter um grande impacto sobre o desenvolvimento do sistema operacional. Muitas vezes, esse recurso é descrito como "a capacidade de aplicativos de terceiros para interagir uns com os outros." Isto, naturalmente, é muito exagerada, já que a interação não é a única possibilidade de extensões, e eles não podem se comunicar diretamente uns com os outros, para ser exato.
Temos ler a documentação do desenvolvedor e vídeos a partir de WWDC, para entender como funcionam as extensões e como a Apple tenha encontrado um compromisso entre a abertura da segurança do sistema e os dados do usuário e gostaria de falar sobre isso você.
Então, o que fazer a expansão?
Permitindo que os aplicativos de terceiros para acessar um ao outro, é apenas um problema, que é a de resolver a expansão. Lado do teclado; integração de aplicações com outro armazenamento em nuvem, além de iCloud; widgets em Notificação Center - tudo isso também é suportado pelos ramais.
Na verdade, nem todos do iOS pode ser "reforçada" desenvolvedores de terceiros. Por exemplo, se você deseja substituir o aplicativo padrão ou adicionar um interruptor na sala de controle - você não vai funcionar. Apple oferece não é muito claramente definida "pontos de extensão» (pontos de extensão), para mostrar os desenvolvedores com qualquer parte do sistema operacional que eles possam trabalhar. A lista destes pontos da seguinte forma:
- expansão Hoje (Hoje extensões) ou widgets - são usados para fornecer informações instantâneas no Centro de Notificação. Você pode considerá-los como uma resposta às telhas ao vivo Windows Phone e widgets da tela inicial do Android.
- reforçar o intercâmbio de (extensões ação) - permite que você envie fotos, links ou outros arquivos da aplicação nos serviços online. Como postar fotos em Pinterest ou upload de arquivos para Dropbox ou onedrive diretamente do aplicativo.
- ampliação (extensões de Ação) - usado para "a manipulação ou o conteúdo de visualização no contexto de outro aplicativo." Em outras palavras, isso significa que você pode editar a foto, que está contido em um documento de texto, ou, Por exemplo, como mostrado na apresentação, uso algo como Bing Translate para traduzir o texto em uma janela Safari.
- Extensões para edição de fotos (extensões edição de fotos) - pode usar os recursos de edição de outras aplicações ao visualizar imagens no rolo da câmera.
- armazenamento expandida (Armazenamento extensões Provider) - permite que os aplicativos para abrir documentos a partir de um número de armazenamento em nuvem. Por exemplo, você pode usar para armazenar seus documentos Dropbox e acessá-los diretamente do Instituto de iPad ou Pages.
- Extensões para teclados de terceiros (extensões de teclado personalizados) - substituir o teclado padrão no iOS.
extensões disse são iOS, mas muitos deles (incluindo widgets de troca e expansão al.) Correndo em OS X Yosemite, bem como no iOS. aplicações dos desenvolvedores da App Store do Mac enfrentam restrições semelhantes sandbox e implementação de extensões mordeu simplificar suas vidas. Embora, provavelmente, muitos desenvolvedores continuar a evitá-los, evitando a Mac App Store em tudo.
Esta lista preliminar de pontos de extensão difere das intenções de sistema (sistema de Intenções), que trabalham em Android. Aplicações no Android usar os filtros para compreender o sistema operacional quais ações eles podem executar e alça. Por exemplo, Twitter e Facebook pode postar fotos e links; Google Drive e Dropbox pode baixar vários arquivos; Chrome e Firefox pode abrir páginas web, etc. Desenvolvedores de terceiros pode até mesmo configurar-se filtros, que irão operar no sistema operacional.
Ao mesmo tempo, iOS é muito limitação a este respeito, embora não sem uma razão. No entanto, para os usuários comuns não vai notar tudo isso e expandir um pouco do que será diferente dos seus homólogos Android, iOS, mantendo a política de segurança.
Como instalar extensões, e como eles funcionam?
Bem como todo o aplicativo oficial para iOS, extensões baixado na App Store. A maior limitação aqui é que a Apple não permite que os desenvolvedores de publicar extensões em "forma pura". Cada extensão tem de ser distribuído como parte do pedido (contendo APP), que por sua vez deve transportar qualquer funcionalidade básica e ser útil para o utilizador. Ou seja, os desenvolvedores não podem publicar na App Store apenas um widget ou apenas o teclado, como está acontecendo agora no Android. Ao mesmo tempo, a Apple não impor quaisquer restrições sobre o número e tipos de extensões, que pode conter a sua aplicação.
Outras recomendações para os desenvolvedores da Apple não são necessários. Isto aplica-se ao projeto de extensões, que devem corresponder às aplicações do sistema operacional padrão: os widgets não diferem a partir de widgets existentes em Notificação Centro e foto menu de edição no Rolo da Câmera - radicalmente diferentes nativa. Provavelmente, há aqueles que não cumprir essas recomendações, mas principalmente porque a maioria dos desenvolvedores e aderem à filosofia da Apple ao criar suas aplicações.
Cada extensão é ativado de maneiras diferentes. Widgets - de Notificação Centro, teclados - desde as configurações do sistema regionais. Expansão da edição e armazenamento de fotos são chamados apenas em determinadas situações de aplicações que fornece interação com eles. Intensificar o intercâmbio e ação pode ser chamado a partir de qualquer aplicação, mas os desenvolvedores devem adicionar as regras de ativação para expandir e especificar quais dados devem ser processados. Se a sua extensão prevê apenas a troca de fotos, você precisa especificá-lo na ativação das regras que a expansão não aparecem quando um usuário quer compartilhar um link ou documento.
Apesar do fato de que todas as extensões devem ser "empacotados" no (app contendo) a aplicação, eles podem trabalhar de forma independente. Cada extensão - este é um pequeno .appex-arquivo binário, que abre o trabalho feito e fechado sem ter que iniciar a aplicação principal. Para as extensões que executam as mesmas funções como a sua aplicação principal (por exemplo Instagram, usado para a adição de um filtro à imagem) são incentivados a usar um built-in quadro para a transmissão de código executável necessário para a respectiva tarefa. Criar um quadro, coloque o código lá e você será capaz de construir este quadro, tanto na aplicação e na extensão. A única restrição é que estas aplicações vai exigir iOS versão 8 e acima, como não será executado em sistemas operacionais anteriores.
Uma das razões para a expansão executado independentemente do pedido da mesma, é limite rígido da Apple sobre a quantidade de memória consumida. Em particular, isto aplica-se ao widget, como o usuário pode ter vários widgets simultâneos.
Além disso, os elementos não funcionam para um longo período de tempo, e retirado à força a partir do dispositivo após o fecho. Para extensões que realizam longas tarefas de fundo, como o download de arquivos, a Apple recomenda para transferir essas tarefas do sistema, e depois fechá-lo.
Isso é todos os pontos principais, em extensões iOS. Como você pode ver todas as possíveis extensões rigorosamente documentadas, mas é notável pelo fato de que, apesar dos poderes reforçados, fornecida pelos criadores e suas aplicações, eles não violam a política de segurança e trabalhar dentro existente sua "Sandbox".
Segurança dos dados do usuário. Diferenças do Android
Em poucas palavras, a diferença entre a abordagem aos dados privacidade e segurança aos usuários iOS e Android É este último que proporciona promotores com um número da corda, o que é suficiente para o próprio jeito.
Na verdade, se os usuários do Android usar as configurações de segurança padrão antes da instalação de cada aplicativo ler a extensa lista coisas que pode fazer - o perigo dos seus dados pessoais a terceiros ou infecção por malware não era tão grande. Mas os aplicativos todos esses direitos levar a confusão. Algumas pessoas optam por instalar aplicações não só do Google Play, mas também de outras fontes; outros desejam obter acesso de root, a fim de instalar distribuições alternativas - sem problemas, tudo é possível com o Android. Essas coisas são de interesse alguns usuários para a plataforma, mas eles fazer tudo em seu próprio risco.
Olhe para o iOS, que, mesmo com a introdução de expansões ainda ergue barreiras entre aplicações e suas extensões e aplicações de dados para os usuários a proteger (e suas informações) de -se. Como já disse, ainda aplicações não podem abordar directamente entre si, porque a expansão é pequenos arquivos binários que são executados independentemente do pedido contendo. Qualquer aplicação que provoca (app hospedeiro na terminologia da Apple) expansão refere-se a expandir-se, mas não para a aplicação que compreende (contendo app). Neste caso, quando o aplicativo host precisa usar a extensão, ele envia uma solicitação por meio da estrutura do sistema, ao invés de diretamente, e nunca terá acesso a dados da aplicação.
Desenvolvedor de quarenta e dois Inc. Eduardo Fonseca explica como gerenciar para manter aplicativos iOS e extensões "a uma distância segura."
"Cada extensão - este é um pacote separado (pacote) dentro do aplicativo principal pacote que contém executáveis separados" - diz Fonseca. "O engraçado é que a expansão não é uma aplicação. Ela é causada através das estruturas de sistemas de maçã, utilizando uma interface claramente definida, que inicia o processo de início de expansão. Neste caso, o código é executado separadamente, e isso implica que o desempenho de qualquer código de terceiros não pode ser dentro do aplicativo. Portanto, não há risco de que as aplicações que irão apoiar a extensão (como o Safari), você pode ter problemas quando você usa extensões dentro de outras aplicações. Eles são como óleo e água - eles não se misturam ".
Mesmo que a expansão é necessária para se referir a ter a mesma aplicação, BUET ocorrer somente através da API do sistema. Por padrão, o aplicativo contém a extensão e expansão de si mesma não pode acessar dados uns dos outros.
Para o intercâmbio de dados entre eles, é preciso torná-los parte de um grupo de aplicativos (App Group), que lhes permitirá ter alguma informação geral no recipiente externo, ambos fora da sandbox. Você deve ter notado que uma vez entrando em sua conta no Google Chrome no iOS, você também vai estar conectado e ao Google Maps e Google Drive - é o resultado do uso do Grupo App. Mas mesmo esses grupos são limitados a certos tipos de dados que podem ser trocados. informações da conta cache do banco de dados Exchange permitida. No entanto, para documentos locais e arquivos de mídia não é o caso - eles ainda são proibidos.
Simplificando, a Apple não quer algumas aplicações para ter acesso a uma caixa de areia outra. Extensões são pequenos sandbox dentro de outra caixa de areia, que irá facilitar a interação de diferentes aplicações, mas nunca permitido perto de lançar o (app host) aplicação de aplicação de dados que contém uma extensão (contendo app).
Mecanismos de extensões executados também são diferentes a partir da aplicação. Se você executar a mesma extensão em diversas aplicações, tais como Safari e Mail, o sistema irá abrir duas cópias desta expansão, que será executado em processos separados. Estas extensões são armazenados em diferentes áreas de memória. Assim, a informação de ambas as aplicações são armazenadas em locais diferentes, e eles só têm acesso aos seus dados. Pela mesma razão, os navegadores abrir uma variedade de sites em guias separadas.
Android fornece seu próprio modelo sandbox, que também visa proteger os dados armazenados em um aplicação de outros aplicativos que não têm acesso a eles (embora, se desejado, os desenvolvedores podem facilmente contornar isso). Especialmente perigoso aqui é a concessão de direitos para ler e acesso de gravação a todos os dados de aplicações que desatualizado, mesmo Android 4.2., embora o aplicativo ainda é capaz de acessar os dados de outro aplicações.
Mais uma vez, todos esses mecanismos só são eficazes quando usados corretamente, mas as pessoas tendem a ser raras leia o contrato de licença e apenas concordar com esses pedidos, que fornece software para instalar, expondo seus dados risco. A Apple está muito bem adaptado a esta questão, e mesmo agora no iOS tem um ambiente confortável com interruptores de privacidade, que podem ser vistos claramente o que prilolzheniya usar algumas informações. Algo como o Google anunciou no Android 4.4, mas na versão final deste, infelizmente, não estava lá. Não tem nenhuma relação direta com a extensão, mas este é um bom exemplo de como o iOS 8, continua a sacrificar flexibilidade para o bem da segurança e privacidade dos usuários.
A Apple também impõe outras restrições à expansão - eles não podem usar toda a API, que é acessado por aplicações. Em particular teclado personalizado número de requisitos obrigatórios e regras limitadas. Mecanismos de extensões da Apple de interação são diferentes daqueles que usam o Google e, de fato, iOS 8 permanece fechado sistema operacional, em comparação com Android. As aplicações de terceiros ainda não podem se comunicar diretamente entre si, e os elementos do sistema tais como tela inicial ou na tela de bloqueio não é passível de personalização, bem como aplicações para Padrão.
No entanto, parece que a Apple finalmente ouviu as maiores queixas individuais sobre sua plataforma móvel e tomou medidas, mas característico por seu estilo, sem medidas drásticas, o que poderia aumentar os requisitos de memória ou ameaças de segurança usuários. Agora, enquanto iOS 8 ainda não foi publicado, é difícil julgar as vantagens e desvantagens de tal abordagem, mas no papel tudo parece muito promissor.
(via)