Introdução à Programação para iPhone (iOS)

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

description

 

Transcript of Introdução à Programação para iPhone (iOS)

Page 1: Introdução à Programação para iPhone (iOS)

Programação em Apple iOS

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

Cursos de Verão na Católica 2010

Page 2: Introdução à Programação para iPhone (iOS)

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

Page 3: Introdução à Programação para iPhone (iOS)

• 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

Page 4: Introdução à Programação para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (iOS)

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

Page 10: Introdução à Programação para iPhone (iOS)

Desenvolvendo para iOS

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

Page 11: Introdução à Programação para iPhone (iOS)

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

Page 12: Introdução à Programação para iPhone (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 para iPhone (iOS)

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

Page 14: Introdução à Programação para iPhone (iOS)

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

Page 15: Introdução à Programação para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (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 para iPhone (iOS)

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