Top Banner
Wprowadzenie do języka Swift
26

Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Jan 18, 2017

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Wprowadzenie do języka Swift

Page 2: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Autor

Aleksander [email protected]

@AleksanderKania

Page 3: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Agenda

Zaszłości “historyczne” (Objective-C) Playground

Podstawowe konstrukcje Funkcje, closures, wyliczenia

Klasy, struktury, protokoły, metody Wbudowane kolekcje

danych

Page 4: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Objective-C - przykład

Page 5: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Swift - przykład

Page 6: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Dlaczego Swift?

Objective-C jest stary Objective-C jest trudny do nauki

Objective-C without C

Page 7: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Porównanie składni

Page 8: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Kompatybilność z istniejącymi już bibliotekami i frameworkami

Frameworki napisane w Objective-C można wykorzystać również w Swift

źródło: https://github.com/Alamofire/Alamofire

Page 9: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

OS X vs iOS

NSTableView UITableView

AppKit UIKit

Page 10: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Witaj Świecie!

Page 11: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Objective-C

Page 12: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Swift

println(“Hello World”)

Page 13: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Demo - podstawowe konstrukcje

Page 14: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Podsumowanie

Czytelne i przydatne konstrukcje

..Kompatybilność wsteczna”

Nowoczesne podejście - połączenie zalet języka dynamicznego i silnie typowanego

Page 15: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Funkcje i closures

func convertStringToNumber(#number:String, callback: (String->Int))->Int{ var result:Int = callback(number) return result} func convert(num:String)->Int{

return num.toInt()!}

var result = convertStringToNumber(number: "4", convert)

var result = convertStringToNumber(number: "4", {(num:String) in return num.toInt()!})

Page 16: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Funkcje i closures

var result = convertStringToNumber(number: "4"){ (num:String) in return num.toInt()!}

var result = convertStringToNumber(number: "4"){ num in num.toInt()!}

Page 17: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Super easy!

var result5 = convertStringToNumber(number: "4"){ $0.toInt()!}

Page 18: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Wyliczenia

enum Number:Int{ case One = 1,Two,Three func description()->String{ switch(self) { case .One: return "one" case .Two: return "two" default: return String(self.rawValue) } }}let n = Number.Onen.description()

Page 19: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Struktury

Przykładowe struktury w Swift: Array, Set, Dictionary

struct Cat{ var avatar:UIImage?}

var cat = Cat(avatar: UIImage(named: "cat"))cat.avatar

Page 20: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Tablice i słowniki

var array:[String] = [String]()var numbers = Array<Int>()

array.append("Milk")numbers.append(14)

let constArray = [1,4,6,3]constArray.count

var dict:[Int:String] = [Int:String]()dict[4] = "Krowa"

dict[4]

var emptyDict = [:]

let constDict = [1 : "Krowa", 2 : "Mleko", 3 : "Milka", 4 : "Stek"]

Page 21: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Klasy

class Person:Details{ var firstName:String? var lastName:String? var age:Int? init(name:String, lastName:String, age:Int){ self.firstName = name self.lastName = lastName self.age = age } func displayDetails() { println("Człowiek nazywa się \(self.firstName) \(self.lastName) i ma \(self.age) lat.") } var fullName:String{ get{ return self.firstName! + " " + self.lastName! } }}

protocol Details{ func displayDetails()->Void}

Page 22: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Metody a funkcje

func foo(age:Int, val:Int){}

person.foo(45, 45)

func foo(age:Int, _ val:Int){}

Page 23: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Property observers

willSet - jest wywoływane przed zapisaniem wartości

didSet - jest wywoływane zaraz po tym jak nowa wartosć zostanie zapisana daje nam również dostęp do starej wartości!

Przydatne przy dziedziczeniu!

Page 24: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Property observers example

class StepCounter { var totalSteps: Int = 0 { willSet(newTotalSteps) { println("About to set totalSteps to \(newTotalSteps)") } didSet { if totalSteps > oldValue { println("Added \(totalSteps - oldValue) steps") } } } }

Page 25: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Q&A

Pytania?

Page 26: Wprowadzenie do języka Swift, czyli nowe podejście do programowania aplikacji dla iOS

Dzięki za uwagę

[email protected]