Por Fernando B., João Victor, Rafael F. e Yulle. Introdução • Conhecido como “iPhone OS” antes de Junho de 2010. • Usado em produtos como o iPhone, o iPod Touch e o iPad. • A Apple não permite rodar em software de terceiros. • A interação é feita através de gestos e toque da tela. • A interface consiste de elementos de fácil manipulação com os dedos. • Há também um sensor que adapta a orientação da interface dependendo da posição do aparelho (retrato/paisagem) • O iOS deriva do Mac OS X, sendo, portanto, uma variação de sistema operacional do tipo Unix. • Aplicativos, tanto oficiais quanto desenvolvidos por terceiros, são distribuídos através da App Store. iOS 4 • Trouxe novos elementos que sempre foram muito aguardados pela comunidade, pois já se faziam presentes em plataformas móveis concorrentes. • FaceTime • Multitasking • iBooks • Pastas – categorias de aplicativos. Jailbreak • Dev-Team. • Jay Freeman (saurik). • A Apple® não dá garantia aos dispositivos jailbroken. • Criado para permitir a instalação e utilização de aplicativos não autorizados pela Apple®. • Possui app store própria (Cydia). • Muitos aplicativos que são barrados pela Apple® ganharam notoriedade na Cydia Store. Desenvolvimento • Em março de 2008 foi lançado o Software Development Kit (SDK) para o desenvolvimento de aplicativos. • Apesar de liberar o desenvolvimento, para carregar um aplicativo no aparelho é necessário pagar uma taxa. Para efeitos de testes, o SDK possui um “simulador de iPhone”. • Os aplicativos são escritos utilizando Objective-C. • O SDK contém quatro camadas de abstração: • A Cocoa Touch (para eventos relacionados com a interface, como toques e o uso do acelerômetro). • A camada de mídia (para eventos de audio, video e formatos de imagem, bem como animações). • A camada Core Services (para eventos de banco de dados, networking e threads). • E a camada OS X Kernel (XNU), para controle de energia, arquivos de sistema e segurança. Objective-C • Características: • Objective-C é apenas um conjunto de adições à linguagem C. Ela dá ao C suporte à construções orientadas a objetos, como as da Smalltalk. • Objective-C suporta polimorfismo, posing, categorias, e é uma linguagem dinâmica, com typing e binding dinâmicos. • Objective-C realiza chamadas de mensagem dinâmicas rapidamente. Exemplos de código • #import <stdio.h> #import <objc/Object.h> • int main( int argc, const char *argv[] ) { Gato *meuGato; @interface Gato: Object -(void) miau; meuGato = [Gato alloc]; meuGato = [meuGato init]; @end [meuGato miau]; metodos @implementation Gato [meuGato free]; -(void) miau { printf("Miaau!\n"); } @end return 0; } • @interface NovaClasse: SuperClasse { Declaração_de_variáveis; } Declaração_de_métodos; @end • @implementation NovaClasse Definição_de_métodos; @end • #import <stdio.h> #import <objc/Object.h> • int main( int argc, const char *argv[] ) { Gato *meuGato; @interface Gato: Object -(void) miau; meuGato = [Gato alloc]; meuGato = [meuGato init]; @end [meuGato miau]; metodos @implementation Gato [meuGato free]; -(void) miau { printf("Miaau!\n"); } @end return 0; } Comparação com Java SE e EE • Java SE • Plataforma Java Standard, com recursos padrões para desenvolvimento. • Máquina virtual Java para rodar aplicações multi-plataforma, o que difere do iOS. • Também possui orientação à objetos. • Java EE • Plataforma de programação mais avançada para servidores em Java. • Difere-se da Plataforma Java Standard (Java SE) pela adição de bibliotecas que fornecem funcionalidade para implementar software Java distribuído. • Arquitetura multicamada.