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
•  Too...
Voraussetzungen für iOS Entwicklung
•  Benötigte Hardware
•  Benötigte Software
•  Sonstige Voraussetzungen
3© FH AACHEN |...
Voraussetzungen für iOS Entwicklung
Benötigte Hardware
•  Intel-basierter Mac
•  ab Jahr 2006
•  Betriebssystem: > Snow Le...
Voraussetzungen für iOS Entwicklung
Benötigte Software
•  Entwicklungsumgebung
•  iOS SDK
gleich mehr ...
5© FH AACHEN | S...
Voraussetzungen für iOS Entwicklung
Sonstige Voraussetzungen
•  iOS Developer Program
•  kostenpflichtige Mitgliedschaft
•...
Programmiersprache Objective-C
•  Besonderheiten
•  Frameworks für iOS Entwicklung
•  Paradigmen
7© FH AACHEN | Sebastian ...
Programmiersprache Objective-C
Besonderheiten (auf iOS)
•  Erweiterung von C
•  Header / Implementations-Dateien
•  Andere...
Programmiersprache Objective-C
Frameworks
•  Cocoa Touch
•  Sammlung von Frameworks
•  Angelehnt an Cocoa für Mac
•  Anpas...
Programmiersprache Objective-C
Paradigmen in Cocoa Touch
•  MVC
•  Model: Datenhalterung (z.b. CoreData)
•  View: Anzeige ...
Programmiersprache Objective-C
Paradigmen in Cocoa Touch
•  Target-Action
•  Target: Ziel / Action: Nachricht für Ziel
•  ...
Tools
•  Xcode
•  GUI Builder
•  Simulator
•  Instruments
•  Organizer
=> alles kommt in einem Paket
12© FH AACHEN | Sebas...
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äte...
Tools
Xcode - Projektstruktur
AppDelegate(.h/.m)
•  Anwendungs-Controller
ViewController(.h/.m)
•  View-bezogener Controll...
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 / ...
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-...
Entwicklungsumgebung
Instruments
22© FH AACHEN | Sebastian Meßingfeld
Entwicklungsumgebung
Instruments
23© FH AACHEN | Sebastian Meßingfeld
•  automatisierte UI-Tests
•  Analyse von Systemausl...
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änderspe...
Verbesserung der GUI
Angepasstes Tastaturlayout
28© FH AACHEN | Sebastian Meßingfeld
•  Je nach Zweck
verschiedene
Tastatu...
Verbesserung der GUI
Ausblenden der Tastatur
29© FH AACHEN | Sebastian Meßingfeld
•  Möglichkeiten zum Ausblenden der Tast...
Verbesserung der GUI
30© FH AACHEN | Sebastian Meßingfeld
•  App/ Eingabefeld nicht verdecken
•  View nach oben verschiebe...
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 Pro...
Deployment
Verbreitung
33© FH AACHEN | Sebastian Meßingfeld
•  iOS Developer Program Zugang nötig
•  Erstellung eines Prof...
FH Aachen
Fachbereich Elektrotechnik & Informationstechnik
Sebastian Meßingfeld
34© FH AACHEN | Sebastian Meßingfeld
Nächste SlideShare
Wird geladen in …5
×

Apple iPhone iOS - Plattform und Konzepte

479 Aufrufe

Veröffentlicht am

Vorstellung der Apple iOS Plattform

Veröffentlicht in: Software
0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
479
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
6
Aktionen
Geteilt
0
Downloads
0
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

Apple iPhone iOS - Plattform und Konzepte

  1. 1. iOS Plattform und Konzepte Sebastian Meßingfeld 11.04.2013 1© FH AACHEN | Sebastian Meßingfeld
  2. 2. Inhalt 2© FH AACHEN | Sebastian Meßingfeld •  Voraussetzungen für iOS Entwicklung •  Programmiersprache Objective C •  Tools •  Beispiel: Taschenrechner •  Deployment
  3. 3. Voraussetzungen für iOS Entwicklung •  Benötigte Hardware •  Benötigte Software •  Sonstige Voraussetzungen 3© FH AACHEN | Sebastian Meßingfeld
  4. 4. 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
  5. 5. Voraussetzungen für iOS Entwicklung Benötigte Software •  Entwicklungsumgebung •  iOS SDK gleich mehr ... 5© FH AACHEN | Sebastian Meßingfeld
  6. 6. 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
  7. 7. Programmiersprache Objective-C •  Besonderheiten •  Frameworks für iOS Entwicklung •  Paradigmen 7© FH AACHEN | Sebastian Meßingfeld
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. Tools •  Xcode •  GUI Builder •  Simulator •  Instruments •  Organizer => alles kommt in einem Paket 12© FH AACHEN | Sebastian Meßingfeld
  13. 13. Tools Xcode 13© FH AACHEN | Sebastian Meßingfeld
  14. 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. 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. 16. Tools GUI Builder 16© FH AACHEN | Sebastian Meßingfeld
  17. 17. 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
  18. 18. Tools Simulator 18© FH AACHEN | Sebastian Meßingfeld
  19. 19. Tools Simulator 19© FH AACHEN | Sebastian Meßingfeld
  20. 20. Tools Simulator 20© FH AACHEN | Sebastian Meßingfeld
  21. 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. 22. Entwicklungsumgebung Instruments 22© FH AACHEN | Sebastian Meßingfeld
  23. 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. 24. Tools Organizer 24© FH AACHEN | Sebastian Meßingfeld
  25. 25. Tools Organizer 25© FH AACHEN | Sebastian Meßingfeld •  in Xcode enthalten •  Verwaltung •  Testgeräte •  Projekte •  Apps
  26. 26. Demo 26© FH AACHEN | Sebastian Meßingfeld
  27. 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. 28. 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
  29. 29. 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
  30. 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. 31. Deployment •  Testen auf Hardware •  Verbreitung im App-Store 31© FH AACHEN | Sebastian Meßingfeld
  32. 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. 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. 34. FH Aachen Fachbereich Elektrotechnik & Informationstechnik Sebastian Meßingfeld 34© FH AACHEN | Sebastian Meßingfeld

×