iOS
Plattform und Konzepte
Sebastian Meßingfeld
11.04.2013
1© FH AACHEN | Sebastian Meßingfeld
Inhalt
2© FH AACHEN | Sebastian Meßingfeld
•  Voraussetzungen für iOS Entwicklung
•  Programmiersprache Objective C
•  Tools
•  Beispiel: Taschenrechner
•  Deployment
Voraussetzungen für iOS Entwicklung
•  Benötigte Hardware
•  Benötigte Software
•  Sonstige Voraussetzungen
3© FH AACHEN | Sebastian Meßingfeld
Voraussetzungen für iOS Entwicklung
Benötigte Hardware
•  Intel-basierter Mac
•  ab Jahr 2006
•  Betriebssystem: > Snow Leopard (Jahr: 2009)
•  iOS Gerät(e)
•  zum Testen
•  unterschiedlichste Hardwareausstattungen vorhanden
•  iOS 6 läuft auf ca. 4 Jahre alten iPhone (>= 3GS)
4© FH AACHEN | Sebastian Meßingfeld
Voraussetzungen für iOS Entwicklung
Benötigte Software
•  Entwicklungsumgebung
•  iOS SDK
gleich mehr ...
5© FH AACHEN | Sebastian Meßingfeld
Voraussetzungen für iOS Entwicklung
Sonstige Voraussetzungen
•  iOS Developer Program
•  kostenpflichtige Mitgliedschaft
•  zum Testen auf Hardware
•  zur Veröffentlichung der Anwendung im App-Store
6© FH AACHEN | Sebastian Meßingfeld
Programmiersprache Objective-C
•  Besonderheiten
•  Frameworks für iOS Entwicklung
•  Paradigmen
7© FH AACHEN | Sebastian Meßingfeld
Programmiersprache Objective-C
Besonderheiten (auf iOS)
•  Erweiterung von C
•  Header / Implementations-Dateien
•  Anderer Syntax im Vergleich zu C++
•  dynamische Typisierung
•  Keine Methodenaufrufe => Nachrichten
versenden
•  []-Syntax: [Empfänger Nachricht];
•  Empfänger sorgt für Verarbeitung
•  Empfänger entscheidet welche Methode aufgerufen
wird
•  Kein Garbage Collector => Reference Couting
•  Manuell: retain / release auf Objekt aufrufen
•  Seit iOS 5 automatisch möglich (ARC)
8© FH AACHEN | Sebastian Meßingfeld
Programmiersprache Objective-C
Frameworks
•  Cocoa Touch
•  Sammlung von Frameworks
•  Angelehnt an Cocoa für Mac
•  Anpassungen iOS (Gestenerkennung, UI)
•  Grundlage für iOS Programmierung
•  Cocoa Touch Frameworks
•  Foundation Kit (Standard-Bibliothek: Strings, ... )
•  UIKit (für Benutzeroberflächen)
•  CoreData
•  CoreAnimation
•  MapKit
•  ...
9© FH AACHEN | Sebastian Meßingfeld
Programmiersprache Objective-C
Paradigmen in Cocoa Touch
•  MVC
•  Model: Datenhalterung (z.b. CoreData)
•  View: Anzeige von Daten (UI mittels GUI Builder)
•  Controller: Verbindet Model und View
•  Key-Value-Coding / Key-Value-Observing
•  „Oberserver“ Pattern
•  reagieren auf Wertänderungen anderer Objekte
•  keine direkte Zuweisung von Werte zu Eigenschaften
•  Zuweisung über Setter-Methoden (mittels „Key“)
•  zur gegenseitiger Synchronisation zwischen GUI und
Model geeignet
10© FH AACHEN | Sebastian Meßingfeld
Programmiersprache Objective-C
Paradigmen in Cocoa Touch
•  Target-Action
•  Target: Ziel / Action: Nachricht für Ziel
•  Eine Nachricht wird an ein Ziel geschickt
•  Ziel muss Nachricht nicht verarbeiten
•  Einsatz: Verarbeitung von UI-Ereignisse (Button-Klick)
•  Responder Chain
•  Art der Event-Verarbeitung
•  „Event Bubbling“ in UI Hierachie
•  Weiterleitung des Events in Hierachie
bis es verarbeitet wird
•  Event kann auch gezielt an „First
Responder“ geschickt werden
11© FH AACHEN | Sebastian Meßingfeld
Tools
•  Xcode
•  GUI Builder
•  Simulator
•  Instruments
•  Organizer
=> alles kommt in einem Paket
12© FH AACHEN | Sebastian Meßingfeld
Tools
Xcode
13© FH AACHEN | Sebastian Meßingfeld
Tools
Xcode
14© FH AACHEN | Sebastian Meßingfeld
•  Entwicklungsumgebung für Mac- /iOS-Apps
•  Bietet alle Funktionalitäten moderner IDEs
•  Projektverwaltung
•  Unterstützung während Programmierung
•  Debugger
•  integrierte Versionsverwaltung (Git)
•  „alles“ aus Xcode möglich
•  Programmieren
•  Testen (auch Hardware-Registrierung)
•  App-Store Upload
Tools
Xcode - Projektstruktur
AppDelegate(.h/.m)
•  Anwendungs-Controller
ViewController(.h/.m)
•  View-bezogener Controller
*.storyboard/*.xib
•  GUI-XML-Beschreibung
•  Supporting Files
•  Frameworks
•  Products
15© FH AACHEN | Sebastian Meßingfeld
Tools
GUI Builder
16© FH AACHEN | Sebastian Meßingfeld
Tools
GUI Builder
17© FH AACHEN | Sebastian Meßingfeld
•  in Xcode enthalten (vorher Interface Builder)
•  Erzeugt .xib / .storyboard Dateien
•  XML-basierte Beschreibung der Oberfläche
•  Ermöglicht zusammenklicken der Oberfläche
•  Standard UI-Elemente vorhanden
•  Gestaltung des Anwendungsablauf
•  Wechsel zwischen Ansichten
•  Verknüpfung von Code und GUI Elementen
•  IBOutlets: Verweise für Zugriff der UI aus Code
•  IBActions: Delegate Funktionen für GUI-Events
Tools
Simulator
18© FH AACHEN | Sebastian Meßingfeld
Tools
Simulator
19© FH AACHEN | Sebastian Meßingfeld
Tools
Simulator
20© FH AACHEN | Sebastian Meßingfeld
Tools
Simulator
21© FH AACHEN | Sebastian Meßingfeld
•  Testen auf Mac
•  Simulation unterschiedlicher „Endgeräte“
•  iOS-Version
•  Display-Größe
•  Simulation von Ereignissen
•  Endgeräte drehen (links/rechts)
•  schütteln
•  Home-Button gedrückt
•  Sperrung des Gerätes
•  Anruf
•  Speicherwarnhinweis
Entwicklungsumgebung
Instruments
22© FH AACHEN | Sebastian Meßingfeld
Entwicklungsumgebung
Instruments
23© FH AACHEN | Sebastian Meßingfeld
•  automatisierte UI-Tests
•  Analyse von Systemauslastungen
•  CPU
•  Speicher
•  I/O
•  Grafik (frames per second)
•  Fehleranalyse
•  Memory Leaks
Tools
Organizer
24© FH AACHEN | Sebastian Meßingfeld
Tools
Organizer
25© FH AACHEN | Sebastian Meßingfeld
•  in Xcode enthalten
•  Verwaltung
•  Testgeräte
•  Projekte
•  Apps
Demo
26© FH AACHEN | Sebastian Meßingfeld
Verbesserung der GUI
•  Angepasstes Tastaturlayout
•  Tastatur ausblenden
•  App/ Eingabefeld nicht verdecken
•  Länderspez. Verarbeitung von Fließkommazahlen
27© FH AACHEN | Sebastian Meßingfeld
Verbesserung der GUI
Angepasstes Tastaturlayout
28© FH AACHEN | Sebastian Meßingfeld
•  Je nach Zweck
verschiedene
Tastaturlayouts
•  Decimal Pad besser
geeignet für Eingabe
der Werte
Verbesserung der GUI
Ausblenden der Tastatur
29© FH AACHEN | Sebastian Meßingfeld
•  Möglichkeiten zum Ausblenden der Tastatur
•  Touch-Event auf den Hintergrund
•  Return-Key
Verbesserung der GUI
30© FH AACHEN | Sebastian Meßingfeld
•  App/ Eingabefeld nicht verdecken
•  View nach oben verschieben
•  View mit Touch verschieben
•  Länderspezifische Verarbeitung von
Fließkommazahlen
•  Dezimalpunkt (USA)
•  Dezimalkomma (DE)
•  Vor String->Double Umwandlung ersetzen
Deployment
•  Testen auf Hardware
•  Verbreitung im App-Store
31© FH AACHEN | Sebastian Meßingfeld
Deployment
Testen auf Hardware
32© FH AACHEN | Sebastian Meßingfeld
•  Registrierung der Zielhardware
•  iOS Developer Program Zugang nötig
•  Erstellung eines Profiles für jedes Gerät
•  Entwickler
•  Profilerstellung direkt über Xcode
•  Endgeräte als Ausführungsziel auswählbar
•  Tester
•  Austausch Gerätenummer <> Profil mit Entwickler
•  Zusendung der App nötig
•  Installation der App über iTunes auf Endgerät
Deployment
Verbreitung
33© FH AACHEN | Sebastian Meßingfeld
•  iOS Developer Program Zugang nötig
•  Erstellung eines Profiles für Distribution
•  Build-Konfiguration in Xcode
•  Distribution Profil
•  iOS Version
•  Architektur
•  Erstellte App in App-Store laden
•  Webportal
•  Xcode Organizer
FH Aachen
Fachbereich Elektrotechnik & Informationstechnik
Sebastian Meßingfeld
34© FH AACHEN | Sebastian Meßingfeld

Apple iPhone iOS - Plattform und Konzepte

  • 1.
    iOS Plattform und Konzepte SebastianMeßingfeld 11.04.2013 1© FH AACHEN | Sebastian Meßingfeld
  • 2.
    Inhalt 2© FH AACHEN| Sebastian Meßingfeld •  Voraussetzungen für iOS Entwicklung •  Programmiersprache Objective C •  Tools •  Beispiel: Taschenrechner •  Deployment
  • 3.
    Voraussetzungen für iOSEntwicklung •  Benötigte Hardware •  Benötigte Software •  Sonstige Voraussetzungen 3© FH AACHEN | Sebastian Meßingfeld
  • 4.
    Voraussetzungen für iOSEntwicklung Benötigte Hardware •  Intel-basierter Mac •  ab Jahr 2006 •  Betriebssystem: > Snow Leopard (Jahr: 2009) •  iOS Gerät(e) •  zum Testen •  unterschiedlichste Hardwareausstattungen vorhanden •  iOS 6 läuft auf ca. 4 Jahre alten iPhone (>= 3GS) 4© FH AACHEN | Sebastian Meßingfeld
  • 5.
    Voraussetzungen für iOSEntwicklung Benötigte Software •  Entwicklungsumgebung •  iOS SDK gleich mehr ... 5© FH AACHEN | Sebastian Meßingfeld
  • 6.
    Voraussetzungen für iOSEntwicklung Sonstige Voraussetzungen •  iOS Developer Program •  kostenpflichtige Mitgliedschaft •  zum Testen auf Hardware •  zur Veröffentlichung der Anwendung im App-Store 6© FH AACHEN | Sebastian Meßingfeld
  • 7.
    Programmiersprache Objective-C •  Besonderheiten • Frameworks für iOS Entwicklung •  Paradigmen 7© FH AACHEN | Sebastian Meßingfeld
  • 8.
    Programmiersprache Objective-C Besonderheiten (aufiOS) •  Erweiterung von C •  Header / Implementations-Dateien •  Anderer Syntax im Vergleich zu C++ •  dynamische Typisierung •  Keine Methodenaufrufe => Nachrichten versenden •  []-Syntax: [Empfänger Nachricht]; •  Empfänger sorgt für Verarbeitung •  Empfänger entscheidet welche Methode aufgerufen wird •  Kein Garbage Collector => Reference Couting •  Manuell: retain / release auf Objekt aufrufen •  Seit iOS 5 automatisch möglich (ARC) 8© FH AACHEN | Sebastian Meßingfeld
  • 9.
    Programmiersprache Objective-C Frameworks •  CocoaTouch •  Sammlung von Frameworks •  Angelehnt an Cocoa für Mac •  Anpassungen iOS (Gestenerkennung, UI) •  Grundlage für iOS Programmierung •  Cocoa Touch Frameworks •  Foundation Kit (Standard-Bibliothek: Strings, ... ) •  UIKit (für Benutzeroberflächen) •  CoreData •  CoreAnimation •  MapKit •  ... 9© FH AACHEN | Sebastian Meßingfeld
  • 10.
    Programmiersprache Objective-C Paradigmen inCocoa Touch •  MVC •  Model: Datenhalterung (z.b. CoreData) •  View: Anzeige von Daten (UI mittels GUI Builder) •  Controller: Verbindet Model und View •  Key-Value-Coding / Key-Value-Observing •  „Oberserver“ Pattern •  reagieren auf Wertänderungen anderer Objekte •  keine direkte Zuweisung von Werte zu Eigenschaften •  Zuweisung über Setter-Methoden (mittels „Key“) •  zur gegenseitiger Synchronisation zwischen GUI und Model geeignet 10© FH AACHEN | Sebastian Meßingfeld
  • 11.
    Programmiersprache Objective-C Paradigmen inCocoa Touch •  Target-Action •  Target: Ziel / Action: Nachricht für Ziel •  Eine Nachricht wird an ein Ziel geschickt •  Ziel muss Nachricht nicht verarbeiten •  Einsatz: Verarbeitung von UI-Ereignisse (Button-Klick) •  Responder Chain •  Art der Event-Verarbeitung •  „Event Bubbling“ in UI Hierachie •  Weiterleitung des Events in Hierachie bis es verarbeitet wird •  Event kann auch gezielt an „First Responder“ geschickt werden 11© FH AACHEN | Sebastian Meßingfeld
  • 12.
    Tools •  Xcode •  GUIBuilder •  Simulator •  Instruments •  Organizer => alles kommt in einem Paket 12© FH AACHEN | Sebastian Meßingfeld
  • 13.
    Tools Xcode 13© FH AACHEN| Sebastian Meßingfeld
  • 14.
    Tools Xcode 14© FH AACHEN| Sebastian Meßingfeld •  Entwicklungsumgebung für Mac- /iOS-Apps •  Bietet alle Funktionalitäten moderner IDEs •  Projektverwaltung •  Unterstützung während Programmierung •  Debugger •  integrierte Versionsverwaltung (Git) •  „alles“ aus Xcode möglich •  Programmieren •  Testen (auch Hardware-Registrierung) •  App-Store Upload
  • 15.
    Tools Xcode - Projektstruktur AppDelegate(.h/.m) • Anwendungs-Controller ViewController(.h/.m) •  View-bezogener Controller *.storyboard/*.xib •  GUI-XML-Beschreibung •  Supporting Files •  Frameworks •  Products 15© FH AACHEN | Sebastian Meßingfeld
  • 16.
    Tools GUI Builder 16© FHAACHEN | Sebastian Meßingfeld
  • 17.
    Tools GUI Builder 17© FHAACHEN | Sebastian Meßingfeld •  in Xcode enthalten (vorher Interface Builder) •  Erzeugt .xib / .storyboard Dateien •  XML-basierte Beschreibung der Oberfläche •  Ermöglicht zusammenklicken der Oberfläche •  Standard UI-Elemente vorhanden •  Gestaltung des Anwendungsablauf •  Wechsel zwischen Ansichten •  Verknüpfung von Code und GUI Elementen •  IBOutlets: Verweise für Zugriff der UI aus Code •  IBActions: Delegate Funktionen für GUI-Events
  • 18.
    Tools Simulator 18© FH AACHEN| Sebastian Meßingfeld
  • 19.
    Tools Simulator 19© FH AACHEN| Sebastian Meßingfeld
  • 20.
    Tools Simulator 20© FH AACHEN| Sebastian Meßingfeld
  • 21.
    Tools Simulator 21© FH AACHEN| Sebastian Meßingfeld •  Testen auf Mac •  Simulation unterschiedlicher „Endgeräte“ •  iOS-Version •  Display-Größe •  Simulation von Ereignissen •  Endgeräte drehen (links/rechts) •  schütteln •  Home-Button gedrückt •  Sperrung des Gerätes •  Anruf •  Speicherwarnhinweis
  • 22.
  • 23.
    Entwicklungsumgebung Instruments 23© FH AACHEN| Sebastian Meßingfeld •  automatisierte UI-Tests •  Analyse von Systemauslastungen •  CPU •  Speicher •  I/O •  Grafik (frames per second) •  Fehleranalyse •  Memory Leaks
  • 24.
    Tools Organizer 24© FH AACHEN| Sebastian Meßingfeld
  • 25.
    Tools Organizer 25© FH AACHEN| Sebastian Meßingfeld •  in Xcode enthalten •  Verwaltung •  Testgeräte •  Projekte •  Apps
  • 26.
    Demo 26© FH AACHEN| Sebastian Meßingfeld
  • 27.
    Verbesserung der GUI • Angepasstes Tastaturlayout •  Tastatur ausblenden •  App/ Eingabefeld nicht verdecken •  Länderspez. Verarbeitung von Fließkommazahlen 27© FH AACHEN | Sebastian Meßingfeld
  • 28.
    Verbesserung der GUI AngepasstesTastaturlayout 28© FH AACHEN | Sebastian Meßingfeld •  Je nach Zweck verschiedene Tastaturlayouts •  Decimal Pad besser geeignet für Eingabe der Werte
  • 29.
    Verbesserung der GUI Ausblendender Tastatur 29© FH AACHEN | Sebastian Meßingfeld •  Möglichkeiten zum Ausblenden der Tastatur •  Touch-Event auf den Hintergrund •  Return-Key
  • 30.
    Verbesserung der GUI 30©FH AACHEN | Sebastian Meßingfeld •  App/ Eingabefeld nicht verdecken •  View nach oben verschieben •  View mit Touch verschieben •  Länderspezifische Verarbeitung von Fließkommazahlen •  Dezimalpunkt (USA) •  Dezimalkomma (DE) •  Vor String->Double Umwandlung ersetzen
  • 31.
    Deployment •  Testen aufHardware •  Verbreitung im App-Store 31© FH AACHEN | Sebastian Meßingfeld
  • 32.
    Deployment Testen auf Hardware 32©FH AACHEN | Sebastian Meßingfeld •  Registrierung der Zielhardware •  iOS Developer Program Zugang nötig •  Erstellung eines Profiles für jedes Gerät •  Entwickler •  Profilerstellung direkt über Xcode •  Endgeräte als Ausführungsziel auswählbar •  Tester •  Austausch Gerätenummer <> Profil mit Entwickler •  Zusendung der App nötig •  Installation der App über iTunes auf Endgerät
  • 33.
    Deployment Verbreitung 33© FH AACHEN| Sebastian Meßingfeld •  iOS Developer Program Zugang nötig •  Erstellung eines Profiles für Distribution •  Build-Konfiguration in Xcode •  Distribution Profil •  iOS Version •  Architektur •  Erstellte App in App-Store laden •  Webportal •  Xcode Organizer
  • 34.
    FH Aachen Fachbereich Elektrotechnik& Informationstechnik Sebastian Meßingfeld 34© FH AACHEN | Sebastian Meßingfeld