SlideShare uma empresa Scribd logo
1 de 31
Workshop - iOS
Básico
IDE e Linguagem
Gustavo Barbosa
gustavob@ciandt.com
Vamos falar um pouco
sobre o que é necessário
para iniciar no
desenvolvimento de
aplicativos para iOS
Plataforma
A IDE utilizada
para
desenvolvimento
é o XCode.
Atualmente está na versão 6 e suporta o
desenvolvimento para iOS8.1.
Para novas atualizações do sistema
operacional, a Apple tem o costume de
lançar versões beta do XCode que podem
ser baixadas dentro do Member Center
(portal para desenvolvedores).
XCode
Não é necessário
configurar o ambiente de
desenvolvimento
Consegue simular com integridade um
device.
Necessita de algumas configurações
básicas para replicar as funcionalidades de
geoposicionamento e linguagem do
dispositivo.
Excessão: não pode ser usado quando
recursos físicos do celular são necessários
(câmera, acelerômetro e bluetooth).
Simulator
Instruments
Excelentes ferramentas de auxílio ao
desenvolvedor:
● Verificar vazamento de memória
● Indicar objetos inutilizados e sem
referência (zumbis)
● Checar o tempo de execução de
tarefas
● Testes de performance em geral
Linguagem de
programação
Objective-c
● Derivada da linguagem C
● Surgiu em 1980
● Foi licenciada pela NeXT em 1988
● Em 1996 a Apple comprou a NeXT e incluiu a biblioteca
NeXTSTEP no Core do Mac OS X
Um pouco de história (bem pouco…)
● Trabalha com classes
● Possui o prefixo NS para diversos tipos de objeto
(NSString, NSArray, NSObject, etc.) e UI para elementos
de interface
● Possuem um * (ponteiro) na criação de novos objetos
● Linguagem altamente descritiva
Sintaxe
Exemplo - Declarando um método
PHP:
function getByAno($ano) { ... }
Exemplo - Declarando um método
PHP:
function getByAno($ano) { ... }
Java:
(void) getByAno(int ano) { ... }
Exemplo - Declarando um método
PHP:
function getByAno($ano) { ... }
Java:
(void) getByAno(int ano) { ... }
Javascript:
function getByAno(ano) { ... }
Exemplo - Declarando um método
Objective-c:
- (void) getByAno:(int) ano { ... }
Todos os parâmetros são separados por pelo menos um
termo entre eles. Isso faz com que o desenvolvedor seja
obrigado a ser bem descritivo na criação dos métodos
Exemplo - Declarando um método
- (NSString*) getNameFromList:(NSArray*) peopleArray WithIndex:(int)index{ ... }
● Não economize em nomes de métodos e variáveis. O XCode
possui um excelente autocomplete.
Tipos primitivos - valores numéricos
● Para tipo inteiro ou ponto flutuante utiliza-se NSInteger e
CGFloat
● Arquitetura 64 bits
● Desde o dia 1 de Fevereiro de 2015, todas as apps são
obrigadas a suportar
● Aumento de tamanho das variáveis e alinhamentos de
regras de memória
Quando uma nova classe é criada, dois arquivos
são adicionados no projeto:
Estrutura
O arquivo .h é a interface. Possui todas assinaturas dos
métodos públicos a serem implementados e também
propriedades dos objetos que podem ser acessados por
outras classes.
Estrutura
O arquivo .m é a implementação de todos os métodos
declarados no arquivo .h.
Local onde toda lógica será inserida (ações de botões, cores
de componentes.
Estrutura
E o Swift?
O XCode possui uma interface muito simples de ser utilizada
para componentes de UI:
● Mecanismo "clica e arrasta"
● Todos os elementos da interface são ligados com as
declarações nos arquivos da classe (.h e .m)
Elementos de interface / Interface Builder
Declarando um label no arquivo .h
@property (nonatomic, weak) UILabel* lblGroupName;
Referência:
http://stackoverflow.com/questions/9859719/objective-c-declared-property-
attributes-nonatomic-copy-strong-weak
Elementos de interface / Interface Builder
Storyboard
Storyboard
Xib
BOOLEAN - YES or NO - Substituindo o TRUE or FALSE
self - referenciar objetos ou chamar métodos da mesma
classe
nil - no lugar de null
Algumas mudanças...
Dúvidas?
THANKS
FOR
BEING
HERE!

Mais conteúdo relacionado

Mais procurados

Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02profwtelles
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em CDiego Santos
 
Desenvolvendo DSLs Em Python
Desenvolvendo DSLs Em PythonDesenvolvendo DSLs Em Python
Desenvolvendo DSLs Em PythonRodrigo Manhães
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonOsvaldo Santana Neto
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre Denis Vieira
 

Mais procurados (8)

Linguagem c wellington telles - aula 02
Linguagem c   wellington telles - aula 02Linguagem c   wellington telles - aula 02
Linguagem c wellington telles - aula 02
 
Programando Software Livre em C
Programando Software Livre em CProgramando Software Livre em C
Programando Software Livre em C
 
C++11
C++11C++11
C++11
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Desenvolvendo DSLs Em Python
Desenvolvendo DSLs Em PythonDesenvolvendo DSLs Em Python
Desenvolvendo DSLs Em Python
 
Calourada2010
Calourada2010Calourada2010
Calourada2010
 
Matando o Java e Mostrando o Python
Matando o Java e Mostrando o PythonMatando o Java e Mostrando o Python
Matando o Java e Mostrando o Python
 
Python django7semestre
Python django7semestre Python django7semestre
Python django7semestre
 

Destaque

Dojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoDojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoGustavo Barbosa
 
Dojo iOS Básico - Aula 10
Dojo iOS Básico - Aula 10Dojo iOS Básico - Aula 10
Dojo iOS Básico - Aula 10Gustavo Barbosa
 
Dojo iOS Básico - Aula 1
Dojo iOS Básico - Aula 1Dojo iOS Básico - Aula 1
Dojo iOS Básico - Aula 1Gustavo Barbosa
 
Workshop - Conceito mobile
Workshop - Conceito mobileWorkshop - Conceito mobile
Workshop - Conceito mobileGustavo Barbosa
 
Dojo iOS Básico - Aula 5
Dojo iOS Básico - Aula 5Dojo iOS Básico - Aula 5
Dojo iOS Básico - Aula 5Gustavo Barbosa
 
Dojo iOS Básico - Aula 4
Dojo iOS Básico - Aula 4Dojo iOS Básico - Aula 4
Dojo iOS Básico - Aula 4Gustavo Barbosa
 
Dojo iOS Básico - Aula 7
Dojo iOS Básico - Aula 7Dojo iOS Básico - Aula 7
Dojo iOS Básico - Aula 7Gustavo Barbosa
 
Dojo iOS Básico - Aula 8
Dojo iOS Básico - Aula 8Dojo iOS Básico - Aula 8
Dojo iOS Básico - Aula 8Gustavo Barbosa
 
Dojo iOS Básico - Aula 9
Dojo iOS Básico - Aula 9Dojo iOS Básico - Aula 9
Dojo iOS Básico - Aula 9Gustavo Barbosa
 
Dojo iOS Básico - Aula 2
Dojo iOS Básico - Aula 2Dojo iOS Básico - Aula 2
Dojo iOS Básico - Aula 2Gustavo Barbosa
 
Dojo iOS Básico - Aula 6
Dojo iOS Básico - Aula 6Dojo iOS Básico - Aula 6
Dojo iOS Básico - Aula 6Gustavo Barbosa
 
Dojo iOS Básico - Aula 3
Dojo iOS Básico - Aula 3Dojo iOS Básico - Aula 3
Dojo iOS Básico - Aula 3Gustavo Barbosa
 

Destaque (12)

Dojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - IntroduçãoDojo swift - Aula 1 - Introdução
Dojo swift - Aula 1 - Introdução
 
Dojo iOS Básico - Aula 10
Dojo iOS Básico - Aula 10Dojo iOS Básico - Aula 10
Dojo iOS Básico - Aula 10
 
Dojo iOS Básico - Aula 1
Dojo iOS Básico - Aula 1Dojo iOS Básico - Aula 1
Dojo iOS Básico - Aula 1
 
Workshop - Conceito mobile
Workshop - Conceito mobileWorkshop - Conceito mobile
Workshop - Conceito mobile
 
Dojo iOS Básico - Aula 5
Dojo iOS Básico - Aula 5Dojo iOS Básico - Aula 5
Dojo iOS Básico - Aula 5
 
Dojo iOS Básico - Aula 4
Dojo iOS Básico - Aula 4Dojo iOS Básico - Aula 4
Dojo iOS Básico - Aula 4
 
Dojo iOS Básico - Aula 7
Dojo iOS Básico - Aula 7Dojo iOS Básico - Aula 7
Dojo iOS Básico - Aula 7
 
Dojo iOS Básico - Aula 8
Dojo iOS Básico - Aula 8Dojo iOS Básico - Aula 8
Dojo iOS Básico - Aula 8
 
Dojo iOS Básico - Aula 9
Dojo iOS Básico - Aula 9Dojo iOS Básico - Aula 9
Dojo iOS Básico - Aula 9
 
Dojo iOS Básico - Aula 2
Dojo iOS Básico - Aula 2Dojo iOS Básico - Aula 2
Dojo iOS Básico - Aula 2
 
Dojo iOS Básico - Aula 6
Dojo iOS Básico - Aula 6Dojo iOS Básico - Aula 6
Dojo iOS Básico - Aula 6
 
Dojo iOS Básico - Aula 3
Dojo iOS Básico - Aula 3Dojo iOS Básico - Aula 3
Dojo iOS Básico - Aula 3
 

Semelhante a iOS Development Workshop - Introduction to Xcode, Objective-C and App Development

Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicaçõesnataferraz
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoLorival Smolski Chapuis
 
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430Texas Instruments
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaGPrimola
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoJorge Cardoso
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicRicardo Guerra Freitas
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisHenry Raúl González Brito
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeAlessandro Binhara
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010Norton Guimarães
 
Iron Python
Iron PythonIron Python
Iron Pythonpugpe
 
Programação Oritentada a Aspecto
Programação Oritentada a AspectoProgramação Oritentada a Aspecto
Programação Oritentada a AspectoBenicio Ávila
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 

Semelhante a iOS Development Workshop - Introduction to Xcode, Objective-C and App Development (20)

Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
02 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.002 - Introdução a linguagem C# v1.0
02 - Introdução a linguagem C# v1.0
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
DotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - IntroduçãoDotNet Framework e Orientação a Objetos 1 - Introdução
DotNet Framework e Orientação a Objetos 1 - Introdução
 
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430055 A 094   Material Auxiliar Para Curso AvançAdo I Msp430
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
 
Apresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno CottaApresentacao android por Júlio Cesar Bueno Cotta
Apresentacao android por Júlio Cesar Bueno Cotta
 
Conceitos Fundamentais de Programacao
Conceitos Fundamentais de ProgramacaoConceitos Fundamentais de Programacao
Conceitos Fundamentais de Programacao
 
Evolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual BasicEvolução do .NET Framework e do Visual Basic
Evolução do .NET Framework e do Visual Basic
 
1º FasS2B 2010
1º FasS2B 20101º FasS2B 2010
1º FasS2B 2010
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Noções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores DigitaisNoções Básicas do Software dos Computadores Digitais
Noções Básicas do Software dos Computadores Digitais
 
Interoperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente MainframeInteroperabilidade com .NET em ambiente Mainframe
Interoperabilidade com .NET em ambiente Mainframe
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010ASP.NET e Visual Studio 2010
ASP.NET e Visual Studio 2010
 
Iron Python
Iron PythonIron Python
Iron Python
 
Programação Oritentada a Aspecto
Programação Oritentada a AspectoProgramação Oritentada a Aspecto
Programação Oritentada a Aspecto
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
.NET Open Source
.NET Open Source.NET Open Source
.NET Open Source
 

iOS Development Workshop - Introduction to Xcode, Objective-C and App Development

  • 1. Workshop - iOS Básico IDE e Linguagem Gustavo Barbosa gustavob@ciandt.com
  • 2. Vamos falar um pouco sobre o que é necessário para iniciar no desenvolvimento de aplicativos para iOS
  • 5. Atualmente está na versão 6 e suporta o desenvolvimento para iOS8.1. Para novas atualizações do sistema operacional, a Apple tem o costume de lançar versões beta do XCode que podem ser baixadas dentro do Member Center (portal para desenvolvedores). XCode
  • 6. Não é necessário configurar o ambiente de desenvolvimento
  • 7. Consegue simular com integridade um device. Necessita de algumas configurações básicas para replicar as funcionalidades de geoposicionamento e linguagem do dispositivo. Excessão: não pode ser usado quando recursos físicos do celular são necessários (câmera, acelerômetro e bluetooth). Simulator
  • 8. Instruments Excelentes ferramentas de auxílio ao desenvolvedor: ● Verificar vazamento de memória ● Indicar objetos inutilizados e sem referência (zumbis) ● Checar o tempo de execução de tarefas ● Testes de performance em geral
  • 11. ● Derivada da linguagem C ● Surgiu em 1980 ● Foi licenciada pela NeXT em 1988 ● Em 1996 a Apple comprou a NeXT e incluiu a biblioteca NeXTSTEP no Core do Mac OS X Um pouco de história (bem pouco…)
  • 12. ● Trabalha com classes ● Possui o prefixo NS para diversos tipos de objeto (NSString, NSArray, NSObject, etc.) e UI para elementos de interface ● Possuem um * (ponteiro) na criação de novos objetos ● Linguagem altamente descritiva Sintaxe
  • 13. Exemplo - Declarando um método PHP: function getByAno($ano) { ... }
  • 14. Exemplo - Declarando um método PHP: function getByAno($ano) { ... } Java: (void) getByAno(int ano) { ... }
  • 15. Exemplo - Declarando um método PHP: function getByAno($ano) { ... } Java: (void) getByAno(int ano) { ... } Javascript: function getByAno(ano) { ... }
  • 16. Exemplo - Declarando um método Objective-c: - (void) getByAno:(int) ano { ... } Todos os parâmetros são separados por pelo menos um termo entre eles. Isso faz com que o desenvolvedor seja obrigado a ser bem descritivo na criação dos métodos
  • 17. Exemplo - Declarando um método - (NSString*) getNameFromList:(NSArray*) peopleArray WithIndex:(int)index{ ... } ● Não economize em nomes de métodos e variáveis. O XCode possui um excelente autocomplete.
  • 18. Tipos primitivos - valores numéricos ● Para tipo inteiro ou ponto flutuante utiliza-se NSInteger e CGFloat ● Arquitetura 64 bits ● Desde o dia 1 de Fevereiro de 2015, todas as apps são obrigadas a suportar ● Aumento de tamanho das variáveis e alinhamentos de regras de memória
  • 19. Quando uma nova classe é criada, dois arquivos são adicionados no projeto: Estrutura
  • 20. O arquivo .h é a interface. Possui todas assinaturas dos métodos públicos a serem implementados e também propriedades dos objetos que podem ser acessados por outras classes. Estrutura
  • 21. O arquivo .m é a implementação de todos os métodos declarados no arquivo .h. Local onde toda lógica será inserida (ações de botões, cores de componentes. Estrutura
  • 23. O XCode possui uma interface muito simples de ser utilizada para componentes de UI: ● Mecanismo "clica e arrasta" ● Todos os elementos da interface são ligados com as declarações nos arquivos da classe (.h e .m) Elementos de interface / Interface Builder
  • 24. Declarando um label no arquivo .h @property (nonatomic, weak) UILabel* lblGroupName; Referência: http://stackoverflow.com/questions/9859719/objective-c-declared-property- attributes-nonatomic-copy-strong-weak Elementos de interface / Interface Builder
  • 25.
  • 28. Xib
  • 29. BOOLEAN - YES or NO - Substituindo o TRUE or FALSE self - referenciar objetos ou chamar métodos da mesma classe nil - no lugar de null Algumas mudanças...