iOS Eins(eg und Ausblick
May 13, 2015
iOS Eins(eg und Ausblick
Wer bin ich?
stefan.scheidt@opitz-‐consul(ng.com
@stefanscheidt
Solu(on Architect
© OPITZ CONSULTING GmbH 2011 Seite 3 <Präsentationstitel – bitte im Folienmaster ändern>
OPITZ CONSULTING Vorlage Powerpoint 2011; Version 1.3; 10.05.2011; TGA, KSH
1Pager • Layout ausschließlich für den
1Pager • Einsatz ist bei Konferenzen,
ext. Veranstaltungen etc. obligatorisch. Die Folie ist Folie 2 (nach der Titelfolie)
• Der Inhalt darf nicht verändert werden.
• Ausnahme: Der Block Märkte darf situativ um Partnerlogos (ORACLE, etc.) ergänzt werden
Märkte n Java n SOA n ORACLE n BI/DWH n Outtasking
Kunden n Branchen-
übergreifend n Über 600
Kunden
Leistungs- angebot n IT-Strategie n Beratung n Implementierung n Betrieb n Training
Fakten n Gründung 1990 n 400 Mitarbeiter n 8 Standorte in D/
PL
Industrie / Versorger / Telekommunikation
29%
Handel / Logistik / Dienstleistungen 29%
42% Öffentliche Auftraggeber /
Banken & Versicherungen / Vereine & Verbände
© OPITZ CONSULTING GmbH 2011
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: Das 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
Herbst 2011: iOS 5
iOS SDK
Cocoa Touch 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, ...
Core OS C
Objec(ve-‐C
Objec(ve-‐C =
C + Smalltalk
C ObjC
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 Blocks (C)
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
Ein bisschen Objec(ve-‐C Code...
[NewsItem alloc]
News Items benutzen
[[NewsItem alloc] initWithTitle:@"News Item 1" andSubtitle:@"Subtitle 1"]
News Items benutzen
NewsItem* i1 = [[NewsItem alloc] initWithTitle:@"News Item 1" andSubtitle:@"Subtitle 1"];
News Items benutzen
NewsItem* i1 = [[NewsItem alloc] initWithTitle:@"News Item 1" andSubtitle:@"Subtitle 1"]; NewsItem* i2 = [[NewsItem alloc] initWithTitle:@"News Item 2" andSubtitle:@"Subtitle 2"];
News Items benutzen
NewsItem* i1 = [[NewsItem alloc] initWithTitle:@"News Item 1" andSubtitle:@"Subtitle 1"]; NewsItem* i2 = [[NewsItem alloc] initWithTitle:@"News Item 2" andSubtitle:@"Subtitle 2"]; [NSMutableArray alloc]
News Items benutzen
NewsItem* i1 = [[NewsItem alloc] initWithTitle:@"News Item 1" andSubtitle:@"Subtitle 1"]; NewsItem* i2 = [[NewsItem alloc] initWithTitle:@"News Item 2" andSubtitle:@"Subtitle 2"]; [[NSMutableArray alloc] initWithObjects: i1, i2, nil]
News Items benutzen
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
#import <Foundation/Foundation.h> @interface NewsItem : NSObject @end
NewsItem.h
#import <Foundation/Foundation.h> @interface NewsItem : NSObject { NSString* title; NSString* subtitle; BOOL unread; } @end
NewsItem.h
#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; @end
NewsItem.h
#import <Foundation/Foundation.h> @interface NewsItem : NSObject @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 ...
NewsItem.m
#import "NewsItem.h" @implementation NewsItem @synthesize title, subtitle, unread; ...
NewsItem.m
#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.)
Tooling
Xcode 4 mit Interface Builder
Instruments
iOS Simulator
iOS Developer Programm
Apple Developer Kostenfrei iOS Developer Program Individual „For an individual developer who will be creabng free and commercial iOS apps for distribubon on the App Store.“
$99 / Jahr
iOS Developer Program Company For a company with a development team who will be creabng free and commercial iOS apps for distribubon on the App Store.
$99 / Jahr
iOS Developer Enterprise Program For a company who will be creabng proprietary, in-‐house iOS apps.
$299 / Jahr
iOS Developer University Program For higher educabon insbtubons looking to introduce iOS development into their curriculum.
Kostenfrei
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: Testgeräte registrieren
App-‐ID erzeugen
Provisioning Profile erzeugen
App verteilen
App Store Review...
Ausblick -‐ iCloud
Ausblick -‐ Siri
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
@stefanscheidt