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
- Einleitung, Geschichte (kurz)
- Überblick der Sprache
- Aufbau der IDE xcode
- Einfache App's
- Label
- TextField
- Button
- Komplexere App's mit
- Slider
- Switch (An/Aus)
- Segmented Control (RadioButton)
- ProgressView
- DatePicker
- Multi-View App's
- MVC App's
- 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