iOS mit Swift

Titel der Veranstaltung

Apple Programmierung mit iOS und Swift

Kurze Inhaltsangabe:

Um Programme für Apple-Produkte zu entwickeln, benötigte man „früher“ ObjectiveC. Diese Programmiersprache stammt aus dem Jahr 1982 und ist eigentlich C mit einem objektorientierten Aufsatz. Seit dem Jahr 2014 existiert die neue Sprache Swift. Hier wurde vieles aus anderen neuen Sprachen „entliehen“. Es ist eine moderne Sprache, die sowohl deklarativ als auch funktional benutzt werden kann. In den zwei Tagen wird die Sprache „Swift“ und die IDE „xcode“ an vielen Beispielen vorgestellt. Die grafischen Komponenten werden mit Drag&Drop à la Delphi bzw. Winforms eingefügt (leider).

Programmiersprache: Swift
IDE: xcode

Dauer: 2 Tage
Termine:
- Donnerstag: 19.05.2016
- Freitag: 20.05.2016
Uhrzeit: 09:00 Uhr bis 17:00 Uhr
Raum: 9.328
Anzahl der Teilnehmer max.: 15 Studenten
Sonstiges: Kenntnisse in objektorientierter Programmierung erforderlich


Gliederung

  1. Einleitung, Geschichte (kurz)
  2. ‹berblick der Sprache
  3. Aufbau der IDE xcode
  4. Einfache App's
    • Label
    • TextField
    • Button
  5. Komplexere App's mit
    • Slider
    • Switch (An/Aus)
    • Segmented Control (RadioButton)
    • ProgressView
    • DatePicker
    • Multi-View App's
    • MVC App's
  6. CoreDate (Speicherung der eigenen Daten)
    • Ini-Datei
    • Serialize (einfach)
    • Datenbanken
    • Sensoren

Scripte

Kapitel Script (Eine Folie pro Seite)
(Powerpoint)
Script (Zwei Folien pro Seite)
(Powerpoint)
PDF-Datei (WinWord)
Vorstellung Vorstellung.pdf    
Einleitung Einleitung.pdf Einleitung-2.pdf
Sprache Sprache.pdf Sprache-2.pdf iOS-Swift.pdf
Version vom 09.04.2016
xcode xcode.pdf xcode-2.pdf iOS-xcode.pdf
Version vom 09.04.2016

Beispiele

Projektname Beschreibung Bilder, Quellcode, Projekt
Taschenrechner Taschenrechner mit Label, TextField, SegmentedControl und einem Schalter Bild: iOS2.png
Quellcode: iOS2.txt
Projekt: iOS2.zip
Swift Beispiel mit dem Swift-Schalter Bild: iOSSwitch.png
Quellcode: iOSSwitch.txt
Projekt: iOSSwitch.zip
Stepper Beispiel mit einem Stepper Bild: iOSStepper.png
Quellcode: iOSStepper.txt
Projekt: iOSStepper.zip
Slider Beispiel mit einem Slider Bild: iOSSlider.png
Quellcode: iOSSlider.txt
Projekt: iOSSlider.zip
PickerView, Liste Beispiel mit einem PickerView Bild: iOSPickerView.png
Quellcode: iOSPickerView.txt
Projekt: iOSPickerView.zip
DatePicker Beispiel mit einem DatePicker Bild: iOSDatePicker.png
Quellcode: iOSDatePicker.txt
Projekt: iOSDatePicker.zip
ProgressView Beispiel mit einem ProgressView, ProgressBar Bild: iOSProgressView.png
Quellcode: iOSProgressView.txt
Projekt: iOSProgressViewr.zip
TextView Beispiel mit einem TextView UND einer ScrollView, wichtig! Bild: textview1.png
Bild: textview2.png
Bild: scrollview.png
Quellcode: iOSTextView.txt
Projekt: iOSTextView.zip
ActivityIndikator Beispiel mit einem ActivityIndikator. Leider funktioniert das Beispiel nur, wenn man die For-Schleife nicht aktiviert. Bild: iOSActivityIndikator.png
Quellcode: iOSActivityIndikator.txt
Projekt: iOSActivityIndikator.zip
TabbedBar Projekt mit einem TabbedBar. Das Projekt hat automatisch zwei View, die sich gegenseitig aufrufen können (Schalter unten) Bild: iOSTabbedBar1.png
Bild: iOSTabbedBar2.png
Quellcode: FirstViewController.txt
Quellcode: SecondViewController.txt
Projekt: iOSTabbedBar.zip

Problems and solutions in Swift

Keywords Description Beschreibung Solution
String Int
Version 6
Convert String to Int Konvertieren eines Strings in einer Int-Variablen // Version 6 hat no function Int("12")
var zahl1=uiInput.text.toInt()
// please use equal nil, not !=nil
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let i:Int=zahl1!
_uiLabel.text="zahl1: "+String(i)
}
String Int
Version 7
Convert String to Int Konvertieren eines Strings in einer Int-Variablen let input:String=uiInputInt.text!
var zahl1=Int(input)
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let i:Int=zahl1!
_uiLabel.text="zahl1: "+String(i)
}
String Float
String Double
Version 6
Consert String to Double Konvertieren eines Strings in einer Double-Variablen // Version 6 hat no function Double("12.3")
let zahl1=(uiInput.text! as NSString).doubleValue
// please use equal nil, not !=nil
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let value:Double=zahl1!
_uiLabel.text="zahl1: "+String(value)
}
String Float
String Double
Version 7
Consert String to Double Konvertieren eines Strings in einer Double-Variablen let input:String=uiInputInt.text!
var zahl1=Double(input)
if zahl1==nil {
_uiLabel.text="error"
}
else {
_let value:Int=zahl1!
_uiLabel.text="zahl1: "+String(".f",value)
_uiLabel.text="zahl1: "+String(".4f",value)
}
Double String Convert a Double to a String Konvertieren eines Double-Wertes in einer Double-Variablen  

Formatierung einer Variablen zu einem String

To convert a variable, one use the same code you uses with the c-function printf.

Convert a Int to a String:

%d: 32 Bit sign-integer number
%u: 32 Bit unsigned number
%x: 32 Bit unsigned number, with hexadecimal-code


Convert a Float to a String:
%f: float number

%10.3f: float number
_7 digits for the numbers before the decimal point
_3 digits for the number after the decimal point

%.3f: float number
any number before the decimal point
_3 digits for the number after the decimal point

Convert a Double to a String:
%f: double number

%10.3f: double number
_7 digits for the numbers before the decimal point
_3 digits for the number after the decimal point

%e: double number
the number convert in exponetial-system: 1.34E+3


Format a String:
%@: String-Format


SaveData:NSUserDefaults

NSUserDefaults
An NSUserDefaults is the same code like an ini-files.
You can store ans load a variable with a key.
With this functions, you can store values in the plist-file (properties)

Examples for save:
let nr:Int=41
let defaults=NSUserDefaults.standardUserDefaults()
defaults.setObject(nr,forKey: "nr")
defaults.setInteger(nr,forKey: "nr")
let str:String="Norman Bates"
let defaults=NSUserDefaults.standardUserDefaults()
defaults.setObject(str,forKey: "name")

Examples for load:
var nr:Int=0
let defaults=NSUserDefaults.standardUserDefaults()
nr=defaults.integerForKey("nr")
// a int, float or a double has ever a value, if the key not exist, you get the number 0
var str:String=""
let defaults=NSUserDefaults.standardUserDefaults()
str=defaults.stringForKey("name")!
// a string can be nil !!!

Function for save:
defaults.setObject(nr,forKey: "nr")

Function for load:
let nr:Int=defaults.integerForKey("nr")
let b:Bool=defaults.boolForKey("withShadow")
let myArray[Int]=defaults.arrayForKey("myArray")
let value:Float=defaults.floatForKey("price")
let value:Double=defaults.doubleForKey("price")
let obj:AnyObject=defaults.objectForKey("custom")
let strArray:[AnyObject]=defaults.stringArrayForKey("customs")

Function for save:
defaults.setObject(str,forKey: "name")
defaults.setBool(true,forKey: "withShadow")
defaults.setInteger(1234,forKey: "age")
defaults.setFloat(12.34,forKey: "price")
defaults.setDouble(12.34,forKey: "price")
defaults.setObject(myArray,forKey: "customs")
defaults.setObject(myDictionary,forKey: "customs")




Literatur

iOS-Apps programmieren mit Swift
Christian Bleske
dpunkt.verlag
ISBN 978-3-86490-263-5

Swift 2
Michael Kofler
Rheinwerk
ISBN: 978-3-8362-3651-5

Durchstarten mit Swift
Stefan Popp & Ralf Peters
O‘Reilly
ISBN: 978-3-96009-005-2