introdução à programação para iphone (ios)
DESCRIPTION
TRANSCRIPT
Programação em Apple iOS
Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]
Cursos de Verão na Católica 2010
Apple iOS SDK
• Software Development Kit (SDK) usado no desenvolvimento de aplicaçõeso para iPhone, iPad, iPod Touch (i.e. dispositivos iOS)o Gratuitamente disponível para download em:
http://developer.apple.com/technologies/tools/xcode.html
• Inclui:o XCode IDE (Editor, Organizador de Projectos, …)o Interface Builder (IB)o iPhone / iPad Simulatoro Compilador e Linker
GCC e LLVM, para C, C++, ObjC 2.0 o Debugger, Instruments, …o Mac e iOS Cocoa / Cocoa Touch APIs
• Xcode 3o 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
o 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 objectoo O objecto em que é delegada essa tarefa é conhecido como "delegate
object"o 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
o Gere os dados e estado da aplicaçãoo Totalmente independente da Interface Gráfica (GUI) da aplicaçãoo Pode guardar os dados de forma persistente (e.g. num ficheiro em na memória
FLASH)o Reutilizável (em diferentes "Views")
• Viewo Apresenta os dados (i.e. o "Model") ao utilizador através de uma GUIo Permite ao utilizador manipular e interagir com os dados (i.e. o "Model")o Não armazena dados (exceptuando caches)o Facilmente reutilizável e possível de ser configurado para representar
diferentes dados
• Controllero Intermediário entre o Model e a Viewo Actualiza a View quando o Model sofre alteraçõeso Actualiza o Model quando a View sofre alterações o É 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 O Model nada sabe sobre a Viewo A View nada sabe sobre o Modelo 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! :-)
Fim
Cursos de Verão na Católica 2010http://porto.ucp.pt/cvc/
Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]
http://slideshare.net/jorgecardoso (tag: cvc2010)
Código fonte: http://db.tt/AOFOfA2