• Nem Talált Eredményt

Okosóra, Okostelefon és OkosTV -Apple Swift alapú alkalmazás fejlesztés

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Okosóra, Okostelefon és OkosTV -Apple Swift alapú alkalmazás fejlesztés"

Copied!
20
0
0

Teljes szövegt

(1)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Okosóra, Okostelefon és OkosTV - Apple Swift alapú

alkalmazás fejlesztés

Dr. Bilicki Vilmos

Szoftverfejlesztés Tanszék

(2)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Swift programozás alapjai I.

4Objektumorientált programozás

4Swift: változók, konstansok, adattípusok kezelése, optional

4Memóriakezelés

4ARC- strong/weak/unowned 4Strong Reference Cycle

(3)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

SWIFT

4Nyílt forrású nyelv (swift.org)

3.0

42010-ben kezdték el fejleszteni, sok nyelvből merítettek ötleteket (pl.:

Objective-C, Rust, Haskell, Ruby, Python, C#, CLU)

4 2015 a legszeretetebb nyelv (Stack Overflow Developer Survey 2015)

2017. 02. 16. 3

(4)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

SWIFT elemek

4SWIFT fordító (OSX, IOS, Linux) 4Szabványos progarmkódkönyvtár

NSString, NSArray, …

4Alap könyvtárak (hálózat, JSON, …) 4LLDB hibakereső (REPL)

4Csomag kezelő 4Gyakorlás:

IBM Sandbox

Xcode Playground

(5)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

SWIFT runtime

2017. 02. 16. 5

4Memória menedzsment

Manual Retain-Release ( - 2011)

Automatic Reference Counting (2011 -)

LLVM

(6)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Objektumorientált programozás

4Minden objektum (metódus, closure,…) 4Erősen típusos

Típus ellenőrzés

Inferencia

Protokollok

Típus helyettesítő név (Alias)

4Dinamikus

Rendezett n-es véges lista (Tuple)

Bővítés (Extension)

(7)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Swift: változók, konstansok, adattípusok kezelése, optional

4Konstansok deklarálása 4Változók deklarálása

4Típusok megadása, inferencia 4Elnevezések, helyettesítő nevek 4Pontosvessző

2017. 02. 16. 7

(8)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Optional

4Tony Hoare (1965 - Algol)

Null References: The Billion Dollar Mistake

4NIL – Objective C, SWIFT

4NULL Pointer láncolás (Optional chaining)

NIL értéket felvehető metódusok, adattagok, indexek meghívása

(9)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Optional

4Egy enum

Vagy NIL

Vagy van értéke

4Jelölése <TÍPUS>?

4Érték vizsgálat

4Kényszerített kibontás (forced unwrapping)

2017. 02. 16. 9

(10)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Opcionális kötés

4Amennyiben a változó tartalmaz értéket akkor adjuk azt át

(11)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Implicit kibontás

2017. 02. 16. 11

(12)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Optional Chaining

4A kényszerített kibontás alternatívája 4Tetszőleges mélységben használható 4Alapérték megadható

(13)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Memóriakezelés

4Klasszikus megoldás (JAVA)

Szemétgyűjtő

Az infrastruktúra része (JVM)

Nem detreminisztikus

Befolyásolya az alkalmazás teljesítményét

Egyész objektum gráfokat tud kiüríteni

Védettebb a memória szivárgással szemben

2017. 02. 16. 13

(14)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

ARC

4 Nem a futtató környezet része

4 A fordító a megfelelő helyekre beszúrja a referncia követést és a memória felszabadító kód részleteket (amit egyébként a fejlesztő dolga lenne)

4 Determinisztikus: amikor az objektum kikerül a szkópból törötlhető 4 Mivel nincs háttér tevékenység ezért kevesebb CPU-t memóriát

igényel

4 Nem tudja kezelni a körkörös hivatkozásokat

4 Védtelenebb a memória szivárgásokkal szemben

(15)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Visszatartó hurok(Retain Circle)

4Két vagy több objektum körkörösen hivatkozik egymásra

Pl.: Gyermek – Szülő

4Az ARC nem tudja kitalálni mikor

engedhetőek el az objektumok mivel nem foglalkozik a veremmel (szigeteket így

kezelhetjük)

4Csak a hivatkozás számot figyeli

2017. 02. 16. 15

(16)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

ARC- strong/weak/unowned

4Megoldás

A fejlesztő segítsen az ilyen hurokt feltörni

Adott hivatkozást törölhetőnek jelöl

(17)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Gyenge, Gazdátlan referencia

4 Nem erős referencia:

Ha csak ez tartja vissza akkor törölhető

4 Típusai

Gyenge(weak) - Optional

Akkor használjuk, ha előforulhat, hogy nil értékű legyen Ha csak ilyen referencia mutat akkor nil lesz

var-t kell használnunk

Gazdátlan(unowned), nem Optional

Akkor használjuk ha sohasem lehet nil értékű

2017. 02. 16. 17

(18)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Gazdátlan referencia

(19)

UNIVERSITY OF SZEGED Department of Software EngineeringUNIVERSITAS SCIENTIARUM SZEGEDIENSIS

Apple Swift alapú alkalmazás fejlesztés

Gazdátlan referencia

4Mindkét oldalnak értékkel kell bírnia

2017. 02. 16. 19

(20)

UNIVERSITY OF SZEGED Department of Software EngineeringVERSITAS SCIENTIARUM SZEGEDIENSIS

Összefoglaló

4Objektumorientált programozás

4Swift: változók, konstansok, adattípusok kezelése, optional

4Memóriakezelés

4ARC- strong/weak/unowned 4Strong Reference Cycle

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS..

UNIVERSITY OF SZEGED Department of Software Engineering VERSITAS SCIENTIARUM SZEGEDIENSIS..

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS6.

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés - UI alapok

UNIVERSITY OF SZEGED Department of Software Engineering IVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés -

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS setMinimumLatency(long minLatencyMillis). ● A befejezés előtt megvárt minimális

UNIVERSITY OF SZEGED Department of Software Engineering SITAS SCIENTIARUM SZEGEDIENSIS.. Mobil alkalmazásfejlesztés