Programação em Apple iOS
Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]
Cursos de Verão na Católica 2011
Apple iOS SDK
● Software Development Kit (SDK) usado no desenvolvimento de aplicações
○ para iPhone, iPad, iPod Touch (i.e. dispositivos iOS)○ Gratuitamente disponível para download em:
http://developer.apple.com/technologies/tools/xcode.html
● Inclui:○ XCode IDE (Editor, Organizador de Projectos, …)○ Interface Builder (IB)○ iPhone / iPad Simulator○ Compilador e Linker
■ GCC e LLVM, para C, C++, ObjC 2.0 ○ Debugger, Instruments, …○ Mac e iOS Cocoa / Cocoa Touch APIs
● Xcode 3○ Ambiente integrado de desenvolvimento (IDE) de
aplicações■ para iPhone, iPad, iPod Touch e Mac■ Gratuíto e disponível para download em:
http://developer.apple.com/technologies/tools/xcode.html
Apple iOS SDK
Apple iOS SDK● Apple Application Programming Interfaces (APIs)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Apple iOS SDK● Apple Application Programming Interfaces (APIs)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Apple iOS SDK● Apple Application Programming Interfaces (APIs)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Apple iOS SDK● Apple Application Programming Interfaces (APIs)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Apple iOS SDK● Apple Application Programming Interfaces (APIs)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Apple iOS SDK● Cocoa Touch Frameworks
○ Bibliotecas de objectos, métodos, recursos, documentação
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Desenvolvendo para iOS
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Delegation● É um "Design Pattern" em que um determinado objecto
"delega" uma determinada tarefa num outro objecto○ O objecto em que é delegada essa tarefa é conhecido como
"delegate object"○ O delegate object é "especialista" naquela tarefa
Delegate Object
Some Object
A Delegation é uma alternativa à SubClassing (herança)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Model-View-Controler● É uma arquitectura de software em que as APIs Cocoa e
Cocoa Touch são baseadas
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Model-View-Controler● Model
○ Gere os dados e estado da aplicação○ Totalmente independente da Interface Gráfica (GUI) da aplicação○ Pode guardar os dados de forma persistente (e.g. num ficheiro em na
memória FLASH)○ Reutilizável (em diferentes "Views")
● View○ Apresenta os dados (i.e. o "Model") ao utilizador através de uma GUI○ Permite ao utilizador manipular e interagir com os dados (i.e. o "Model")○ Não armazena dados (exceptuando caches)○ Facilmente reutilizável e possível de ser configurado para representar
diferentes dados
● Controller○ Intermediário entre o Model e a View○ Actualiza a View quando o Model sofre alterações○ Actualiza o Model quando a View sofre alterações ○ É tipicamente aqui que a "lógica" da aplicação é implementada
Model-View-Controler● O Model e a View não comunicam directamente entre elas!!
○ O Model nada sabe sobre a View○ A View nada sabe sobre o Model○ O Controller sabe sobre os dois, e é o intermediário entre a View
e o Model
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Model-View-ControlerInterface Builder: Actions e Outlets
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Hello World iPhoneA Label and a Slider :-)
- Ligação da View ao Model - Controller
- Interface Builder - IBOutlet - IBAction
LIVE CODING DEMO
Hello World iPhoneA Label and a Slider :-)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Hello World iPhoneA Label and a Slider :-)
http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
ExemploiOS App - FractionCalculator - Uso do classe Fraction criada antes - é o nosso Model
- Criação da GUI (a View) - Criação do Controller e do Delegate
Live Coding Demo! :-)
Bibliografiahttp://www.amazon.co.uk/Learning-iPhone-Programming-Xcode-Store/dp/0596806434/ref=sr_1_1?ie=UTF8&qid=1315406330&sr=8-1
http://www.amazon.co.uk/Programming-Objective-C-2-0-Developers-Library/dp/0321566157/ref=sr_1_20?ie=UTF8&qid=1315406508&sr=8-20
Fim
Cursos de Verão na Católica 2011http://porto.ucp.pt/cvc/
Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]
http://slideshare.net/jorgecardoso (tag: cvc2011)