590 likes | 781 Views
iOS. Grupo: Adroaldo Deandrade André Bernard Mariana Scaff Rodrigo Joenk. O que é o iOS?. O iOS é o sistema operacional móvel desenvolvido e distribuído pela Apple, que está presente exclusivamente nos seus aparelhos . Definição da própria Apple sobre o iOS:
E N D
iOS Grupo: AdroaldoDeandrade André Bernard Mariana Scaff Rodrigo Joenk
O que é o iOS? • O iOS é o sistema operacional móvel desenvolvido e distribuído pela Apple, que está presente exclusivamente nos seus aparelhos. • Definição da própria Apple sobre o iOS: “iOS – O sistema operacional móvel mais avançado do mundo Com uma interface fácil de usar, recursos fantásticos e excelente estabilidade, o iOS é a base do iPhone, do iPad e do iPod touch. Mesmo que a concorrência tente acompanhar, as tecnologias e recursos presentes no iOS deixam os dispositivos da Apple anos à frente.” • O iOS vem instalado em todos aparelhos móveis da Apple, suas atualizações são gratuitas e podem ser feitas OTA.
História • Ele nasceu em 2007 para ser o SO do revolucionário celular da empresa, que mudou o conceito de Smartphone. • Surgiu a partir do Mac OSX (SO dos computadores da Apple, também exclusivo), o iOS foi, durante a apresentação do primeiro iPhone, chamado de “OSX que roda no iPhone” e evoluiu de uma maneira que os consumidores passaram a preferi-lo em detrimento da sua “inspiração” e hoje é o OSX que vem cada vez mais se tornando parecido com o iOS. • Desde que foi criado o iOS, a Apple lança uma nova versão para os aparelhos que o suportam, tornando a experiência iOS cada vez melhor, apesar de que ainda tem muito a evoluir em relação a alguns diferenciais dos seus concorrentes. • iOS: Uma história visual http://www.theverge.com/2011/12/13/2612736/ios-history-iphone-ipad
História – iOS 2.0 MobileMe é um serviço baseado em Cloud “das cavernas” que fornecia a sincronia de e-mail, calendário e contatos. Descontinuado esse ano, sendo totalmente substituído pelo iCloud.
História – iOS 3.0 • Spotlight é um sistema de busca que percorre todo o sistema. • USB & Bluetooth tethering é o compartilhamento da internet (3G), via USB e Bluetooth
História – iOS 4.0 • iAd é uma plataforma móvel de propaganda da Apple
História – iOS 4.1 • iTunes Ping foi uma tentativa de rede social de música criada pela Apple. Com o seu imenso insucesso, a Apple firmou parcerias com Facebook e Twitter recentemente.
História – iOS 4.2.1 • AirPlay é um serviço da Apple para o streming de conteúdo do dispositivo com iOS para uma AppleTV. • AirPrint é um serviço da Apple para conectar o dispositivo iOS a uma impressora e imprimir documentos via Wi-Fi
História – iOS 4.3 • PersonalHotspot é uma funcionalidade que “transforma” o seu dispositivo em um roteador e compartilha o seu 3G via Wi-Fi.
História – iOS 6.0 Passbook é um aplicativo nativo, que serve como uma carteira para guardar cartões de embarque, ingresso, cupons de desconto, cartões de fidelidade, etc.
Presença • O iOS está presente no iPhone, iPad, iPad Mini, iPod Touch e AppleTV (em uma versão modificada), portanto os números do SO surpreendem e mostram o quanto a Apple cresceu graças ao seu surgimento • Normalmente um aparelho suporta 2 ou 3 atualizações do iOS, portanto esse é o seu ciclo de vida “atualizado”.
Números • - Números fornecidos no evento de lançamento do iPhone (12 de Setembro desse ano): * Existem mais de 700.000 apps na AppStore (loja de aplicativos do iOS). * A média de apps que um consumidor possui instalado no seu aparelho é 100. * Até Junho de 2012, a Apple já tinha vendido 400 milhões de aparelhos com iOS. * Existem 200 milhões de consumidores usando o “iTunes na Nuvem”. * Existem 435 milhões de contas, com cartão de crédito associado, na iTunes Store (loja da Apple com músicas, videoclipes, filmes, séries, materiais escolares, podcasts, etc.). * As iTunes Stores estão disponíveis em 63 países, que, juntas, já foram responsáveis por 15 bilhões de downloads de “mídias”. • - Números fornecidos no lançamento do iPad Mini (23 de Outubro desse ano): * Lançado no dia 19 de setembro de 2012, o iOS 6 já está rodando em mais de 200 milhões de dispositivos, sendo a taxa de upgrade de software mais rápida da história, em qualquer plataforma. * Já são mais de 125 milhões de documentos armazenados no iCloud. * O Game Center já conta com 160 milhões de contas. * Já são mais de 1,5 milhão de livros disponível na iBookStore.
Espaço Ocupado pelo Sistema • O tamanho que o SO ocupa no aparelho é cada vez maior, isso é facilmente explicado pela quantidade cada vez maior de funcionalidades e serviços presentes no iOS, porém é um ponto que a Apple deve tentar otimizar nas próximas versões.
iCloud • Como cada vez mais o mundo está na “nuvem”, era de se esperar que a Apple lançasse o seu serviço de nuvem, para melhorar ainda mais a “experiência Apple” entre os dispositivos com Mac e iOS. • Definição da Apple sobre o seu serviço: “O iCloud armazena suas músicas, fotos, apps, e-mails, contatos, calendários, documentos e mais, além de enviar tudo isso remotamente para todos os seus dispositivos. Se você compra uma música, tira uma foto ou edita um evento no calendário no seu iPad, o iCloud faz com que tudo isso apareça no seu Mac, iPhone e também no seu iPod touch. E sem que você precise fazer nada.” • Enquanto você estiver com o iCloud ativado, sempre que o seu dispositivo iOS estiver sendo carregado e com a Wi-Fi ligada, ele automaticamente faz backup do seu aparelho e salva na nuvem. Também é possível mandar esse backup ser realizado a qualquer hora. • A qualquer momento é possível restaurar um aparelho do backup disponível no iCloud.
Aplicativos e Recursos Nativos • Existem diversos de aplicativos e recursos nativos que vem com o iOS e, como quase tudo na Apple, são exclusividade dos aparelho com o iOS. Os que estão destacados no site da própria empresa são: * Mapas – Na última versão do iOS, a Apple realizou um de seus sonhos: Ter um sistema sem a presença do Google. Para isso, nessa última versão foram excluídos o aplicativo nativo do Youtube e o antigos Mapas do Google foi substituído pelo novo controverso Mapas da Apple. A entrada da Apple acirra ainda mais a recente disputa dos mapas. Google, Nokia, Amazon e Apple são as 4 gigantes que começaram uma batalha pelo serviço de mapas, com ampla vantagem ao sistema mais antigo, o Google Maps. * Música – A Apple deve muito à música, tal como a música deve a Apple. Esse casamento já é antigo, desde de 2001 quando a Apple lançou o iPod e a iTunes Music Store em 2003, o mercado da música se alterou, tanto quanto a Apple ficou conhecida e utilizada ao redor do mundo. Com o seu iOS você pode ouvir música em qualquer lugar, como as suas músicas compradas estão na iTunes na Nuvem, você pode acessá-las em todos os seus dispositivos e baixa-las a qualquer momento. * Facetime – Serviço para a realização de vídeo-chamadas com qualquer outro aparelho que tenha iOS.
Aplicativos e Recursos Nativos * iMessage - Serviço de mensagens via Wi-Fi, gratuito e ilimitado, para troca de mensagens e envio de fotos, vídeos, localização e contatos. * Safari – Navegador de todos os dispositivos com iOS, que agora permite salvar páginas web para uma lista de leitura off-line e sincroniza as abas abertas via iCloud. * AirPlay - Reproduz o que estiver no seu dispositivo com iOS na sua TV, via Apple TV. Também espelha o que estiver na tela do seu dispositivo direto na sua TV. * Game Center – Como cada vez os aparelhos móveis vem dominando também o mundo dos games, nada melhor do que uma rede social de jogos. Com ele você pode se conectar a outros jogadores, comparar recordes em jogos, desafiar a quebrar seus recordes e jogar com pessoas do mundo todo, amigos ou não.
Concorrentes • O mundo dos smartphones é cada vez mais concorrido, tal como é a briga dos SO’s móveis. • Os principais concorrentes do iOS hoje são: Android e o Windows Phone • Essa concorrência é fantástica para nós, consumidores, pois quanto maior ela for, mais recursos inovadores e facilidades teremos para desfrutar no nosso dia-a-dia.
Vantagens iOS • A principal vantagem do iOS sobre seus concorrentes talvez seja a fluidez e simplicidade de utilização. Qualquer um que pegue um aparelho com iOS, já consegue manuseá-lo através da intuitiva interface multi-touch. Segundo as palavras da própria Apple, “tudo o que você toca é muito fácil, intuitivo e divertido” • A loja de aplicativo (AppStore) é outro enorme diferencial do iOS para seus concorrentes. Ela já conta com mais de 700 mil apps e jogos, todos passando por uma rígida série de regras e avaliações da própria empresa, o que garante um nível de qualidade excelente para os apps (apesar de escapar de vez em quando alguns “ilegais”). • A iTunes Store e iBookStore tornam a “experiência iOS” ainda mais completa e cativante. • O iOS é muito elogiado pelas pessoas que necessitam de acessibilidade, pois é um dos sistemas mais “acessíveis” do mundo.
Vantagens iOS: Segurança • A segurança do iOS também é outro ponto que chama a atenção. • Até hoje nunca ocorreu um caso, pelo menos que se tornou conhecido, de vírus ou malware. • Sempre que um aplicativo deseja utilizar-se de alguma informação do seu dispositivos (contatos, calendário, fotos, localização, lembretes) ele precisa de sua autorização. • Você pode definir uma senha para seu dispositivo e habilitar a função de apagar o conteúdo do aparelho após um certo número de tentativas erradas de desbloquear o aparelho. • Essa senha codifica e protege seus e-mails e também permite que apps de terceiros codifiquem seus dados armazenados. O iOS aceita comunicação de rede codificada para a proteção de informações durante a transmissão das mesmas. • Caso o seu dispositivo seja perdido ou roubado, o aplicativo “Buscar meu iPhone” pode localizá-lo em um mapa e apagar todos os seus dados remotamente. Quando recuperar o dispositivo, recupere todo o conteúdo a partir do backup mais recente.
Desvantagens iOS • Um dos principais problemas para os usuários mais avançados, é a falta de customização do iOS. A Apple faz um sistema excelente, porém não permite que ele seja modificado e customizado de uma forma mais incisiva pelo usuário. • Opreço dos dispositivos com iOS é elevado e, como vende cada vez mais, não há porque a Apple abaixar esse preço.
Exclusividade • A Apple sempre foi uma empresa fechada e isso tem seus lados bons e ruins. • O fato do iOS ser exclusivo da empresa de Cupertino, faz com que ele seja melhor que seus concorrentes em certos pontos e pior em outros. • Novamente, palavras da própria Apple: “Hardware e software feitos um para o outro. Como a Apple faz o hardware e o sistema operacional do iPad, iPhone e iPod touch, tudo é projetado para funcionar em conjunto. Assim, os apps aproveitam ao máximo todos os recursos de hardware como a tela Retina, a interface Multi-Touch, o acelerômetro, o giroscópio com três eixos, processadores gráficos acelerados e muito mais. O FaceTime é um exemplo perfeito disso. Ele usa a câmera frontal e a traseira, a tela, o microfone e a sua conexão Wi-Fi.”
Vantagens e Desvantagens da Exclusividade VANTAGENS: • Uma das vantagens é o desempenho e boa impressão do iOS sempre serem altos, pois a Apple pode testar o sistema em todos os aparelhos que o utilizarão antes de disponibilizar para o público. • Outra vantagem é a fluidez e facilidade com que as ferramentas e serviços exclusivos (citados anteriormente) funcionarão no iOS. DESVANTAGENS: • A principal desvantagem de ser um usuário de iOS é se vive em uma “prisão” e não tem como se comunicar com o “mundo exterior”, portanto a comunicação entre os aparelhos iOS funcionam perfeitamente, porém não com os aparelhos que tenham outro SO’s.
Jailbreak • Desde quando foi criado, iOS sempre foi “alvo” dos hackers, que queriam explorar ao máximo do sistema e customizá-lo da sua maneira. Foi nesse sentido que se criou o Jailbreak, que é o desbloqueio do aparelho para instalação de funções e mudar configurações que não são permitidas pela Apple. • No início da história do Jailbreak, sua finalidade era a instalação de apps de terceiros (a AppStore só surgiu em 2008, antes disso o iPhone só tinha os apps que já vinham nativamente). • Depois que a AppStore surgiu, o motivo do Jailbreak mudou, agora sua finalidade era ter acesso aos arquivos do sistema, instalação de temas personalizados e modificações no aparelho. • O Jailbreak oferece inúmeras vantagens ao seu aparelho, porém também o deixa vulnerável a ataques e erros no sistema. • Portanto só se faz Jailbreak por sua conta e risco, devendo saber como utilizá-lo da maneira positiva.
Relação Apple x Jailbreak • A Apple sempre faz algumas modificações visando dificultar o processo do Jailbreak, porém ela não o abomina completamente. • Muito das novidades que se tem no iOS são vindas do Jailbreak e muitas que virão, já estão hoje disponíveis nos aparelhos com Jailbreak. • Além de utilizar-se de ideias advindas do Cydia (aplicativo que se instala em todos os aparelhos que fazem Jailbreak, que é de onde se baixa tudo do Jailbreak), a Apple também já contratou hackers que fizeram sucesso no mundo “alternativo”.
Objective-C • Criada por Brad Cox eTim Love, com o intuito de adicionar as capacidades da linguagem SmallTalk à linguagem C. Era inicialmente conhecida por “Object-OrientedProgramming in C”, ou simplesmente, OOPC. • Objective-C adiciona os conceitos de orientação a objetos à linguagem C e a sobrepõe com novas palavras-chave e com a sintaxe de chamada de método de SmallTalk. • Herda sintaxe, tipos primitivos e fluxos de controle de C e adiciona elementos sintáticos para definição de classes e métodos.
Objective-C x Java • Por se tratar de uma linguagem que deriva do C (assim como o Java), acabamos tendo mais semelhanças do que diferenças entre as linguagens comparadas aqui. • Se formos analisar um trecho de código de Objective-C veremos que boa parte se parecerá muito com o C, enquanto em algumas linhas veremos linhas de código "abraçadas" por colchetes, estes trechos justamente tratam da parte orientada a objetos. • Em Java: intgetLength(List<String> list, int index) { return list.get(index).length(); } • Em Objective-C: - (int)getLengthWIthJavaUtilList:(JavaUtilList *)list withInt:index { return [(NSString *) [list getWithInt:index] length]; }
Objective-C x Java Ponteiros: • Java “protege” você de “bagunçar” a memória física omitindo a utilização dos ponteiros que dão ao programador o direito arbitrário de acesso direto a partes da memória. Assim, em Java você tem apenas acesso as primitivas nomeadas e as referências aos objetos criados. • No Objective-C você tem a liberdade de utilização dos ponteiros, o que leva a uma maior flexibilidade na programação, mas que também deve ser tratada com bastante responsabilidade, tendo em mente não ultrapassar os limites previstos ao programador. • Assim como no C, quando estamos trabalhando com ponteiros, deve se utilizar o operador unário (*).
Objective-C x Java #if: • A diretiva #ifpertence ao Objective-C e não possui estrutura análoga no Java. • Sua utilização é simples e serve para incluir ou omitir um bloco de texto dependendo do valor de uma expressão. Exemplo: #if LOG_OUTPUT > 1 NSLog(@"relatório contém %d novos registros",registerCount); #endif • Pode também ser utilizado #else também dentro do bloco.
Objective-C x Java Inicializaçãoautomática de variáveis: • Assim como é no Java, em Objective-C, uma variável pode ser declarada sem um valor inicial. Desta forma, o compilador assumirá um valor “default” para ela.
Objective-C x Java Garbage Collectorx Retain/Release: • Enquanto no Java não precisamos nos preocupar com objetos que perdem sua utilidade durante o tempo de execução - pois esses são coletados pelo GC- no Objective-C devemos tratar esta situação manualmente com o a utilização do retain ou release. Retain para que o objeto seja mantido e Release quando o mesmo não seja mais necessário, liberando a memória utilizada por ele. • Podem também ser criadas auto-release pools onde uma quantidade indefinida de objetos podem ser incluídos e posteriormente descarregados (flush).
Objective-C x Java • Existe um conversor automático de código Java para Objective-C fornecido pelo Google: https://code.google.com/p/j2objc/
Desenvolvimento • A Apple fornece suporte completo a desenvolvedores com diversas ferramentas que trabalham juntas para tornar o processo de implementação mais simples. • O desenvolvimento voltado a iOS é baseado na linguagem de programação Objective-C e no framework Cocoa Touch.
Cocoa Touch • A estrutura do sistema operacional é dividida em quadro camadas. Cocoa Touch seria a camada de mais alto nível, a qual contém os serviços essenciais para a construção de aplicativos iOS. (Fonte da imagem: iMasters Pro)
Cocoa Touch • Cocoa Touch contém uma biblioteca de APIs, objetos e runtimes que herdam a camada de desenvolvimento do sistema operacional. • Ele contém funções específicas para iOS como multitouch, views, gps, acelerômetro, etc. • A sua maior parte é implementada em Objective-C. • Foi projetado em cima do modelo Model-View-Controller (MVC), portanto os aplicativos desenvolvidos devem seguir o mesmo modelo. • Consiste, principalmente, nos frameworks Foundation e UIKit.
Foundation • Define o comportamento de objetos e introduz mecanismos para gerência de memória; • Suporta persistência de dados; • Fornece objetos para tipos primitivos de dados, como valores numéricos, strings e coleções; • Fornece classes utilitárias para acessar serviços do sistema operacional.
UIKit • Fornece classes para a construção e gerenciamento de interfaces de usuário para aplicativos iOS. • Fornece suporte a tratadores de evento, animações na interface, base para desenhos 2D, controles para interface com touch screen. • Existem três formas de criar uma interface gráfica para iOS usando o UIKit: • Usando o Interface Builder para arrastar elementos gráficos na tela de construção; • Criando, posicionando e configurando os elementos gráficos através de programação; • Implementando objetos gráficos customizados através de herança da classe UIView ou subclasses dela.
MVC em desenvolvimento iOS • As vantagens da utilização do padrão MVC em aplicativos iOS são numerosas. • As interfaces ficam mais definidas e com mais qualidade, os aplicativos em si tendem a ser mais facilmente entendidos e melhorados. • Se o seu aplicativo incorpora um serviço do Cocoa Touch que é baseado em MVC, ele funcionará melhor se também seguir as regras do modelo. • O objetivo central é poder reutilizar uma mesma entidade (model) para diferentes interfaces (views).
Componentes Existem muitos componentes e bibliotecas para desenvolvimento de aplicações iOS disponíveis em repositórios como: http://cocoaobjects.com/ http://www.cocoacontrols.com/
iOS SDK • Para ter acesso a ferramentas de desenvolvimento, documentação, exemplos de código e fórum de discussão da Apple, é necessário o cadastro no iPhone DeveloperProgramo qual possui dois tipos de cadastros: o gratuito e o pago. Assinando uma quantia anual, o desenvolvedor tem direito a testar seu aplicativo em um aparelho físico e publicá-lo na AppStore.