Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20...

14
Praktikum – iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung WS19/20 1

Transcript of Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20...

Page 1: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Praktikum – iOS-EntwicklungWintersemester 2019/20

Prof. Dr. Linnhoff-Popien

Markus Friedrich, Christoph Roch

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/201

Page 2: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS als EntwicklungsplattformiOS Ökosystem, Evolution und Architektur

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/202

Page 3: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS

• iOS ist das Betriebssystem das auf iPhone, iPad und iPod-Touch Geräten läuft.

• Das iOS Software Development Kit (SDK) enthält Tools und Schnittstellen zum Entwickeln von nativen Apps.

• Native Apps basieren auf der Verwendung nativer System Frameworks und werden physisch auf dem Gerät installiert (im Gegensatz zu Web-Apps).

• In diesem Praktikum geht es um die Entwicklung Nativer Apps.

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/203

https://developer.apple.com

Page 4: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS Evolution

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/204

iPhone OS 1

2007

iPhone OS 2

iPhone OS 3

iOS 5

iOS 6

iOS 7

iOS 8

iOS 9

iOS 4

2019

iOS 10

Third-party AppsApp StoreLocation services

Push NotificationsFor Third Parties

FaceTimeMultitasking

Notifikation CenteriMessageSiriiCloud

Apple Maps

AirDrop

Third Party Keyboards, Widgets, Filesharing

3D Touch

Third PartyIntegration forSiri, iMessages and Maps

Peer-to-peer forApple Pay

iOS 11

https://www.apple.com

https://www.apple.com

…iOS 12

iOS 13

Page 5: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS Ökosystem

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/205

Objective-C

Swift

apple.com/ios/photos/

IDE Sprachen Frameworks

itunes.apple.com

Page 6: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS Erweitertes Ökosystem

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/206

itunes.apple.com

Objective-CSwift

apple.com/ios/photos/

CocoaPods

Client - Server Peer-To-Peer

NodeJS

Firebase Bluetooth

WLAN

CocoaTouch

Model-View-Controller

Page 7: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS App-Entwicklung

• Anfangs sah Apple nicht vor Third-Parties die Entwicklung Nativer Apps zu erlauben [1].

• Auf Drängen von Entwicklern stellt Apple im März 2008 das Software Development Kit (SDK) vor.

• In Kombination mit XCode ermöglicht das SDK das Entwickeln Nativer iOS-Apps mit den Sprachen Objective-C und Swift.

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/207

[1] https://en.wikipedia.org/wiki/IOS_SDK

Page 8: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Swift

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/208

OptionalsProtocol-orientedProgramming

Type-Inference Closures

Tuples

Structs &Classes

Functional ProgrammingPatterns

ARC

https://github.com/apple/swift

Page 9: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS Architektur

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/209

https://developer.apple.com

Page 10: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

iOS Layers & Frameworks

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/2010

https://developer.apple.com

MapKitNotificationUIKit

SpriteKit

Graphics

Video

Audio

SecurityNetwork

Multipeer Connectivity

SQLite

Core Data

Core LocationCore Motion

Page 11: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Beispiel: Core ML

Integration von vortrainierten Machine Learning Modellen in eigene App(Beispielsweise für Dominant Object Detection)

Auch möglich: Eigene Modell bauen basierend auf Neural Networks, SVMs, …

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/2011

https://developer.apple.com/documentation/coreml

Page 12: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Beispiel: Core ML

• Use Cases:• Vision: Face tracking, face detection, landmarks, text detection, rectangle

detection, barcode detection, object tracking, image registration

• Natural Language Processing: Language identification, tokenization, lemmatization, part of speech, and named entity recognition.

• Checkout https://developer.apple.com/machine-learning/

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/2012

Auch möglich: Cloud-Dienste

Page 13: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Beispiel: SpriteKit & Scene Kit• SpriteKit (Für 2D-Spiele)

• Framework zur Darstellung animierter 2D-Grafiken (Sprites).

• Enthält ebenfalls Funktionalität zur Umsetzung von 2D-Physik (Kollision zwischen Spielobjekten, Gravitation).

• Partikelengine

• Audio

• SceneKit (Für 3D-Spiele)• Framework zur Darstellung von 3D-Modellen (mit und ohne

Animation)

• Partikelengine

• 3D-Physikengine

• Audio

=> XCode Unterstützung

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/2013

https://twitter.com/mnuages

GameplayKit• Vorgefertigte Komponenten

für Games• KI (Wegfindung, Planning, …)• …

Page 14: Praktikum – iOS-Entwicklung · 2019-10-16 · Praktikum –iOS-Entwicklung Wintersemester 2019/20 Prof. Dr. Linnhoff-Popien Markus Friedrich, Christoph Roch 16.10.2019 Markus Friedrich,

Beispiel: ARKit

• Virtuelle Objekte auf Echtwelt-Oberflächen platzieren:

• Exakte Gesichtserkennung (Ausdruck, Topologie, Position, Orientierung)

• Präzise Positionserkennung

• Checkout: https://developer.apple.com/arkit/

16.10.2019Markus Friedrich, Christoph Roch - Praktikum iOS-Entwicklung

WS19/2014

https://www.archdaily.com/879403/the-real-star-of-the-apple-keynote-arkit-augmented-reality-technology

Neu: ARKit 3• People Occlusion• Motion Capture• …