SlideShare ist ein Scribd-Unternehmen logo
1 von 50
Downloaden Sie, um offline zu lesen
iOS	
  
Eins(eg	
  und	
  Ausblick	
  
Wer	
  bin	
  ich?	
  



stefan.scheidt@opitz-­‐consul(ng.com	
  
             @beezlebug	
  
          Solu(on	
  Architect	
  
Märkte                      Kunden                                               Leistungs-              Fakten
                                                                                 angebot
n Java                     n Branchen-                                         n IT-Strategie         n Gründung 1990
n SOA                         übergreifend                                      n Beratung             n 400 Mitarbeiter
n ORACLE                   n Über 600                                          n Implementierung      n 8 Standorte in D/
n BI/DWH                      Kunden                                            n Betrieb                 PL
n Outtasking                                                                    n Training
                          Industrie / Versorger /          Handel / Logistik /
                            Telekommunikation              Dienstleistungen
                                            29%            29%




                                                    42%
                                         Öffentliche Auftraggeber /
                                        Banken & Versicherungen /
                                            Vereine & Verbände




                <Präsentationstitel – bitte im Folienmaster ändern>                             © OPITZ CONSULTING GmbH 2011   Seite 3
Wer	
  sind	
  Sie?	
  
Wie	
  alles	
  begann...	
  
1985:	
  US-­‐Patent	
  281,686	
  
1993:	
  Apple	
  Newton	
  MessagePad	
  
????:	
  Prototyp	
  „touchscreen	
  phone	
  for	
  workplace“	
  
200X:	
  Project	
  Purple	
  1	
  
2007:	
  iPhone	
  
Aktuelle	
  iOS-­‐Hardware	
  
Aktuelle	
  iOS-­‐Hardware	
  
Aktuelle	
  iOS-­‐Hardware	
  
Aktuelle	
  iOS-­‐Hardware	
  
Unterschiede	
  
Display:	
     	
  	
  480	
  x	
  360	
  (iPhone/iPod	
  touch)	
  
               	
  	
  960	
  x	
  640	
  (iPhone/iPod	
  touch	
  „v4“)	
  
               1024	
  x	
  768	
  (iPad)	
  
RAM:	
         128	
  bis	
  512	
  MB	
  
Flash:	
       4	
  bis	
  64	
  GB	
  
CPU:	
         ARM	
  412	
  GHz	
  bis	
  
               Apple	
  A5	
  Dualcore	
  1	
  GHz	
  
Gadgets:	
     UMTS/GPS,	
  Front-­‐Kamera	
  
               Kompass,	
  Gyroskop,	
  ...	
  
iOS	
  

  Unix



 Darwin



Mac OS X



  iOS
Für	
  iOS	
  entwickeln	
  

                       Web-­‐Apps	
  
      „verpackte“	
  Web-­‐Apps	
  (PhoneGap)	
  
„Crosspla]orm-­‐Tool-­‐Apps“	
  (Titanium	
  Mobile)	
  
        „crosscompiled	
  Apps“	
  (XMLVM)	
  	
  
                              	
  
             „na(ve	
  Apps“	
  (iOS	
  SDK)	
  	
  
iOS	
  SDK	
  


2007:	
               Noch	
  kein	
  SDK	
  
Anfang	
  2008:	
     SDK	
  für	
  iPhone	
  OS	
  2.0	
  
Mi]e	
  2008:	
       App	
  Store	
  öffnet	
  
Mi]e	
  2009:	
       iOS	
  3	
  
Mi]e	
  2010:	
       iOS	
  4	
  
iOS	
  SDK	
  
                                                                     Obje
                                                                              c(ve
                      Cocoa	
  Touch	
                                                -­‐C	
  
UIKit,	
  MapKit,	
  Event	
  Kit	
  UI,	
  Game	
  Kit,	
  iAd,	
  ...	
  

                             Media	
  
Core	
  Graphics,	
  Core	
  Animabon,	
  Core	
  Text,	
  
Open	
  GL	
  ES,	
  Core	
  Audio,	
  AV	
  Foundabon,	
  ...	
  

                     Core	
  Services	
  
 Core	
  Foundabon,	
  Foundabon,	
  CFNetwork,	
  
   Core	
  Data,	
  Core	
  Locabon,	
  Event	
  Kit,	
  ...	
  
                                                                              C	
  
                           Core	
  OS	
  
Objec(ve-­‐C	
  
            =	
  
C	
  +	
  Smalltalk	
  

                                  ObjC	
  
                          C	
  
Eigenschaeen	
  von	
  Objec(v-­‐C	
  

             objektorien(ert	
  
      basiert	
  auf	
  Message	
  Passing	
  
  Dynamic	
  Binding	
  /	
  Dynamic	
  Typing	
  
                Introspec(on	
  
   Einfach-­‐Vererbung	
  und	
  Protocols	
  
   Erweiterungen	
  durch	
  Categories	
  
           Proper(es	
  (ab	
  2.0)	
  
iOS	
  und	
  Memory	
  Management	
  


    Objec(ve-­‐C	
  2.0	
  bietet	
  
                                               	
  
     Garbage	
  Collec(on.	
  
                     	
  
  Aber	
  leider	
  nicht	
  für	
  iOS...	
   	
  
Memory	
  Management	
  
ohne	
  Garbage	
  Collec(on?	
  
               	
  
Durch	
  Reference	
  Coun(ng:	
  
               	
  
               	
  
               	
  
Die	
  gute	
  Nachricht:	
  
                   	
  
      Ab	
  iOS	
  5	
  gibt‘s	
  
Automa(c	
  Reference	
  Coun(ng	
  
                   	
  
                 	
  
#import	
  <Foundation/Foundation.h>	
  
	
  
@interface	
  NewsItem	
  :	
  NSObject	
  
{	
  
	
  	
  	
  	
  NSString*	
  title;	
  
	
  	
  	
  	
  NSString*	
  subtitle;	
  
	
  	
  	
  	
  BOOL	
  unread;	
  
}	
  
	
  
@property	
  (copy)	
  NSString*	
  title;	
  
@property	
  (copy)	
  NSString*	
  subtitle;	
  
@property	
  (assign)	
  BOOL	
  unread;	
  
	
  
-­‐	
  (id)initWithTitle:(NSString*)aTitle	
  
	
  	
  	
  	
  	
  	
  	
  	
  andSubtitle:(NSString*)aSubtitle;	
  
	
  
@end	
  
                               NewsItem.h	
  
#import	
  "NewsItem.h"	
  
	
  
@implementation	
  NewsItem	
  
@synthesize	
  title,	
  subtitle,	
  unread;	
  
	
  
-­‐	
  (id)initWithTitle:(NSString	
  *)aTitle	
  
	
  	
  	
  	
  	
  	
  andSubtitle:(NSString	
  *)aSubtitle	
  {	
  
	
  	
  	
  	
  self	
  =	
  [super	
  init];	
  
	
  	
  	
  	
  if	
  (self)	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  title	
  =	
  [aTitle	
  copy];	
  
	
  	
  	
  	
  	
  	
  	
  	
  subtitle	
  =	
  [aSubtitle	
  copy];	
  
	
  	
  	
  	
  	
  	
  	
  	
  unread	
  =	
  YES;	
  
	
  	
  	
  	
  }	
  	
  	
  	
  	
  
	
  	
  	
  	
  return	
  self;	
  
}	
  
	
  
...	
  
                                NewsItem.m	
  
...	
  
	
  
-­‐	
  (void)dealloc	
  {	
  
	
  	
  	
  	
  [title	
  release];	
  
	
  	
  	
  	
  [subtitle	
  release];	
  
	
  	
  	
  	
  [super	
  dealloc];	
  
}	
  
	
  
@end	
  




                           NewsItem.m	
  (cont.)	
  
NewsItem*	
  i1	
  =	
  [[NewsItem	
  alloc]	
  initWithTitle:@"News	
  Item	
  1"	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  andSubtitle:@"Subtitle	
  1"];	
  
NewsItem*	
  i2	
  =	
  [[NewsItem	
  alloc]	
  initWithTitle:@"News	
  Item	
  2"	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  andSubtitle:@"Subtitle	
  2"];	
  
NSMutableArray*	
  items	
  =	
  [[NSMutableArray	
  alloc]	
  	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  initWithObjects:	
  i1,	
  i2,	
  nil];	
  




                                                           News	
  Items	
  benutzen	
  
Tooling	
  




   Xcode	
  4	
  mit	
                   Instruments	
  
Interface	
  Builder	
  


        iOS	
  Simulator	
  
iOS	
  Developer	
  Programm	
  
Apple	
  Developer	
                                                                                    Kostenfrei	
  
iOS	
  Developer	
  Program	
  Individual	
                                                             	
  	
  $99	
  /	
  Jahr	
  
„For	
  an	
  individual	
  developer	
  who	
  will	
  be	
  creabng	
  free	
  and	
  
commercial	
  iOS	
  apps	
  for	
  distribubon	
  on	
  the	
  App	
  Store.“	
  
iOS	
  Developer	
  Program	
  Company	
                                                                	
  	
  $99	
  /	
  Jahr	
  
For	
  a	
  company	
  with	
  a	
  development	
  team	
  who	
  will	
  be	
  creabng	
  free	
  
and	
  commercial	
  iOS	
  apps	
  for	
  distribubon	
  on	
  the	
  App	
  Store.	
  
iOS	
  Developer	
  Enterprise	
  Program	
                                                             $299	
  /	
  Jahr	
  
For	
  a	
  company	
  who	
  will	
  be	
  creabng	
  proprietary,	
  in-­‐house	
  iOS	
  apps.	
  
iOS	
  Developer	
  University	
  Program	
                                                             Kostenfrei	
  
For	
  higher	
  educabon	
  insbtubons	
  looking	
  to	
  introduce	
  iOS	
  
development	
  into	
  their	
  curriculum.	
  
Volume	
  Purchase	
  Program	
  

          „Offer	
  Your	
  Apps	
  in	
  Volume“	
  
                                  	
  
  „Sell	
  and	
  Distribute	
  Custom	
  B2B	
  Apps	
  
                to	
  Business	
  Customers“	
  
                                  	
  
zur	
  Zeit	
  nur	
  für	
  „businesses	
  and	
  educa(on	
  
        ins(tu(ons	
  in	
  the	
  United	
  States“	
  
Provisioning	
  
    iOS	
  Development	
  Cer(ficate	
  besorgen	
  


Für	
  Beta-­‐Tests:	
  Geräte	
  mit	
  UDID	
  registrieren	
  


                    App-­‐ID	
  erzeugen	
  

          Provisioning	
  Profile	
  erzeugen	
  
                      Ad	
  Hoc/AppStore	
  


                      App	
  verteilen	
  
                      Ad	
  Hoc/App	
  Store	
  
App	
  Store	
  Review...	
  
Ausblick	
  -­‐	
  iCloud	
  
Mehr	
  Wissen...	
  
Online-­‐Dokumenta(on	
  
Sample	
  Code	
  
Online-­‐Ressourcen	
  


               WWDC	
  Videos:	
  
                   	
  
hsp://developer.apple.com/videos/wwdc/2010/	
  
hsp://developer.apple.com/videos/wwdc/2011/	
  
                       	
  
Online-­‐Ressourcen	
  

  Weblogs	
  (willkürliche	
  Auswahl):	
  
                    	
  
hsp://www.raywenderlich.com/tutorials	
  
      hsp://cocoawithlove.com/	
  
  hsp://www.mikeash.com/pyblog/	
  
       hsp://www.cimgf.com/	
  
                     	
  
Bücher	
  
Bücher	
  
Bücher	
  
Bücher	
  
Bücher	
  
Bücher	
  
Quellen	
  
                        Wie	
  alles	
  begann	
  
h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history1-­‐en.shtml	
  
h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history2-­‐en.shtml	
  
h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history3-­‐en.shtml	
  
           h]p://en.wikipedia.org/wiki/MessagePad	
  
      h]p://en.wikipedia.org/wiki/History_of_the_iPhone	
  
                                   	
  
                    Hardware-­‐Spezifika(onen	
  
    h]p://en.wikipedia.org/wiki/IPod_Touch#Specificabons	
  
    h]p://en.wikipedia.org/wiki/IPhone#Model_comparison	
  
   h]p://en.wikipedia.org/wiki/IPad#Technical_specificabons	
  
                                   	
  
Quellen	
  

                   iOS	
  SDK	
  
   h]p://en.wikipedia.org/wiki/IOS_(Apple)	
  
h]p://en.wikipedia.org/wiki/IOS_version_history	
  
 h]p://en.wikipedia.org/wiki/App_Store_(iOS)	
  
                       	
  
              Reference	
  Coun(ng	
  
h]p://cocoadevcentral.com/d/learn_objecbvec/	
  
                       	
  
                       	
  
Quellen	
  

               Volume	
  Purchase	
  Program	
  
h]ps://developer.apple.com/appstore/resources/volume/	
  
                              	
  
                   App	
  Store	
  Review	
  
  h]p://developer.apple.com/appstore/guidelines.html	
  
       h]p://reviewbmes.shinydevelopment.com/	
  
                              	
  
                           iCloud	
  
     h]ps://developer.apple.com/icloud/index.php	
  
                              	
  
Inspec(on	
  
by	
  Anoto	
  AB,	
  h]p://www.flickr.com/photos/anotogroup/3465589650	
  
                                         	
  
                                   library	
  porn	
  
        by	
  Swiv,	
  h]p://www.flickr.com/photos/swiv/5719738832/	
  
Vielen	
  Dank	
  
       für	
  Ihr	
  Interesse!	
  
                	
  
stefan.scheidt@opitz-­‐consul(ng.com	
  
            @beezlebug	
  

Weitere ähnliche Inhalte

Ähnlich wie iOS: Einstieg und Ausblick

Einfürung iPhone Entwicklung
Einfürung iPhone EntwicklungEinfürung iPhone Entwicklung
Einfürung iPhone EntwicklungStuff Mc
 
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...Connected-Blog
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Gregor Biswanger
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core ApplicationsRobin Sedlaczek
 
Der mobile Wissenarbeit
Der mobile WissenarbeitDer mobile Wissenarbeit
Der mobile WissenarbeitSimon Dueckert
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellenMichael Kühnel
 
Smartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOSSmartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOSdm-development
 
Marketing mit Smart TV Apps
Marketing mit Smart TV AppsMarketing mit Smart TV Apps
Marketing mit Smart TV Appsjoergviola
 
Next Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-BriefingNext Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-BriefingWalter Schärer
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsRalf Lütke
 
Landschaft der IBM Applikationen für mobile Geräte
Landschaft der IBM Applikationen für mobile GeräteLandschaft der IBM Applikationen für mobile Geräte
Landschaft der IBM Applikationen für mobile GeräteKlaus Bild
 
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
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Daniel Fesenmeyer
 
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd Volberg
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd VolbergForms 11g und das iPhone - OPITZ CONSULTING - Gerd Volberg
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd VolbergOPITZ CONSULTING Deutschland
 
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...Torsten Fink
 
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.Niels de Bruijn
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptRalf Schwoebel
 

Ähnlich wie iOS: Einstieg und Ausblick (20)

Einfürung iPhone Entwicklung
Einfürung iPhone EntwicklungEinfürung iPhone Entwicklung
Einfürung iPhone Entwicklung
 
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...
Cloudservice zur komponentenbasierten Konfiguration und Generierung von mobil...
 
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
Roadshow: Einstieg in die Hybrid-App Entwicklung mit dem Intel XDK und Apache...
 
Architectures for .Net Core Applications
Architectures for .Net Core ApplicationsArchitectures for .Net Core Applications
Architectures for .Net Core Applications
 
Ionic 3
Ionic 3Ionic 3
Ionic 3
 
Der mobile Wissenarbeit
Der mobile WissenarbeitDer mobile Wissenarbeit
Der mobile Wissenarbeit
 
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
Mobile Applikationen: Entwicklung, Rollout, Wartung - Tipps und Tricks für di...
 
Mono
MonoMono
Mono
 
iOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstelleniOS Apps mit Webtechnologien erstellen
iOS Apps mit Webtechnologien erstellen
 
Smartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOSSmartphone Betriebssysteme iOS
Smartphone Betriebssysteme iOS
 
Marketing mit Smart TV Apps
Marketing mit Smart TV AppsMarketing mit Smart TV Apps
Marketing mit Smart TV Apps
 
Next Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-BriefingNext Web & Open Standards: LIIP Vortrag Internet-Briefing
Next Web & Open Standards: LIIP Vortrag Internet-Briefing
 
Erstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-AppsErstellung von mobilen cross-platform-Apps
Erstellung von mobilen cross-platform-Apps
 
Landschaft der IBM Applikationen für mobile Geräte
Landschaft der IBM Applikationen für mobile GeräteLandschaft der IBM Applikationen für mobile Geräte
Landschaft der IBM Applikationen für mobile Geräte
 
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
 
Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)Eclipse Ditto Vorstellung (German)
Eclipse Ditto Vorstellung (German)
 
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd Volberg
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd VolbergForms 11g und das iPhone - OPITZ CONSULTING - Gerd Volberg
Forms 11g und das iPhone - OPITZ CONSULTING - Gerd Volberg
 
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...
Open Source als Innovator und Treiber von De‐Facto Standards für das Internet...
 
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
MT AG Möglichkeiten mit PhoneGap in verbindung mit APEX 4.2.
 
German: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit JavascriptGerman: Softwareprodukte aus einem Source Code mit Javascript
German: Softwareprodukte aus einem Source Code mit Javascript
 

iOS: Einstieg und Ausblick

  • 1. iOS   Eins(eg  und  Ausblick  
  • 2. Wer  bin  ich?   stefan.scheidt@opitz-­‐consul(ng.com   @beezlebug   Solu(on  Architect  
  • 3. Märkte Kunden Leistungs- Fakten angebot n Java n Branchen- n IT-Strategie n Gründung 1990 n SOA übergreifend n Beratung n 400 Mitarbeiter n ORACLE n Über 600 n Implementierung n 8 Standorte in D/ n BI/DWH Kunden n Betrieb PL n Outtasking n Training Industrie / Versorger / Handel / Logistik / Telekommunikation Dienstleistungen 29% 29% 42% Öffentliche Auftraggeber / Banken & Versicherungen / Vereine & Verbände <Präsentationstitel – bitte im Folienmaster ändern> © OPITZ CONSULTING GmbH 2011 Seite 3
  • 7. 1993:  Apple  Newton  MessagePad  
  • 8. ????:  Prototyp  „touchscreen  phone  for  workplace“  
  • 15. Unterschiede   Display:      480  x  360  (iPhone/iPod  touch)      960  x  640  (iPhone/iPod  touch  „v4“)   1024  x  768  (iPad)   RAM:   128  bis  512  MB   Flash:   4  bis  64  GB   CPU:   ARM  412  GHz  bis   Apple  A5  Dualcore  1  GHz   Gadgets:   UMTS/GPS,  Front-­‐Kamera   Kompass,  Gyroskop,  ...  
  • 16. iOS   Unix Darwin Mac OS X iOS
  • 17. Für  iOS  entwickeln   Web-­‐Apps   „verpackte“  Web-­‐Apps  (PhoneGap)   „Crosspla]orm-­‐Tool-­‐Apps“  (Titanium  Mobile)   „crosscompiled  Apps“  (XMLVM)       „na(ve  Apps“  (iOS  SDK)    
  • 18. iOS  SDK   2007:   Noch  kein  SDK   Anfang  2008:   SDK  für  iPhone  OS  2.0   Mi]e  2008:   App  Store  öffnet   Mi]e  2009:   iOS  3   Mi]e  2010:   iOS  4  
  • 19. iOS  SDK   Obje c(ve Cocoa  Touch   -­‐C   UIKit,  MapKit,  Event  Kit  UI,  Game  Kit,  iAd,  ...   Media   Core  Graphics,  Core  Animabon,  Core  Text,   Open  GL  ES,  Core  Audio,  AV  Foundabon,  ...   Core  Services   Core  Foundabon,  Foundabon,  CFNetwork,   Core  Data,  Core  Locabon,  Event  Kit,  ...   C   Core  OS  
  • 20. Objec(ve-­‐C   =   C  +  Smalltalk   ObjC   C  
  • 21. Eigenschaeen  von  Objec(v-­‐C   objektorien(ert   basiert  auf  Message  Passing   Dynamic  Binding  /  Dynamic  Typing   Introspec(on   Einfach-­‐Vererbung  und  Protocols   Erweiterungen  durch  Categories   Proper(es  (ab  2.0)  
  • 22. iOS  und  Memory  Management   Objec(ve-­‐C  2.0  bietet      Garbage  Collec(on.     Aber  leider  nicht  für  iOS...     
  • 23. Memory  Management   ohne  Garbage  Collec(on?     Durch  Reference  Coun(ng:        
  • 24. Die  gute  Nachricht:     Ab  iOS  5  gibt‘s   Automa(c  Reference  Coun(ng       
  • 25. #import  <Foundation/Foundation.h>     @interface  NewsItem  :  NSObject   {          NSString*  title;          NSString*  subtitle;          BOOL  unread;   }     @property  (copy)  NSString*  title;   @property  (copy)  NSString*  subtitle;   @property  (assign)  BOOL  unread;     -­‐  (id)initWithTitle:(NSString*)aTitle                  andSubtitle:(NSString*)aSubtitle;     @end   NewsItem.h  
  • 26. #import  "NewsItem.h"     @implementation  NewsItem   @synthesize  title,  subtitle,  unread;     -­‐  (id)initWithTitle:(NSString  *)aTitle              andSubtitle:(NSString  *)aSubtitle  {          self  =  [super  init];          if  (self)  {                  title  =  [aTitle  copy];                  subtitle  =  [aSubtitle  copy];                  unread  =  YES;          }                  return  self;   }     ...   NewsItem.m  
  • 27. ...     -­‐  (void)dealloc  {          [title  release];          [subtitle  release];          [super  dealloc];   }     @end   NewsItem.m  (cont.)  
  • 28. NewsItem*  i1  =  [[NewsItem  alloc]  initWithTitle:@"News  Item  1"                                                                    andSubtitle:@"Subtitle  1"];   NewsItem*  i2  =  [[NewsItem  alloc]  initWithTitle:@"News  Item  2"                                                                    andSubtitle:@"Subtitle  2"];   NSMutableArray*  items  =  [[NSMutableArray  alloc]                                                                  initWithObjects:  i1,  i2,  nil];   News  Items  benutzen  
  • 29. Tooling   Xcode  4  mit   Instruments   Interface  Builder   iOS  Simulator  
  • 30. iOS  Developer  Programm   Apple  Developer   Kostenfrei   iOS  Developer  Program  Individual      $99  /  Jahr   „For  an  individual  developer  who  will  be  creabng  free  and   commercial  iOS  apps  for  distribubon  on  the  App  Store.“   iOS  Developer  Program  Company      $99  /  Jahr   For  a  company  with  a  development  team  who  will  be  creabng  free   and  commercial  iOS  apps  for  distribubon  on  the  App  Store.   iOS  Developer  Enterprise  Program   $299  /  Jahr   For  a  company  who  will  be  creabng  proprietary,  in-­‐house  iOS  apps.   iOS  Developer  University  Program   Kostenfrei   For  higher  educabon  insbtubons  looking  to  introduce  iOS   development  into  their  curriculum.  
  • 31. Volume  Purchase  Program   „Offer  Your  Apps  in  Volume“     „Sell  and  Distribute  Custom  B2B  Apps   to  Business  Customers“     zur  Zeit  nur  für  „businesses  and  educa(on   ins(tu(ons  in  the  United  States“  
  • 32. Provisioning   iOS  Development  Cer(ficate  besorgen   Für  Beta-­‐Tests:  Geräte  mit  UDID  registrieren   App-­‐ID  erzeugen   Provisioning  Profile  erzeugen   Ad  Hoc/AppStore   App  verteilen   Ad  Hoc/App  Store  
  • 38. Online-­‐Ressourcen   WWDC  Videos:     hsp://developer.apple.com/videos/wwdc/2010/   hsp://developer.apple.com/videos/wwdc/2011/    
  • 39. Online-­‐Ressourcen   Weblogs  (willkürliche  Auswahl):     hsp://www.raywenderlich.com/tutorials   hsp://cocoawithlove.com/   hsp://www.mikeash.com/pyblog/   hsp://www.cimgf.com/    
  • 46. Quellen   Wie  alles  begann   h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history1-­‐en.shtml   h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history2-­‐en.shtml   h]p://mobile-­‐review.com/arbcles/2010/iphone-­‐history3-­‐en.shtml   h]p://en.wikipedia.org/wiki/MessagePad   h]p://en.wikipedia.org/wiki/History_of_the_iPhone     Hardware-­‐Spezifika(onen   h]p://en.wikipedia.org/wiki/IPod_Touch#Specificabons   h]p://en.wikipedia.org/wiki/IPhone#Model_comparison   h]p://en.wikipedia.org/wiki/IPad#Technical_specificabons    
  • 47. Quellen   iOS  SDK   h]p://en.wikipedia.org/wiki/IOS_(Apple)   h]p://en.wikipedia.org/wiki/IOS_version_history   h]p://en.wikipedia.org/wiki/App_Store_(iOS)     Reference  Coun(ng   h]p://cocoadevcentral.com/d/learn_objecbvec/      
  • 48. Quellen   Volume  Purchase  Program   h]ps://developer.apple.com/appstore/resources/volume/     App  Store  Review   h]p://developer.apple.com/appstore/guidelines.html   h]p://reviewbmes.shinydevelopment.com/     iCloud   h]ps://developer.apple.com/icloud/index.php    
  • 49. Inspec(on   by  Anoto  AB,  h]p://www.flickr.com/photos/anotogroup/3465589650     library  porn   by  Swiv,  h]p://www.flickr.com/photos/swiv/5719738832/  
  • 50. Vielen  Dank   für  Ihr  Interesse!     stefan.scheidt@opitz-­‐consul(ng.com   @beezlebug