21
Programação em Apple iOS Jorge C. S. Cardoso, Luís Gustavo Martins [email protected], [email protected] Cursos de Verão na Católica 2011

Introdução à programação em Android e iOS - iOS

Embed Size (px)

DESCRIPTION

Slides usados na edição de 2011 do Curso de Verão da UCP (http://www2.porto.ucp.pt/cvc/?details=124)

Citation preview

Page 1: Introdução à programação em Android e iOS - iOS

Programação em Apple iOS

Jorge C. S. Cardoso, Luís Gustavo [email protected], [email protected]

Cursos de Verão na Católica 2011

Page 2: Introdução à programação em Android e iOS - iOS

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

Page 3: Introdução à programação em Android e iOS - iOS

● 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

Page 4: Introdução à programação em Android e iOS - iOS

Apple iOS SDK● Apple Application Programming Interfaces (APIs)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 5: Introdução à programação em Android e iOS - iOS

Apple iOS SDK● Apple Application Programming Interfaces (APIs)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 6: Introdução à programação em Android e iOS - iOS

Apple iOS SDK● Apple Application Programming Interfaces (APIs)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 7: Introdução à programação em Android e iOS - iOS

Apple iOS SDK● Apple Application Programming Interfaces (APIs)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 8: Introdução à programação em Android e iOS - iOS

Apple iOS SDK● Apple Application Programming Interfaces (APIs)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 9: Introdução à programação em Android e iOS - iOS

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

Page 10: Introdução à programação em Android e iOS - iOS

Desenvolvendo para iOS

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 11: Introdução à programação em Android e iOS - iOS

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

Page 12: Introdução à programação em Android e iOS - iOS

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

Page 13: Introdução à programação em Android e iOS - iOS

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

Page 14: Introdução à programação em Android e iOS - iOS

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

Page 15: Introdução à programação em Android e iOS - iOS

Model-View-ControlerInterface Builder: Actions e Outlets

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 16: Introdução à programação em Android e iOS - iOS

Hello World iPhoneA Label and a Slider :-)

- Ligação da View ao Model - Controller

- Interface Builder - IBOutlet - IBAction

LIVE CODING DEMO

Page 17: Introdução à programação em Android e iOS - iOS

Hello World iPhoneA Label and a Slider :-)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 18: Introdução à programação em Android e iOS - iOS

Hello World iPhoneA Label and a Slider :-)

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter

Page 19: Introdução à programação em Android e iOS - iOS

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! :-)

Page 20: Introdução à programação em Android e iOS - iOS

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

Page 21: Introdução à programação em Android e iOS - iOS

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)