SlideShare une entreprise Scribd logo
1  sur  34
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

Contenu connexe

En vedette

Cm2 Die ersten Adressen von First Kitzbühel Immobilien
Cm2 Die ersten Adressen von First Kitzbühel ImmobilienCm2 Die ersten Adressen von First Kitzbühel Immobilien
Cm2 Die ersten Adressen von First Kitzbühel ImmobilienFIRST Kitzbühel Immobilien
 
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & Buob
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & BuobPraesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & Buob
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & BuobLeaderinnen Ostschweiz
 
Holzprofi24 Parkett Fibel
Holzprofi24 Parkett FibelHolzprofi24 Parkett Fibel
Holzprofi24 Parkett Fibelholzprofi24.de
 
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...Vater Blog
 
Ficha Explicativa Plugins Aula Virtual Pregrado
Ficha Explicativa Plugins Aula Virtual PregradoFicha Explicativa Plugins Aula Virtual Pregrado
Ficha Explicativa Plugins Aula Virtual Pregradoaulavirtualpucv
 
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”Emprendimiento Shalah
 
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn Protokoll
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn ProtokollPrüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn Protokoll
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn ProtokollKlaas Posselt
 
Information Systems for Business Processes
Information Systems for Business ProcessesInformation Systems for Business Processes
Information Systems for Business ProcessesJean Vanderdonckt
 
Potenicando comunicacion y legal
Potenicando comunicacion y legalPotenicando comunicacion y legal
Potenicando comunicacion y legalFernando Celis
 

En vedette (14)

Sistema
SistemaSistema
Sistema
 
Cm2 Die ersten Adressen von First Kitzbühel Immobilien
Cm2 Die ersten Adressen von First Kitzbühel ImmobilienCm2 Die ersten Adressen von First Kitzbühel Immobilien
Cm2 Die ersten Adressen von First Kitzbühel Immobilien
 
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & Buob
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & BuobPraesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & Buob
Praesentation IMPULS «Frauen im Recht» Angela Hensch, Bratschi Wiederkehr & Buob
 
Holzprofi24 Parkett Fibel
Holzprofi24 Parkett FibelHolzprofi24 Parkett Fibel
Holzprofi24 Parkett Fibel
 
Normalizacion
NormalizacionNormalizacion
Normalizacion
 
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...
35 Dinge, die Eltern von Kleinkindern im Alltag Sorgen bereiten, es aber nich...
 
Sahara
SaharaSahara
Sahara
 
Innovación en la empresa
Innovación en la empresa Innovación en la empresa
Innovación en la empresa
 
Feliz navidad 2010 carlos y amparo rincon
Feliz navidad 2010 carlos y amparo rinconFeliz navidad 2010 carlos y amparo rincon
Feliz navidad 2010 carlos y amparo rincon
 
Ficha Explicativa Plugins Aula Virtual Pregrado
Ficha Explicativa Plugins Aula Virtual PregradoFicha Explicativa Plugins Aula Virtual Pregrado
Ficha Explicativa Plugins Aula Virtual Pregrado
 
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”
AGENTE INTELIGENTE: “SISTEMA DE SEGURIDAD PARA CASAS”
 
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn Protokoll
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn ProtokollPrüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn Protokoll
Prüfung barrierefreier PDF/UA Dokumente mit PAC und dem Matterhorn Protokoll
 
Information Systems for Business Processes
Information Systems for Business ProcessesInformation Systems for Business Processes
Information Systems for Business Processes
 
Potenicando comunicacion y legal
Potenicando comunicacion y legalPotenicando comunicacion y legal
Potenicando comunicacion y legal
 

Similaire à Apple iPhone iOS - Plattform und Konzepte

Apple iOS - GUI Entwicklung
Apple iOS - GUI EntwicklungApple iOS - GUI Entwicklung
Apple iOS - GUI Entwicklungmesseb
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndré Krämer
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Andreas Wissel
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018André Krämer
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Gregor Biswanger
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft AG
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
FMK - Xojo als FileMaker Alternative? by Ulrich Bogun
FMK - Xojo als FileMaker Alternative? by Ulrich BogunFMK - Xojo als FileMaker Alternative? by Ulrich Bogun
FMK - Xojo als FileMaker Alternative? by Ulrich BogunVerein FM Konferenz
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudAarno Aukia
 
Spiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDKSpiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDKIndieOutpost
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenMarkus Eiglsperger
 
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWTag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWChristian Schlegel
 
Executive Summary – App Entwicklung für Entscheider
Executive Summary – App Entwicklung für EntscheiderExecutive Summary – App Entwicklung für Entscheider
Executive Summary – App Entwicklung für EntscheiderBokowsky + Laymann GmbH
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidDominik Helleberg
 
Devopenspace 2013 slides
Devopenspace 2013 slidesDevopenspace 2013 slides
Devopenspace 2013 slidesTimur Zanagar
 
.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12Holger Wendel
 
Abap course chapter 2 tools in the development environment
Abap course   chapter 2 tools in the development environmentAbap course   chapter 2 tools in the development environment
Abap course chapter 2 tools in the development environmentMilind Patil
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Jürgen Gutsch
 

Similaire à Apple iPhone iOS - Plattform und Konzepte (20)

Apple iOS - GUI Entwicklung
Apple iOS - GUI EntwicklungApple iOS - GUI Entwicklung
Apple iOS - GUI Entwicklung
 
Android Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickelnAndroid Apps mit Xamarin entwickeln
Android Apps mit Xamarin entwickeln
 
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
Robuste Design Systems mit Storybook und Angular: vom Konzept zur lebendigen ...
 
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018Einstieg in Xamarin und Xamarin.Forms, DDC 2018
Einstieg in Xamarin und Xamarin.Forms, DDC 2018
 
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
Intel XDK: Cross-Plattform Entwicklung – Apps Entwickeln für alle Plattformen...
 
Creasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus EntwicklersichtCreasoft Akademie - Windows 8 aus Entwicklersicht
Creasoft Akademie - Windows 8 aus Entwicklersicht
 
Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014Roslyn DDC Kompakt 2014
Roslyn DDC Kompakt 2014
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
FMK - Xojo als FileMaker Alternative? by Ulrich Bogun
FMK - Xojo als FileMaker Alternative? by Ulrich BogunFMK - Xojo als FileMaker Alternative? by Ulrich Bogun
FMK - Xojo als FileMaker Alternative? by Ulrich Bogun
 
.NET Gadgeteer
.NET Gadgeteer.NET Gadgeteer
.NET Gadgeteer
 
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die CloudApplikationsmodernisierung: Der Weg von Legacy in die Cloud
Applikationsmodernisierung: Der Weg von Legacy in die Cloud
 
Spiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDKSpiele entwickeln mit dem Adobe AIR SDK
Spiele entwickeln mit dem Adobe AIR SDK
 
Cross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile AnwendungenCross Plattform Entwicklung für Mobile Anwendungen
Cross Plattform Entwicklung für Mobile Anwendungen
 
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbWTag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
Tag der offenen Tür 2012 | Basislehrjahr Informatik | ZbW
 
Executive Summary – App Entwicklung für Entscheider
Executive Summary – App Entwicklung für EntscheiderExecutive Summary – App Entwicklung für Entscheider
Executive Summary – App Entwicklung für Entscheider
 
Rich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit AndroidRich Graphics & OpenGL mit Android
Rich Graphics & OpenGL mit Android
 
Devopenspace 2013 slides
Devopenspace 2013 slidesDevopenspace 2013 slides
Devopenspace 2013 slides
 
.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12.NET Gadgeteer // msg@dnc12
.NET Gadgeteer // msg@dnc12
 
Abap course chapter 2 tools in the development environment
Abap course   chapter 2 tools in the development environmentAbap course   chapter 2 tools in the development environment
Abap course chapter 2 tools in the development environment
 
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
Agile Entwicklungsumgebung mit DVCS, Jenkins und Trello - Agile Bodensee Konf...
 

Apple iPhone iOS - Plattform und Konzepte

  • 1. iOS Plattform und Konzepte Sebastian Meß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 iOS Entwicklung •  Benötigte Hardware •  Benötigte Software •  Sonstige Voraussetzungen 3© FH AACHEN | Sebastian Meßingfeld
  • 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. Voraussetzungen für iOS Entwicklung Benötigte Software •  Entwicklungsumgebung •  iOS SDK gleich mehr ... 5© FH AACHEN | Sebastian Meßingfeld
  • 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. Programmiersprache Objective-C •  Besonderheiten •  Frameworks für iOS Entwicklung •  Paradigmen 7© FH AACHEN | Sebastian Meßingfeld
  • 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. 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. 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. 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. Tools •  Xcode •  GUI Builder •  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© FH AACHEN | Sebastian Meßingfeld
  • 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. 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
  • 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 Angepasstes Tastaturlayout 28© FH AACHEN | Sebastian Meßingfeld •  Je nach Zweck verschiedene Tastaturlayouts •  Decimal Pad besser geeignet für Eingabe der Werte
  • 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. 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 auf Hardware •  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