Unidade IX - Extensões do iOS
O iOS é uma plataforma totalmente proprietária e fechada, e desde suas primeiras versões já implementa um modelo de execução de seus Apps baseado no conceito de Sandbox, ou caixa de areia. Nesse modelo os Apps executam de maneira totalmente isoladas uns dos outros e sem nenhum conhecimento a respeito do mundo externo.
Embora isso seja excelente do ponto de vista de segurança uma vez que praticamente inibe a existência de virus e malwares, já que eles não são capazes de afetar outras partes do sistema, também cria severas restrições no que diz respeito a integração de aplicações.
Foi a partir do iOS 8 que a Apple incluiu um mecanismo formal para integração entre Apps chamado de Extensões (Extensions em inglês). Através desse mecanismo o sistema operacional nos disponibiliza uma série de formas padronizadas para publicarmos funcionalidades que podem ser consumidas por outros Apps. Isso sem quebrar a segurança proporcionado pelo modelo de Sandbox, já que os Apps nunca conversam entre si, mas somente através desse mecanismos que o sistema operacional proporciona.
Vale notar que podemos confundir as extensões do iOS que são um recurso do sistema operacional, com as extensões da linguagem Swift.
Nessa unidade vamos conhecer as extensões do iOS e como podemos utiliza-la tanto para incluir funcionalidades interessantes a nossos Apps, como a criação de Widgets para a tela Hoje, como para expor recursos do nosso próprio App a outros, como a capacidade de compartilhar conteúdo em nossas próprias redes sociais ou criar teclados diferenciados.
Na prática dessa unidade vamos incluir uma extensão ao Traqt para ser adicionada a tela Hoje, listando as atividades do dia. Isso nos dara uma visão geral sobre o processo de inclusão de uma extensão.