Introdução ao Swift

Preview:

DESCRIPTION

Apresentação da nova linguagem da Apple no CocoaHeadsRJ

Citation preview

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

Recommended