Programação em Apple iOS Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt Cursos de Verão na Católica 2010
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
Apple iOS SDK 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 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-Controler Interface Builder: Actions e Outlets http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Hello World iPhone A Label and a Slider :-)      - Ligação da View ao Model          - Controller      - Interface Builder          - IBOutlet          - IBAction          LIVE CODING DEMO
Hello World iPhone A Label and a Slider :-) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Hello World iPhone A Label and a Slider :-) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
Exemplo iOS 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 2010 http://porto.ucp.pt/cvc/ Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt http://slideshare.net/jorgecardoso (tag: cvc2010) Código fonte:  http://db.tt/AOFOfA2

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

  • 1.
    Programação em AppleiOS Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt Cursos de Verão na Católica 2010
  • 2.
    Apple iOS SDKSoftware 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
  • 3.
    Apple iOS SDKXcode 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
  • 4.
    Apple iOS SDKApple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 5.
    Apple iOS SDKApple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 6.
    Apple iOS SDKApple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 7.
    Apple iOS SDKApple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 8.
    Apple iOS SDKApple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 9.
    Apple iOS SDKCocoa Touch Frameworks Bibliotecas de objectos, métodos, recursos, documentação http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 10.
    Desenvolvendo para iOShttp://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 11.
    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
  • 12.
    Model-View-Controler É umaarquitectura 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
  • 13.
    Model-View-Controler Model Gereos 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
  • 14.
    Model-View-Controler O Modele 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
  • 15.
    Model-View-Controler Interface Builder:Actions e Outlets http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 16.
    Hello World iPhoneA Label and a Slider :-)      - Ligação da View ao Model          - Controller      - Interface Builder          - IBOutlet          - IBAction          LIVE CODING DEMO
  • 17.
    Hello World iPhoneA Label and a Slider :-) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 18.
    Hello World iPhoneA Label and a Slider :-) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 19.
    Exemplo iOS 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! :-)
  • 20.
    Fim Cursos deVerão na Católica 2010 http://porto.ucp.pt/cvc/ Jorge C. S. Cardoso, Luís Gustavo Martins jorgecardoso@ieee.org, lmartins@porto.ucp.pt http://slideshare.net/jorgecardoso (tag: cvc2010) Código fonte:  http://db.tt/AOFOfA2