O documento discute o desenvolvimento de aplicações para dispositivos iOS usando o SDK da Apple. Ele descreve as ferramentas incluídas no SDK como o Xcode, Interface Builder e simulador, além das APIs Cocoa e Cocoa Touch. Também aborda tópicos como Model-View-Controller, delegação e um exemplo simples de calculadora de frações.
A Computational Framework for Sound Segregation in Music Signals using Marsyas
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
jorgecardoso@ieee.org, lmartins@porto.ucp.pt
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
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
jorgecardoso@ieee.org, lmartins@porto.ucp.pt
http://slideshare.net/jorgecardoso (tag: cvc2011)