O IOS 5 Arquitetura e SDK Quadros

Anterior Índice Próxima
A História do iOS Juntar o iOS da Apple 5 o Programa de desenvolvimento de

Saiba SwiftUI e tomar o seu Desenvolvimento do iOS para o Próximo Nível
SwiftUI Essentials – iOS 14 Edição do livro já está disponível em versão impressa (r$39,99) e-book (r$29,99) edições. Aprender…

Comprar Impressãopré-Visualização do Livro

Quando desenvolvemos aplicativos para o iPad, a Apple não nos permitem acesso directo a qualquer deste hardware. De fato, toda interação de hardware ocorre exclusivamente por meio de várias camadas diferentes de software que atuam como intermediários entre o código do aplicativo e o hardware do dispositivo. Essas camadas compõem o que é conhecido como sistema operacional. No caso do iPad, este sistema operacional é conhecido como iOS.

para obter uma melhor compreensão do ambiente de desenvolvimento do iPad, Este capítulo examinará em detalhes as diferentes camadas que compõem o sistema operacional iOS 5 e as estruturas que nos permitem, como desenvolvedores, escrever aplicativos para iPad.

Conteúdo

o iPhone OS torna iOS

Antes do lançamento do iPad em 2010, o sistema operacional em execução no iPhone era geralmente conhecido como iPhone OS. Dado que o sistema operacional usado para o iPad é essencialmente o mesmo que no iPhone, não fazia muito sentido nomeá-lo iPad OS. Em vez disso, a Apple decidiu adotar um nome mais genérico e não específico do dispositivo para o sistema operacional. Dada a predileção da Apple por nomes prefixados com a letra ‘i’ (iTunes, iBookstore, iMac etc), a escolha lógica era, é claro, iOS. Infelizmente, o iOS também é o nome usado pela Cisco para o sistema operacional em seus roteadores (a Apple, ao que parece, também tem uma predileção por ignorar marcas registradas). Ao realizar uma pesquisa na internet para iOS, portanto, esteja preparado para ver um grande número de resultados para o iOS da Cisco que não têm absolutamente nada a ver com o iOS da Apple.

uma visão geral da arquitetura iOS 5

como mencionado anteriormente, o iOS consiste em várias camadas de software diferentes, cada uma das quais fornece estruturas de programação para o desenvolvimento de aplicativos executados em cima do hardware subjacente.

essas camadas do sistema operacional podem ser apresentadas diagramaticamente, conforme ilustrado na figura 4-1:

A arquitetura de iOS 5

Figura 4-1

Alguns diagramas concebido graficamente retratam o software iOS pilha de mostrar uma caixa adicional posicionado acima do Cocoa Touch camada para indicar as aplicações em execução no dispositivo. No diagrama acima, não o fizemos, pois isso sugeriria que a única interface disponível para o aplicativo é o Cocoa Touch. Na prática, um aplicativo pode chamar diretamente qualquer uma das camadas da pilha para executar tarefas no dispositivo físico.

dito isso, no entanto, cada camada do sistema operacional fornece um nível crescente de abstração longe da complexidade de trabalhar com o hardware. Como desenvolvedor iOS, você deve, portanto, sempre procurar soluções para seus objetivos de programação nas estruturas localizadas nas camadas iOS de nível superior antes de recorrer à escrita de código que chega às camadas de nível inferior. Em geral, quanto maior o nível de camada para a qual você Programa, menos esforço e menos linhas de código você terá que escrever para atingir seu objetivo. E como qualquer programador veterano lhe dirá, quanto menos código você tiver para escrever, menos oportunidade terá de introduzir bugs.

agora que identificamos as várias camadas que compõem o iOS 5, agora podemos examinar mais detalhadamente os Serviços fornecidos por cada camada e as estruturas correspondentes que disponibilizam esses serviços para nós como desenvolvedores de aplicativos.

a camada Cocoa Touch

a camada Cocoa Touch fica na parte superior da pilha do iOS e contém as estruturas mais comumente usadas pelos desenvolvedores de aplicativos do iPad. Cocoa Touch é escrito principalmente em Objective-C, é baseado no padrão Mac OS X Cocoa API (como encontrado em computadores desktop e laptop da Apple) e foi estendido e modificado para atender às necessidades do hardware do iPad.

a Cocoa Touch layer fornece as seguintes estruturas para o desenvolvimento de aplicativos para iPad:

UIKit Framework (UIKit.framework)

o framework UIKit é uma interface de programação baseada em Objective-C vasta e rica em recursos. É, sem dúvida, a estrutura com a qual você passará a maior parte do tempo trabalhando. Livros inteiros poderiam, e provavelmente serão, escritos apenas sobre a estrutura do UIKit. Alguns dos principais recursos do UIKit são os seguintes:

  • criação e gerenciamento de interface do Usuário(campos de texto, botões, rótulos, cores, fontes etc)
  • Gerenciamento do ciclo de vida do aplicativo
  • manipulação de eventos do aplicativo (por exemplo, tela de toque de interação com o usuário)
  • Multitarefa
  • Impressão sem Fio
  • proteção de Dados através de criptografia
  • Cortar, copiar, e colar a funcionalidade
  • Web e texto de apresentação de conteúdo e gerenciamento de
  • manipulação de Dados
  • Inter-integração de aplicações
  • notificação de envio em conjunto com o Serviço de Notificação por Push
  • notificações Locais (um mecanismo através do qual uma aplicação em execução no plano de fundo pode ganhar a atenção do usuário)
  • Acessibilidade
  • Acelerômetro, bateria, sensor de proximidade, câmara e biblioteca de fotos interação
  • tela de Toque de reconhecimento de gestos
  • compartilhamento de Arquivo (a capacidade de fazer a aplicação ficheiros armazenados no dispositivo disponível via iTunes)
  • Blue tooth, com base peer-to-peer de conectividade entre dispositivos
  • Conexão de monitores externos

para começar uma sensação Para a riqueza deste quadro vale a pena gastar algum tempo de navegação da Apple UIKit material de referência que está disponível on-line em:

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIKit_Framework/index.html

Mapa Kit De Quadro (MapKit.framework)

se você passou algum tempo apreciável com um iPad, é provável que você precise usar o aplicativo Maps mais de uma vez, seja para obter um mapa de uma área específica ou para gerar direções de direção para levá-lo ao destino pretendido. A estrutura do Map Kit fornece uma interface de programação que permite criar recursos baseados em mapas em seus próprios aplicativos. Isso permite que você, entre outras coisas, exiba mapas roláveis para qualquer local, exiba o mapa correspondente à localização geográfica atual do dispositivo e anote o mapa de várias maneiras.

serviço de notificação por Push

o serviço de notificação por Push permite que os aplicativos notifiquem os usuários de um evento, mesmo quando o aplicativo não está sendo executado no dispositivo. Desde a introdução deste serviço, ele tem sido mais comumente usado por aplicativos baseados em notícias. Normalmente, quando há notícias de última hora, o serviço gerará uma mensagem no dispositivo com o título de notícias e fornecerá ao usuário a opção de carregar o aplicativo de notícias correspondente para ler mais detalhes. Este alerta é normalmente acompanhado por um alerta de áudio e vibração do dispositivo. Esse recurso deve ser usado com moderação para evitar incomodar o usuário com interrupções frequentes.

estrutura da interface do Usuário da mensagem (MessageUI.framework)

o framework message UI fornece tudo o que você precisa para permitir que os usuários componham e enviem mensagens de E-mail de dentro do seu aplicativo. Na verdade, a estrutura ainda fornece os elementos da interface do Usuário através dos quais o usuário insere as informações de endereçamento de E-mail e o conteúdo da mensagem. Alternativamente, essas informações podem ser pré-definidas em seu aplicativo e, em seguida, exibidas para o usuário Editar e aprovar antes do envio.

estrutura da interface do usuário do catálogo de endereços (AddressUI.framework)

dado que uma função-chave do iPad é como um dispositivo de comunicação e assistente digital, não deve ser uma surpresa que toda uma estrutura seja dedicada à integração dos dados do catálogo de endereços em seus próprios aplicativos. O objetivo principal do framework é permitir que você acesse, exiba, edite e insira informações de contato do catálogo de endereços do iPad de dentro de seu próprio aplicativo.

Quadro Do Jogo (GameKit.framework)

o Game Kit framework fornece conectividade ponto a ponto e comunicação de voz entre vários dispositivos e USUÁRIOS, permitindo que aqueles que executam o mesmo aplicativo interajam. Quando esse recurso foi introduzido pela primeira vez, foi antecipado pela Apple que seria usado principalmente em jogos para vários jogadores (daí a escolha do nome), mas os possíveis aplicativos para esse recurso claramente se estendem muito além do desenvolvimento de jogos.

iad Framework (iAd.framework)

o objetivo do Framework iAd é permitir que os desenvolvedores incluam banners publicitários em seus aplicativos. Todos os anúncios são veiculados pelo próprio serviço de anúncios da Apple.

Event Kit UI Framework

o Event Kit UI framework foi introduzido no iOS 4 e é fornecido para permitir que os Eventos do calendário sejam acessados e editados de dentro de um aplicativo.

Estrutura De Contas (Contas.framework)

o iOS 5 apresenta o conceito de contas do sistema. Estes permitem essencialmente que as informações da conta para outros serviços sejam armazenadas no dispositivo iOS e acessadas a partir do Código do aplicativo. Atualmente, as contas do sistema são limitadas a contas do Twitter, embora outros serviços como o Facebook provavelmente apareçam em versões futuras do iOS. O objetivo da estrutura de contas é fornecer uma API que permita que os aplicativos acessem e gerenciem essas contas do sistema.

Twitter Framework (Twitter.framework)

a estrutura do Twitter permite que a integração do Twitter seja adicionada aos aplicativos. A estrutura opera em conjunto a estrutura de contas para obter acesso às informações da conta do usuário no Twitter.

a camada de mídia do iOS

a função da camada de mídia é fornecer ao iOS recursos de áudio, vídeo, Animação e gráficos. Tal como acontece com as outras camadas que compõem a pilha iOS, a camada de mídia compreende uma série de estruturas que podem ser utilizadas ao desenvolver aplicativos para iPad. Nesta seção, veremos cada um por sua vez.

Core Video Framework (CoreVideo.framework)

o Core Video Framework fornece suporte de buffer para o Core Media framework. Embora isso possa ser utilizado por desenvolvedores de aplicativos, normalmente não é necessário usar essa estrutura.

Estrutura De Texto Principal (CoreText.framework)

o iOS Core Text framework é uma API baseada em C projetada para facilitar o manuseio de requisitos avançados de layout de texto e renderização de fontes.

Estrutura De E/S De Imagem (ImageIO.framework)

o framework de E/S de imagem, cujo objetivo é facilitar a importação e exportação de dados de imagem e metadados de imagem, foi introduzido no iOS 4. A estrutura suporta uma ampla gama de formatos de imagem, incluindo PNG, JPEG, tiff e GIF.

Estrutura Da Biblioteca De Ativos (AssetsLibrary.framework)

a Biblioteca Assets fornece um mecanismo para localizar e recuperar arquivos de vídeo e foto localizados no dispositivo iPad. Além de acessar imagens e vídeos existentes, essa estrutura também permite que novas fotos e vídeos sejam salvos no álbum de fotos padrão do dispositivo.

Core Graphics Framework (CoreGraphics.framework)

o iOS Core Graphics Framework (também conhecido como Quartz 2D API) fornece um mecanismo de renderização bidimensional leve. Os recursos desta estrutura incluem criação e apresentação de documentos PDF, desenho baseado em vetor, camadas transparentes, desenho baseado em caminho, renderização anti-aliased, manipulação e gerenciamento de cores, renderização de imagem e gradientes. Aqueles familiarizados com a API Quartz 2D em execução no MacOS X terão o prazer de saber que a implementação desta API é a mesma no iOS.

Core Image Framework (CoreImage.framework)

uma nova estrutura introduzida com o iOS 5 fornecendo um conjunto de recursos de filtragem e manipulação de vídeo e imagem para desenvolvedores de aplicativos.

Estrutura Do Núcleo De Quartzo (QuartzCore.framework)

o objetivo do Quartz Core framework é fornecer recursos de animação no iPad. Ele fornece a base para a maioria dos efeitos visuais e animação usados pela estrutura UIKit e fornece uma interface de programação baseada em Objective-C para a criação de animação especializada em aplicativos para iPad.

estrutura OpenGL ES (OpenGLES.framework)

por muitos anos, o padrão da indústria para desenho gráfico 2D e 3D de alto desempenho foi OpenGL. Desenvolvido originalmente pela extinta a Silicon Graphics Inc. (SGI) durante a década de 1990, na forma de GL, aberto versão dessa tecnologia (OpenGL) está agora sob os cuidados de um consórcio sem fins lucrativos constituída por um número de grandes empresas, incluindo a Apple, Inc., Intel, Motorola e ARM Holdings.OpenGL for Embedded Systems (ES) é uma versão leve da especificação completa do OpenGL projetada especificamente para dispositivos menores, como o iPad.

o iOS 3 ou posterior suporta OpenGL ES 1.1 e 2.0 em determinados modelos do iPhone (como o iPhone 3GS e o iPhone 4). Versões anteriores do iOS e modelos de dispositivos mais antigos suportam apenas OpenGL ES versão 1.1.Como Baixar E Instalar Minecraft.framework)

o framework GLKit é uma API baseada em Objective-C projetada para facilitar a tarefa de criar aplicativos baseados em OpenGL ES.Como Baixar E Instalar Minecraft No Minecraft 1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.framework)

o aplicativo banca de jornal é um novo recurso do iOS 5 e destina-se a ser um local central para os usuários terem acesso a jornais e revistas. A estrutura do NewsstandKit permite o desenvolvimento de aplicativos que utilizam este novo serviço.O iOS é capaz de suportar áudio em AAC, Apple Lossless (ALAC), A-law, IMA/ADPCM, Linear PCM, µ-law, DVI/Intel ima ADPCM, Microsoft GSM 6.10 e formatos AES3-2003 através do suporte fornecido pelas seguintes estruturas.

estrutura da Fundação AV (AVFoundation.framework)

uma estrutura baseada em Objective-C projetada para permitir a reprodução, gravação e gerenciamento de conteúdo de áudio.

Core Audio Frameworks (CoreAudio.quadro, AudioToolbox.quadro e AudioUnit.framework)

os frameworks que compõem o Core Audio para iOS definem tipos de áudio suportados, reprodução e gravação de arquivos e fluxos de áudio e também fornecem acesso às unidades de processamento de áudio integradas do dispositivo.

Open Audio Library (OpenAL)

OpenAL é uma tecnologia de plataforma cruzada usada para fornecer efeitos de áudio 3D de alta qualidade (também conhecido como áudio posicional). O áudio posicional pode ser usado em uma variedade de aplicativos, embora seja normalmente usado para fornecer efeitos sonoros em jogos.

Media Player Framework (MediaPlayer.framework)

a estrutura do iOS Media Player é capaz de reproduzir vídeo .mov, .mp4,.m4v, E.Formatos 3gp em uma variedade de padrões de compressão, resoluções e taxas de quadros.

Core Midi Framework (CoreMIDI.Framework)

introduzido no iOS 4, o Core MIDI framework fornece uma API para aplicativos interagirem com dispositivos compatíveis com MIDI, como sintetizadores e teclados através do conector dock do iPad.

a camada iOS Core Services

a camada iOS Core Services fornece grande parte da base sobre a qual as camadas referenciadas anteriormente são construídas e consiste nas seguintes estruturas.

Estrutura Do Catálogo De Endereços (Livro De Endereços.framework)

a estrutura do catálogo de endereços fornece acesso programático ao banco de dados de contatos do catálogo de endereços do iPad, permitindo que os aplicativos recuperem e modifiquem entradas de contato.

Quadro CFNetwork (CFNetwork.framework)

o CFNetwork framework fornece uma interface baseada em C para a pilha de protocolos de rede TCP/IP e acesso de baixo nível a soquetes BSD. Isso permite que o código do aplicativo seja escrito que funcione com servidores HTTP, FTP e nome de domínio e estabeleça conexões seguras e criptografadas usando Secure Sockets Layer (SSL) ou Transport Layer Security (TLS).

Core Data Framework (CoreData.framework)

esta estrutura é fornecida para facilitar a criação de modelagem e armazenamento de dados em aplicativos baseados em Model-View-Controller (MVC). O uso do Core Data framework reduz significativamente a quantidade de código que precisa ser escrito para executar tarefas comuns ao trabalhar com dados estruturados dentro de um aplicativo.

Core Foundation Framework (CoreFoundation.framework)

o Core Foundation framework é uma estrutura baseada em C que fornece funcionalidades básicas, como tipos de dados, manipulação de string, gerenciamento de dados de bloco bruto, manipulação de URL, threads e loops de execução, data e hora, manipulação XML básica e comunicação de porta e soquete. Recursos XML adicionais além daqueles incluídos com esta estrutura são fornecidos através da biblioteca libXML2. Embora esta seja uma interface baseada em C, a maioria dos recursos do Core Foundation framework também está disponível com wrappers Objective-C por meio do Foundation Framework.

Core Media Framework (CoreMedia.framework)

o Core Media framework é a base de nível inferior sobre a qual a camada de Fundação AV é construída. Embora a maioria das tarefas de áudio e vídeo possa, e de fato deve, ser realizada usando a estrutura AV Foundation de nível superior, o acesso também é fornecido para situações em que o controle de nível inferior é exigido pelo desenvolvedor de aplicativos iOS.

Core Telephony Framework (CoreTelephony.framework)

a estrutura de telefonia Central do iOS é fornecida para permitir que os aplicativos interroguem O dispositivo para obter informações sobre o provedor de serviços de telefonia celular atual e para receber notificação de eventos relacionados à telefonia.Como Baixar E Instalar Minecraft.framework)

uma API projetada para fornecer aos aplicativos acesso ao calendário e alarmes no dispositivo.

Estrutura Da Fundação (Fundação.framework)

o Framework Foundation é o framework Objective-C padrão que será familiar para aqueles que programaram em Objective-C em outras plataformas (provavelmente Mac OS X). Essencialmente, isso consiste em wrappers Objective-C em torno de grande parte da estrutura de Base Central baseada em C.

Estrutura De Localização Central (CoreLocation.framework)

Localização principal framework permite obter a localização geográfica atual do dispositivo (latitude, longitude e altitude) e leituras da bússola, com seus próprios aplicativos. O método usado pelo dispositivo para fornecer coordenadas dependerá dos dados disponíveis no momento em que as informações são solicitadas e do suporte de hardware fornecido pelo modelo específico do iPad no qual o aplicativo está sendo executado (GPS e bússola são apresentados apenas em modelos recentes). Isso será baseado em leituras de GPS, Dados de rede Wi-Fi ou triangulação de torre de celular (ou alguma combinação dos três).

Mobile Core Services Framework (MobileCoreServices.framework)

o iOS Mobile Core Services framework fornece a base para o mecanismo Uniform Type Identifiers (UTI) da Apple, um sistema para especificar e identificar tipos de dados. Uma vasta gama de identificadores predefinidos foi definida pela Apple, incluindo diversos tipos de dados como texto, RTF, HTML, JavaScript, PowerPoint .arquivos ppt, imagens do PhotoShop e arquivos MP3.

Quadro Do Jogo Da Loja (StoreKit.framework)

o objetivo do framework Store Kit é facilitar as transações comerciais entre seu aplicativo e a Apple App Store. Antes da versão 3.0 do iOS, só era possível cobrar um cliente por um aplicativo no momento em que o compraram na App Store. o iOS 3.0 introduziu o conceito de “compra no aplicativo”, pelo qual o usuário pode ter a opção de fazer pagamentos adicionais de dentro do aplicativo. Isso pode, por exemplo, envolver a implementação de um modelo de assinatura para um aplicativo, a compra de funcionalidades adicionais ou até mesmo a compra de um carro mais rápido para você dirigir em um jogo de corrida.

biblioteca SQLite

permite que um banco de dados leve baseado em SQL seja criado e manipulado de dentro do seu aplicativo para iPad.

Estrutura De Configuração Do Sistema (Configuração Do Sistema.framework)

a estrutura de configuração do sistema permite que os aplicativos acessem as configurações de rede do dispositivo para estabelecer informações sobre a “acessibilidade” do dispositivo (por exemplo, se a conectividade Wi-Fi ou celular está ativa e se e como o tráfego pode ser roteado para um servidor).

Quick Look Framework (QuickLook.framework)

o Quick Look framework fornece um mecanismo útil para exibir visualizações do conteúdo dos tipos de arquivos carregados no dispositivo (normalmente por meio de uma conexão de internet ou rede) para os quais o aplicativo ainda não fornece suporte. Os tipos de formato de arquivo suportados por esta estrutura incluem iWork, documento do Microsoft Office, formato de Rich Text, Adobe PDF, arquivos de imagem, Público.arquivos de texto e vírgula separados (CSV).

a camada iOS Core OS

a camada Core OS ocupa a posição inferior da pilha iOS e, como tal, fica diretamente na parte superior do hardware do dispositivo. A camada fornece uma variedade de serviços, incluindo rede de baixo nível, acesso a Acessórios Externos e os serviços usuais do sistema operacional fundamental, como gerenciamento de memória, manuseio do sistema de arquivos e threads.

Acelerar Quadro (Acelerar.framework)

o Accelerate Framework fornece uma API baseada em C otimizada para Hardware para executar tarefas e cálculos complexos e de grande número de matemática, vetor, processamento de sinal digital (DSP) e processamento de imagem.

Estrutura De Acessórios Externos (ExternalAccessory.framework)

fornece a capacidade de interrogar e se comunicar com acessórios externos conectados fisicamente ao iPad através do conector dock de 30 pinos ou sem fio via Bluetooth.

Estrutura De Segurança (Segurança.framework)

O iOS quadro de Segurança que fornece todas as interfaces de segurança que você esperaria encontrar em um dispositivo que pode se conectar a redes externas, incluindo certificados, chaves públicas e privadas, políticas de fidedignidade, chaveiros, criptografia, digere e Hash-based Message Authentication Code (HMAC).

System (LibSystem)

como mencionamos anteriormente, o iOS é construído sobre uma base semelhante ao UNIX. O componente do sistema da camada principal do sistema operacional fornece a mesma funcionalidade de qualquer outro sistema operacional UNIX. Esta camada inclui o kernel do sistema operacional (baseado no kernel Mach desenvolvido pela Carnegie Mellon University) e drivers de dispositivo. O kernel é a base sobre a qual toda a plataforma iOS é construída e fornece a interface de baixo nível para o hardware subjacente. Entre outras coisas, o kernel é responsável pela alocação de memória, gerenciamento do ciclo de vida do processo, entrada/saída, comunicação entre processos, gerenciamento de threads, rede de baixo nível, acesso ao sistema de arquivos e gerenciamento de threads.

como desenvolvedor de aplicativos, seu acesso às interfaces do sistema é restrito por motivos de segurança e estabilidade. As interfaces disponíveis para você estão contidas em uma biblioteca baseada em C chamada LibSystem. Tal como acontece com todas as outras camadas da pilha do iOS, essas interfaces devem ser usadas apenas quando você tiver certeza absoluta de que não há como atingir o mesmo objetivo usando uma estrutura localizada em uma camada superior do iOS.

aprenda SwiftUI e leve seu desenvolvimento iOS para o próximo nível
Swiftui Essentials-o livro iOS 14 Edition já está disponível nas edições impressa (US$39,99) e eBook (US$29,99). Aprender…

Comprar Impressãopré-Visualização do Livro

Anterior Índice Próxima
A História do iOS Juntar o iOS da Apple 5 o Programa de desenvolvimento de

Deixe uma resposta

O seu endereço de email não será publicado.