Programação em Apple iOS

  Cursos de Verão na Católica 2011




    Jorge C. S. Cardoso, Luís Gustavo Martins
  jorgecardoso@ieee.org, lmartins@porto.ucp.pt
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! :-)
Bibliografia
http://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 2011
     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: cvc2011)

Mais conteúdo relacionado

PDF
Introdução ao android - siecomp 2015.1
PPT
Introdução à Programação para iPhone (iOS)
PDF
Curso Básico Android - Aula 01
PDF
Apresentacao android por Júlio Cesar Bueno Cotta
PDF
Phonegap
PDF
Desenvolvendo para Android com PhoneGap
PPT
Introdução à programação em Android SENAC 17.06.2013
PDF
Android: Conheça o Futuro Inevitável
Introdução ao android - siecomp 2015.1
Introdução à Programação para iPhone (iOS)
Curso Básico Android - Aula 01
Apresentacao android por Júlio Cesar Bueno Cotta
Phonegap
Desenvolvendo para Android com PhoneGap
Introdução à programação em Android SENAC 17.06.2013
Android: Conheça o Futuro Inevitável

Semelhante a Introdução à programação em Android e iOS - iOS (20)

PDF
Worklight exemplo
PDF
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
PDF
Minicurso Intel XDK
PDF
Minicurso Intel XDK
PDF
Oficina Intel XDK - 1ª ETEC Camp
PPTX
Aula02 android hands_on
PDF
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
PPTX
Introdução ao framework de desenvolvimento web e android do google o Flutter
PPTX
Introdução ao Android
PDF
_Aula 1 - Introdução à Linguagem Java.pdf
DOCX
Introdução a programação para plataforma iOS
PDF
Minicurso de Desenvolvimento Android - Iguatu - CE
PDF
Desenvolvendo Aplicativos com Android
PDF
It skills para rh aprender e contratar
PDF
Desenvolvimento de Apps e Games para iOS - Parte 2
PDF
Criando aplicações em Android brincando de quebra-cabeça!
PDF
Oficina Intel XDK - VIII Semana de TI UNIVEM
PDF
Kotlin first
PPTX
Banco de dados orientado a objetos
PPT
Resumo Desenvolvimento Mobile
Worklight exemplo
Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap
Minicurso Intel XDK
Minicurso Intel XDK
Oficina Intel XDK - 1ª ETEC Camp
Aula02 android hands_on
Aplicativos hibridos-com-ionic-voce-tambem-pode-comecar-a-desenvolver-agora-t...
Introdução ao framework de desenvolvimento web e android do google o Flutter
Introdução ao Android
_Aula 1 - Introdução à Linguagem Java.pdf
Introdução a programação para plataforma iOS
Minicurso de Desenvolvimento Android - Iguatu - CE
Desenvolvendo Aplicativos com Android
It skills para rh aprender e contratar
Desenvolvimento de Apps e Games para iOS - Parte 2
Criando aplicações em Android brincando de quebra-cabeça!
Oficina Intel XDK - VIII Semana de TI UNIVEM
Kotlin first
Banco de dados orientado a objetos
Resumo Desenvolvimento Mobile
Anúncio

Mais de Luís Gustavo Martins (17)

PDF
Creativity and Design Thinking - 2024.pdf
PDF
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
PDF
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
PDF
Smart research? A retórica da Excelência.
PDF
Artificial intelligence and Creativity
PDF
Creativity and Design Thinking
PDF
The impact of Cultural Context on the Perception of Sound and Musical Languag...
PDF
Technology Trends in Creativity and Business
PDF
Introdução à programação em Android e iOS - Android
PDF
Introdução à programação em Android e iOS - OOP Java
PDF
Introdução à programação em Android e iOS - OOP em ObjC
PDF
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
PPT
Speaker Segmentation (2006)
PDF
Research methodology - What is a PhD?
PDF
Introduction to pattern recognition
PDF
A Computational Framework for Sound Segregation in Music Signals using Marsyas
Creativity and Design Thinking - 2024.pdf
Inteligência Artificial - do hype, ao mito, passando pelas oportunidades e ri...
ANDROIDS, REPLICANTS AND BLADE RUNNERS - ARE WE ALL DEEP DREAMING OF ELECTRI...
Smart research? A retórica da Excelência.
Artificial intelligence and Creativity
Creativity and Design Thinking
The impact of Cultural Context on the Perception of Sound and Musical Languag...
Technology Trends in Creativity and Business
Introdução à programação em Android e iOS - Android
Introdução à programação em Android e iOS - OOP Java
Introdução à programação em Android e iOS - OOP em ObjC
Introdução à programação em Android e iOS - Conceitos fundamentais de program...
Speaker Segmentation (2006)
Research methodology - What is a PhD?
Introduction to pattern recognition
A Computational Framework for Sound Segregation in Music Signals using Marsyas
Anúncio

Último (19)

PPTX
Analise Estatica de Compiladores para criar uma nova LP
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPTX
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PDF
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Jira Software projetos completos com scrum
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPT
Conceitos básicos de Redes Neurais Artificiais
PDF
Banco de Dados 2atualização de Banco de d
PDF
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
PPTX
ccursoammaiacursoammaiacursoammaia123456
Analise Estatica de Compiladores para criar uma nova LP
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
SEMINÁRIO DE IHC - A interface Homem-Máquina
Aula 7 - Listas em Python (Introdução à Ciencia da Computação)
Processamento da remessa no SAP ERP, SCM610 Col15
Metodologia Scrumban-XP - Um Guia Rápido (MrSomebody19).pdf
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Jira Software projetos completos com scrum
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Tipos de servidor em redes de computador.pptx
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Aula de Engenharia de Software principais caracteristicas
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Processos no SAP Extended Warehouse Management, EWM100 Col26
Conceitos básicos de Redes Neurais Artificiais
Banco de Dados 2atualização de Banco de d
ASCENSÃO E QUEDA DO SOFTWARE LIVRE NO ESTADO BRASILEIRO
ccursoammaiacursoammaiacursoammaia123456

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

  • 1. Programação em Apple iOS Cursos de Verão na Católica 2011 Jorge C. S. Cardoso, Luís Gustavo Martins [email protected], [email protected]
  • 2. 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
  • 3. 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
  • 4. Apple iOS SDK ● Apple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 5. Apple iOS SDK ● Apple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 6. Apple iOS SDK ● Apple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 7. Apple iOS SDK ● Apple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 8. Apple iOS SDK ● Apple Application Programming Interfaces (APIs) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 9. 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
  • 10. Desenvolvendo para iOS http://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 ● É 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
  • 13. 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
  • 14. 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
  • 15. Model-View-Controler Interface Builder: Actions e Outlets http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 16. Hello World iPhone A Label and a Slider :-) - Ligação da View ao Model - Controller - Interface Builder - IBOutlet - IBAction LIVE CODING DEMO
  • 17. Hello World iPhone A Label and a Slider :-) http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2010-winter
  • 18. Hello World iPhone A 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! :-)
  • 21. Fim Cursos de Verão na Católica 2011 http://porto.ucp.pt/cvc/ Jorge C. S. Cardoso, Luís Gustavo Martins [email protected], [email protected] http://slideshare.net/jorgecardoso (tag: cvc2011)