introdução ao swift
DESCRIPTION
Apresentação da nova linguagem da Apple no CocoaHeadsRJTRANSCRIPT
SwiftA nova linguagem da Apple
Desenvolvedor e instrutor (iOS, Android, Java e Ruby)
Quem sou eu?
@fabiopimentelgithub.com/fabiopimentel
var nome = “Fábio"
var nome = “Fábio"
tem um espaço
var nome = “Fábio" nome = 10
var nome = “Fábio" nome = 10
var nome = “Fábio"
var sobrenome: String = "Pimentel"
var nome = “Fábio"
var sobrenome: String = "Pimentel"
let brasileiro: Bool = true
var nome = “Fábio"
var sobrenome: String = "Pimentel"
let brasileiro: Bool = true
constante
var nome = “Fábio"
var sobrenome: String = "Pimentel"
let brasileiro: Bool = true
println(“\(nome) de Lima \(sobrenome) “)
var nome = “Fábio"
var sobrenome: String = "Pimentel"
let brasileiro: Bool = true
println(“\(nome) de Lima \(sobrenome) “)
Interpolação
Classes
class Veiculo{ !!!! !!!!!!!}
Veiculo.swift
class Veiculo{ var ano:Int var valor:Double var marca:String var modelo:String ! !!!!!!!}
Veiculo.swift
class Veiculo{ let ano:Int var valor:Double let marca:String let modelo:String ! !!!!!!!}
Veiculo.swift
class Veiculo{ let ano:Int var valor:Double let marca:String let modelo:String ! init(marca:String, modelo:String, ano: Int){ self.marca = marca self.modelo = modelo self. ano = ano } !!!}
Veiculo.swift
Objetos
var meuCarro = Carro(2014, "Audi", "A8")
var meuCarro = Carro(2014, "Audi", "A8")
var meuCarro = Carro(ano: 2014, marca: "Audi", modelo: "A8")
Contrato
protocol Tributavel{ ! !!!!!!}
Tributavel.swift
protocol Tributavel{ ! func calculaIPVA( ) -> Double !!!!!!}
Tributavel.swift
protocol Tributavel{ ! func calculaIPVA( ) -> Double !!!!!!}
Tributavel.swift
nome do método
protocol Tributavel{ ! func calculaIPVA( ) -> Double !!!!!!}
Tributavel.swift
parâmetros
protocol Tributavel{ ! func calculaIPVA( ) -> Double !!!!!!}
Tributavel.swift
retorno
Mais sobre classes …
class Veiculo{ let ano:Int var valor:Double let marca:String let modelo:String ! init(marca:String, modelo:String, ano: Int){ //… } !!!}
Veiculo.swift
class Veiculo : Tributavel{ let ano:Int var valor:Double let marca:String let modelo:String ! init(marca:String, modelo:String, ano: Int){ //… } !!}
Veiculo.swift
class Veiculo : Tributavel{ let ano:Int var valor:Double let marca:String let modelo:String ! init(marca:String, modelo:String, ano: Int){ //… } func calculaIPVA( ) -> Double{ return valor * 0.05; } !}
Veiculo.swift
class Motocicleta : Veiculo{ ! !!!}
Motocicleta.swift
class Motocicleta : Veiculo{ ! override func calculaIPVA( ) -> Double{ return valor * 0.03; } !}
Motocicleta.swift
Mais sobre métodos …
class Motocicleta : Veiculo{ ! override func calculaIPVA( ) -> Double{ return valor * 0.03; } ! func calculaDepreciacaoParaAno( ano: Int, comTaxa taxaDeDepreciacao: Double)-> Double{ //lógica omitida ! } !!!}
Motocicleta.swift
var minhaMoto = Moto( ) !minhaMoto.valor = 10_000.0 minhaMoto.marca = “Suzuki"
var minhaMoto = Moto( ) !minhaMoto.valor = 10_000.0 minhaMoto.marca = “Suzuki" minhaMoto.calculaDepreciacaoParaAno( 2016, comTaxa: 0.12)
Enumeration
enum Marca{ !}
Marca.swift
enum Marca{ ! case Yamaha, Honda, Suzuki, Kawasaki }
Marca.swift
var marcaDaMoto = Marca.Yamaha !
marcaDaMoto = .Suzuki
Array
var carros = [“Gol”, “Jetta”, "Passat"]
var carros = [“Gol”, “Jetta”, "Passat"]
var carros: Array<String> = [“Gol”, “Jetta”, "Passat"]
var carros = [“Gol”, “Jetta”, "Passat"]
var carros: Array<String> = [“Gol”, “Jetta”, "Passat"]
Generics
var carros: Array<String> = [“Gol”, “Jetta”, “Passat"] !
for carro in carros{ println( carro ) !
}
var carros: Array<String> = [“Gol”, “Jetta”, “Passat"] !
for index in 0..1{ println( carro[index] ) !
}
var carros: Array<String> = [“Gol”, “Jetta”, “Passat”] !
for index in 0..1{ println( carro[index] ) !
}
Gol
var carros: Array<String> = [“Gol”, “Jetta”, “Passat"] !
for index in 0…1{ println( carro[index] ) !
}
var carros: Array<String> = [“Gol”, “Jetta”, “Passat"] !
for index in 0…1{ println( carro[index] ) !
}
Gol Jetta
Dictionary
var aeroportos: Dictionary<String, String> = ["SDU": "Santos Dumont", "CGH": "Congonhas"]
!
for (codigo, nome) in aeroportos{ println( “\(codigo)-\(nome)“) !
}
Live Coding