Mobile Anwendungsentwicklung - Überblick über ios & Swift I -

Ähnliche Dokumente
Tutorium Rechnerorganisation

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

Deklarationen in C. Prof. Dr. Margarita Esponda

Inhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler

Einführung in die C-Programmierung

C# Programmierung. Eine Einführung in das.net Framework. C# Programmierung - Tag 1: Grundlagen

Übersicht Programmablaufsteuerung

MIKROPROZESSOR PROGRAMMIERUNG 8. VORLESUNG. LV-Nr SS INSTITUT FÜR ELEKTRONIK BIT

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Javakurs für Anfänger

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Einfache Rechenstrukturen und Kontrollfluss II

Multimedia im Netz Wintersemester 2011/12

Mac OS X und ios. Softwarearchitekturen SS Von Pawel Wall

PHP Code Konventionen Um einen einheitlichen Code zu generieren, der von jedem gelesen werden kann, müssen folgende Konventionen eingehalten werden.

Grundlagen der Informatik 2

Objective-C CheatSheet

Grundlagen von C. Ausarbeitung von Jonas Gresens

Hello world. Sebastian Dyroff. 21. September 2009

1. Übung zu "Numerik partieller Differentialgleichungen"

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Modellierung und Programmierung 1

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Modellierung und Programmierung

Informatik. Studiengang Chemische Technologie. Michael Roth WS 2012/2013. Hochschule Darmstadt -Fachbereich Informatik-

3. Auflage. O Reillys Taschenbibliothek. C# 5.0 kurz & gut. Joseph Albahari & Ben Albahari O REILLY. Aktualisierung von Lars Schulten

5.4 Klassen und Objekte

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Grundwissen Informatik JS September 2015

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Lösungsvorschlag zur 9. Übung

3 Objektorientierte Konzepte in Java

Programmiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm

Einführung in ActionScript

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Blöcke und Grand Central Dispatch

Skriptsprachen am Beispiel Python

Algorithmische Kernsprache. Zuweisung, einfache und bedingte Anweisung, Blöcke, Schleifen, return, debugging.

Java Einführung Methoden in Klassen

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Eine Einführung in C-Funktionen

[E-1] Wolf, Jürgen: C von A bis Z. Galileo Computing, 3. Auflage,

Scala & Lift. Ferenc Lajko

Prinzipieller Grundaufbau eines einfachen C-Programmes

Einführung in die Java- Programmierung

Übersicht. C Funktionen. Funktion main. Funktionen. Funktionsdefinition und und Funktionsaufruf Deklaration von Funktionen

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

5. Tutorium zu Programmieren

Java Kurs für Anfänger Einheit 5 Methoden

Java-Vorkurs Wintersemester 15/16

Proseminar C-Programmierung. Strukturen. Von Marcel Lebek

Die Programmiersprache C

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Noch für heute: primitive Datentypen in JAVA. Primitive Datentypen. Pseudocode. Dezimal-, Binär- und Hexadezimalsystem. der logische Typ boolean

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Organisatorisches. Einführung in die Programmierung in C Hochschule Regensburg Universitätsstraße 31, Regensburg

Modul 122 VBA Scribt.docx

Primitive Datentypen

Zusammengesetzte Datentypen -- Arrays und Strukturen

Linux Tutorium. 12. Shellprogrammierung. Version vom :38:56

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

1. Der Einstieg in Java. Was heißt Programmieren?

Computergrundlagen Programmieren in C

Neue Features in C# 2.0

Spracherweiterungen von C# 3.5

Inhaltsverzeichnis. 1 Hallo 13

Ab J2SE 5.0 Unterstützung formatierter Bildschirmausgaben. Mit den Operatoren und Klammern können Boolesche Ausdrücke gebildet werden Beispiel:

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

1 Polymorphie (Vielgestaltigkeit)

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Smartphone Entwicklung mit Android und Java

Objektorientierte Programmierung

Funktionen und Parameter

Programmieren in C/C++ und MATLAB

Sprachbeschreibung und Erweiterung

Codegeneratoren mit Xtend , A. Arnold

Probeklausur: Programmierung WS04/05

Programmieren in C/C++ und MATLAB

Klausur in Programmieren

Steht in der ersten Zeile #!/usr/bin/python und hat man die Ausführungsrechte gesetzt kann man es direkt ausführen.

Objektorientierte Programmierung. Kapitel 12: Interfaces

Klassenbeziehungen & Vererbung

Einführung in die Programmierung Arrays, Zeiger, Strings. Arvid Terzibaschian

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

Vorkurs C++ Programmierung

Einführung in die C++ Programmierung für Ingenieure

Ein erstes Java-Programm

Jürgen Bayer. Anonyme Methoden, Lambda-Ausdrücke und Ausdrucksbäume in.net

Anweisungsblöcke (dazu zählen auch Programme) werden in geschweifte Klammern eingeschlossen.

Einführung in die Informatik für Hörer aller Fakultäten II. Andreas Podelski Stephan Diehl Uwe Waldmann

Grundlagen der Programmiersprache C++

C# 2000 Expression Beispielcodes für Konsolen- und Formularanwendung

Objektorientierung: Klassen und Objekte

Propädeutikum zur Programmierung

Besonderheiten von C#

Java-Schulung Grundlagen

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Programmieren in C. -- ALLE Programmiersprachen sind HÄSSLICH -- Deklaration: erst der Datentyp, dann der Variablenname. Semikolon am Ende.

Transkript:

Mobile Anwendungsentwicklung - Überblick über & I - Prof. Dr. Michael Cebulla 4. November 2016 Hochschule Schmalkalden Wintersemester 2016/17 1 / 38 M. Cebulla Mobile Anwendungsentwicklung

Gliederung 1 Architektur Struktur einer -App 2 2 / 38 M. Cebulla Mobile Anwendungsentwicklung

Outline Architektur Struktur einer -App 1 Architektur Struktur einer -App 2 3 / 38 M. Cebulla Mobile Anwendungsentwicklung

UNIX Geschichte Architektur Struktur einer -App 4 / 38 M. Cebulla Mobile Anwendungsentwicklung

Architektur Struktur einer -App und UNIX Während Android auf dem Linux Kernel beruht, leitet sich von BSD-Unix her. basiert auf einem OS-X-Kern (Darwin), der wiederum auf ein Unix mit Mach-Kernel zurückgeht. OS X ist als UNIX zertifiziert und stellt somit die kommerziell erfolgreichste UNIX-Version dar. 5 / 38 M. Cebulla Mobile Anwendungsentwicklung

Architektur Struktur einer -App and OS X Unterschiede: Die Architektur ist auf ARM fokussiert Die Kernel-Sourcen sind geschlossen, nur der nicht-mobile OS X Kernel liegt quelloffen vor Es gibt einige neue APIS Als GUI wird Springboard eingesetzt (nicht Aqua) Restriktiveres Memory Management Kein root-access 6 / 38 M. Cebulla Mobile Anwendungsentwicklung

Architecture Architektur Struktur einer -App beruht auf Darwin (Mac OS X) 7 / 38 M. Cebulla Mobile Anwendungsentwicklung

Darwin Architektur Struktur einer -App Kernel XNU ist ein Hybrid aus BSD und Mach-Konstrukten. 8 / 38 M. Cebulla Mobile Anwendungsentwicklung

OS X Architecture Architektur Struktur einer -App 9 / 38 M. Cebulla Mobile Anwendungsentwicklung

Core OS Architektur Struktur einer -App 10 / 38 M. Cebulla Mobile Anwendungsentwicklung

Architektur Struktur einer -App Core Services 11 / 38 M. Cebulla Mobile Anwendungsentwicklung

Media Architektur Struktur einer -App 12 / 38 M. Cebulla Mobile Anwendungsentwicklung

Cocoa Touch Architektur Struktur einer -App 13 / 38 M. Cebulla Mobile Anwendungsentwicklung

Architektur Struktur einer -App Jetsam Jetsam ist ein Dienst der die Speicherbenutzung in OSX und überwacht Er verwaltet eine Liste von Prozessen, erkennt Situationen, in denen der Speicherplatz knapp wird und entscheidet, welche Applikationen entfernt werden, um Speicherplatz zu sparen. 14 / 38 M. Cebulla Mobile Anwendungsentwicklung

Sandbox Architektur Struktur einer -App -Apps laufen in einer Sandbox. Sie können nicht direkt auf die Ressourcen anderer Apps zugreifen. 15 / 38 M. Cebulla Mobile Anwendungsentwicklung

Struktur eine -App Architektur Struktur einer -App 16 / 38 M. Cebulla Mobile Anwendungsentwicklung

Event Lifecycle Architektur Struktur einer -App 17 / 38 M. Cebulla Mobile Anwendungsentwicklung

App Lifecycle Architektur Struktur einer -App 18 / 38 M. Cebulla Mobile Anwendungsentwicklung

Process Lifecyce Architektur Struktur einer -App 19 / 38 M. Cebulla Mobile Anwendungsentwicklung

Outline 1 Architektur Struktur einer -App 2 20 / 38 M. Cebulla Mobile Anwendungsentwicklung

Während Android-Apps normalerweise in Java programmiert werden beruht die Entwicklung in auf Objective-C, C oder C++ Neuerdings wurde eingeführt besitzt das Merkmal der Typ-Inferenz verzichtet auf das Semikolon am Ende von Anweisungen 21 / 38 M. Cebulla Mobile Anwendungsentwicklung

: Eine Konstante ist ein Wert, der nicht mehr geändert wird. Der Wert einer Variablen ist beliebig änderbar. Konstanten werden mit let deklariert, Variablen mit var 22 / 38 M. Cebulla Mobile Anwendungsentwicklung

Typisierung ist eine statisch typisierte Sprache: der Wert einer Variablen muss mit ihrer Typisierung übereinstimmen. Anderes als in Java muss jedoch bei der Deklaration nicht der Typ angegeben werden. Der Compiler inferiert den Typ aus dem Wert. 23 / 38 M. Cebulla Mobile Anwendungsentwicklung

Basistypen String Int Float Double Bool Gleitkommazahlen Gleitkommazahlen werden von der Typinferenz automatisch als Double eingeordnet. Floats müssen manuell annotiert werden. 24 / 38 M. Cebulla Mobile Anwendungsentwicklung

Typ-Konvertierung Anders als in Java ist die Typ-Konvertierung nicht implizit In muss immer explizit gecastet werden. Ausnahme: String-Interpolation 25 / 38 M. Cebulla Mobile Anwendungsentwicklung

Arrays Arrays verhalten sich ähnlich wie in Java Auch hier gibt es in die Typinferenz 26 / 38 M. Cebulla Mobile Anwendungsentwicklung

Ein Array modifizieren Erzeugen: var todo = ["Write Blog", "Return Call"] Anhängen: todo += "Get Grocery" todo += ["Send email", "Pickup Laundry"] Ersetzen: todo[0] = "Proofread Blog Post" todo[2..<5] = ["Pickup Laundry", "Get Grocery", "Cook Dinner"] 27 / 38 M. Cebulla Mobile Anwendungsentwicklung

Dictionarys Dictionarys sind ähnlich wie Key/Value-Stores Erzeugen: var cards = ["Jack" : 11, "Queen" : 12, "King" : 13] Modifikation: cards["ace"] = 15 cards["ace"] = 1 Zugreifen: println(cards["ace"]) 28 / 38 M. Cebulla Mobile Anwendungsentwicklung

Optionals Mit Optionals bezeichnet man eine Klasse von Variablen, bei denen der Wert fehlen kann. Sie werden mit nil initialisiert. Optionals werden durch ein Fragezeichen? hinter dem Typbezeichner markiert. Falls vorhanden, muss der Wert mit einem Ausrufezeichen! extrahiert werden. 29 / 38 M. Cebulla Mobile Anwendungsentwicklung

Wie in Java gibt es zwei Arten von -Operatoren: Fallunterscheidungen: if und switch Schleifen: for-in, for, while und repeat-while 30 / 38 M. Cebulla Mobile Anwendungsentwicklung

If Statements if cardvalue == 11 { println("jack") } else if cardvalue == 12 { println("queen") } else { println("not found") } Runde Klammern um die Bedingung sind optional (wenn es sich um eine einzige Bedingung handelt) Geschweifte Klammern um die Code-Blöcke sind dagegen verpflichtend Im If-Statement muss die Bedingung ein Boole scher Ausdruck sein 31 / 38 M. Cebulla Mobile Anwendungsentwicklung

Switch-Statements Es wird kein break-statement benötigt Es können beliebe Datentypen im switch-statement verwendet werden Der Compiler prüft, ob alle Fälle abgedeckt sind (evtl. durch ein default-statement 32 / 38 M. Cebulla Mobile Anwendungsentwicklung

for-in 33 / 38 M. Cebulla Mobile Anwendungsentwicklung

Schleifen Folgende Operatoren für Indeces in einer for-schleife:..< für ein Intervall ohne den höchsten Wert... für ein Intervall mit dem höchsten Wert 34 / 38 M. Cebulla Mobile Anwendungsentwicklung

Beispiel: 35 / 38 M. Cebulla Mobile Anwendungsentwicklung

: Syntax Das Schlüsselwort func wird verwendet, um eine Funktion zu deklarieren Der Pfeil -> trennt Eingabeparameter von Rückgabewerten 36 / 38 M. Cebulla Mobile Anwendungsentwicklung

Seit 3 könne die formalen Parameter eine Funktion nicht mehr mit var annotiert werden. Sie sind deshalb konstant und können im Funktionsrumpf nicht verändert werden. Deshalb müssen die Werte von Parametern i.d.r. an lokale Varialben zugewiesen werden. In müssen beim Funktionsaufruf die Eingabeparameter mit den Namen der formalen Parameter annotiert werden. 37 / 38 M. Cebulla Mobile Anwendungsentwicklung

: Weitere Themen Tuple-Typen, Beliebig viele Argumente Verschachtelte Higher-order Functions & Closures 38 / 38 M. Cebulla Mobile Anwendungsentwicklung