SlideShare uma empresa Scribd logo
1 de 50
“Procura-se programador Swift com 2
anos de experiência. Salário: R$ 1.200 +
VT + VR”
Introdução ao Swift por Henrique Morbin – iOS Developer
Quem sou eu?
 Henrique Morbin, 25 anos;
 Consultor Técnico Mobile na Hewlett-Packard;
 Estudante de Matemática pela UFRGS;
 3 anos de experiência em iOS;
 1 dia de experiência em Swift.
Meus apps Ver portfólio completo:
http://morbix.com.br/resume/
Combinações Iniciais
 Ninguém vai sair daqui programador Swift;
 É apenas uma introdução e será bem superficial;
 Não façam perguntas “difíceis”;
 A vaga do título não é verdadeira.
The Swift Language Programming
 Nova linguagem de programação;
 Desenvolvida pela Apple;
 Segura, Moderna e Poderosa;
 Frameworks Cocoa e Cocoa Touch;
 Funciona integrado com o Objective-C;
 Funciona com o novo recurso Playground.
WWDC 2014
 San Francisco;
 Palestra principal;
 02/06/2014;
 5 dias de evento;
 iOS 8 & Mac OSX Yosemite (10.10).
 Veja as novidades em:
 http://www.macrumors.com/2014/06/02/apple-announces-ios-8/
 http://www.macmagazine.com.br
Playground
 Código;
 Preview dos objetos;
 Timeline com:
 Saída do console;
 Gráfico da evolução dos laços;
 Não precisa de build;
 Ótimo para testar os códigos e
brincar (playground) com a
linguagem.
Constantes e Variáveis
Tipo dos dados subentendidos
Caracteres especiais e emoticons
Strings
Manipulação de Strings
Concatenação de Strings
Arrays e Dictionaries
Qual a diferença de Array e Dictionary
para NSArray e NSDictionary?
Exemplo de laço FOR [0-4]
Exemplo de laço FOR [0-5]
Interagindo com os elementos de um
Dictionary
Adicionando um elemento no Array
Adicionando vários elementos no Array
Alterando um elemento específico do
Array
Substituindo os índices 3, 4 e 5 por 2
elementos
Alterando um valor do Dictionary através
de uma chave inexistente
Switches no Swift não precisam mais de
‘break’
Switches no Swift aceitam qualquer tipo
de dado agora
Switches no Swift a cláusula ‘default’ é
obrigatório
Switches no Swift aceitam ranges de
valores
Sintaxe de uma função/método
Chamando uma função (nada de mais)
Sintaxe de uma função com parâmetros
Parâmetro com valor default
Chamando uma função com parâmetros
default
Sintaxe de uma função com retorno
Sintaxe de uma função com retorno de
múltiplos valores (Tuple)
Tuple são vetores com elementos de
variádos tipos
Utilizando o retorno Tuple de uma função
Nomeando os valores do Tuple
Utilizando o Tuple com os valores
nomeados
Clouser (ou Blocks)
Enfatizando o tipo de dado Clouser
Declaração de Clouser e de Function
Clouser como parâmetro de função
Chamando a função e passando um
Clouser como parâmetro
Possibilidade de uso nos casos em que o
último argumento da função é um Clouser
O que ainda temos para ver?
 Classes, Propriedades, Métodos e
Inicializadores;
 Herança de Classes;
 Propriedades com valores default e
Propriedades Computadas;
 Sobrecarga de Métodos e Sobrecarga de
Propriedades;
 Observadores de Propriedades(willSet, didSet,
newValue, oldValue);
 Structures com Propriedades Computadas e
com Métodos;
 Diferença de Structures e de Classes;
 Diferenças das Constantes e Variáveis para
Structures e para Classes;
 Modificando uma Structure;
 Enums: Raw Values e Hash Values;
 Enums com valores associados;
 Emuns com Inicializadores e Propriedades;
 Tipos de dados aninhados;
 Extensões de Structures e de variáveis
primitivas;
 Pilha de estruturas não-genéricas e de
estruturas genéricas;
...e tudo isso apenas referente ao
vídeo de introdução do Swift.
Esse é o Swift
Onde buscar mais informações?
 Livro disponível na iBooks Store
 https://itunes.apple.com/br/book/the-swift-programming-language/id881256329?mt=11
 Documetação online:
 https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi
ng_Language/
 Vídeos do WWDC – Sessions
 https://developer.apple.com/videos/wwdc/2014/
 Intrudução, Intermediário, Avançado e muitos outros...
 GitHub
 Diversos desenvolvedores ninjas e sem nada para fazer já disponibilizaram códigos e projetos inteiros
em Swift;
 Grupos/Fóruns/Blogs
Entre em contato comigo
 Facebook: http://facebook.com/hgmorbin
 Portfólio: http://morbix.com.br/resume
 GitHub: http://github.com/Morbix
 Blog: http://iOS4Fun.blogspot.com
 Em breve: LetsGoDev.com
 E-mail: morbin_@hotmail.com
 Whats: 5181992194
Q&A
Obrigado

Mais conteúdo relacionado

Mais procurados

Princípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresPrincípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresTchelinux
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopesmarcosnem
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em pythonAlvaro Oliveira
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Leonardo Melo Santos
 
Usp Ufba Ferramentas Analizo Antlr
Usp Ufba Ferramentas Analizo AntlrUsp Ufba Ferramentas Analizo Antlr
Usp Ufba Ferramentas Analizo AntlrCampus Party Brasil
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Andre Nascimento
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleAdriano Teixeira de Souza
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...George Mendonça
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonGiancarlo Silva
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Ricardo Silva
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcionalPéricles Miranda
 

Mais procurados (20)

Princípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio TorresPrincípios de projeto e boas práticas de programação em Java - Márcio Torres
Princípios de projeto e boas práticas de programação em Java - Márcio Torres
 
Subalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca LopesSubalgoritmos Profª Letíca Lopes
Subalgoritmos Profª Letíca Lopes
 
Introdução a estruturas de dados em python
Introdução a estruturas de dados em pythonIntrodução a estruturas de dados em python
Introdução a estruturas de dados em python
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Java4
Java4Java4
Java4
 
Linguagem C - Funções
Linguagem C - FunçõesLinguagem C - Funções
Linguagem C - Funções
 
Usp Ufba Ferramentas Analizo Antlr
Usp Ufba Ferramentas Analizo AntlrUsp Ufba Ferramentas Analizo Antlr
Usp Ufba Ferramentas Analizo Antlr
 
Java5
Java5Java5
Java5
 
Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#Apostila de Introdução a POO com C#
Apostila de Introdução a POO com C#
 
Paradigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de ControleParadigmas de Linguagens de Programação - Estruturas de Controle
Paradigmas de Linguagens de Programação - Estruturas de Controle
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
Python - Orientação a Objetos com UML no Batismo Digital 3.0 da Faculdade JK ...
 
Curso básico de Algoritmos com Python
Curso básico de Algoritmos com PythonCurso básico de Algoritmos com Python
Curso básico de Algoritmos com Python
 
Java1
Java1Java1
Java1
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]Logica de programação. introdução[AULA-1]
Logica de programação. introdução[AULA-1]
 
C++ Funções
 C++ Funções C++ Funções
C++ Funções
 
Aula 4 | Funções
Aula 4 | Funções Aula 4 | Funções
Aula 4 | Funções
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
4 introdução ao paradigma funcional
4 introdução ao paradigma funcional4 introdução ao paradigma funcional
4 introdução ao paradigma funcional
 

Semelhante a Programa Swift 2 Anos

TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7tdc-globalcode
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcionalGabriel Schade Cardoso
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosFelipe Hummel
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Elaine Cecília Gatto
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Flávio Ribeiro
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Loiane Groner
 
C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novoGiovanni Bassi
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01John Godoi
 

Semelhante a Programa Swift 2 Anos (20)

Aop Aspect J 1.5.4
Aop Aspect J 1.5.4Aop Aspect J 1.5.4
Aop Aspect J 1.5.4
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Ruby & Rails
Ruby & RailsRuby & Rails
Ruby & Rails
 
Módulo de php
Módulo de phpMódulo de php
Módulo de php
 
TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7TDC2016POA | Trilha .NET - O que esperar do C# 7
TDC2016POA | Trilha .NET - O que esperar do C# 7
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Introdução à programação funcional
Introdução à programação funcionalIntrodução à programação funcional
Introdução à programação funcional
 
1.introducao java
1.introducao java1.introducao java
1.introducao java
 
Scala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetosScala: unindo programação funcional e orientação a objetos
Scala: unindo programação funcional e orientação a objetos
 
Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3Programação Orientada a Objetos parte 3
Programação Orientada a Objetos parte 3
 
Introdução ao Java 5
Introdução ao Java 5Introdução ao Java 5
Introdução ao Java 5
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1Implementação de Aplicações Móveis e Jogos com Python - Aula 1
Implementação de Aplicações Móveis e Jogos com Python - Aula 1
 
Javascript
JavascriptJavascript
Javascript
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2 Devfest Cerrado: Angular 2
Devfest Cerrado: Angular 2
 
C#4 – O que há de novo
C#4 – O que há de novoC#4 – O que há de novo
C#4 – O que há de novo
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Funções e procedimentos
Funções e procedimentosFunções e procedimentos
Funções e procedimentos
 
Apresentação faef
Apresentação faefApresentação faef
Apresentação faef
 

Mais de Henrique Morbin

Contratos Fortes com Programação Funcional
Contratos Fortes com Programação FuncionalContratos Fortes com Programação Funcional
Contratos Fortes com Programação FuncionalHenrique Morbin
 
Você já testou os seus testes?
Você já testou os seus testes?Você já testou os seus testes?
Você já testou os seus testes?Henrique Morbin
 
Understanding stack views
Understanding stack viewsUnderstanding stack views
Understanding stack viewsHenrique Morbin
 
Understanding Auto Layout
Understanding Auto LayoutUnderstanding Auto Layout
Understanding Auto LayoutHenrique Morbin
 
7 perguntas para mudar a forma como você faz coaching
7 perguntas para mudar a forma como você faz coaching7 perguntas para mudar a forma como você faz coaching
7 perguntas para mudar a forma como você faz coachingHenrique Morbin
 
Tailor - Linter for Swift
Tailor - Linter for SwiftTailor - Linter for Swift
Tailor - Linter for SwiftHenrique Morbin
 
Hackathon Queen Mob - Tools and Helpers
Hackathon Queen Mob - Tools and HelpersHackathon Queen Mob - Tools and Helpers
Hackathon Queen Mob - Tools and HelpersHenrique Morbin
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A ServiceHenrique Morbin
 

Mais de Henrique Morbin (12)

Swift Access Control
Swift Access ControlSwift Access Control
Swift Access Control
 
Contratos Fortes com Programação Funcional
Contratos Fortes com Programação FuncionalContratos Fortes com Programação Funcional
Contratos Fortes com Programação Funcional
 
Você já testou os seus testes?
Você já testou os seus testes?Você já testou os seus testes?
Você já testou os seus testes?
 
Understanding stack views
Understanding stack viewsUnderstanding stack views
Understanding stack views
 
Understanding Auto Layout
Understanding Auto LayoutUnderstanding Auto Layout
Understanding Auto Layout
 
7 perguntas para mudar a forma como você faz coaching
7 perguntas para mudar a forma como você faz coaching7 perguntas para mudar a forma como você faz coaching
7 perguntas para mudar a forma como você faz coaching
 
Bond, swift bond
Bond, swift bondBond, swift bond
Bond, swift bond
 
Tailor - Linter for Swift
Tailor - Linter for SwiftTailor - Linter for Swift
Tailor - Linter for Swift
 
Fastlane
FastlaneFastlane
Fastlane
 
Hackathon Queen Mob - Tools and Helpers
Hackathon Queen Mob - Tools and HelpersHackathon Queen Mob - Tools and Helpers
Hackathon Queen Mob - Tools and Helpers
 
Parse - Backend As A Service
Parse - Backend As A ServiceParse - Backend As A Service
Parse - Backend As A Service
 
Cocoa Touch Framework 8
Cocoa Touch Framework 8Cocoa Touch Framework 8
Cocoa Touch Framework 8
 

Programa Swift 2 Anos