Accelerator Guide für die interne App-Entwicklung
Transcription
Accelerator Guide für die interne App-Entwicklung
Accelerator Guide für die interne App-Entwicklung Überblick Lassen Sie Ihre Ideen zu eigenen Apps Wirklichkeit werden. So geht’s. Ihr Unternehmen ist etwas Einzigartiges – Ihre Mitarbeiter ebenso. Es gibt eine riesige Fülle von Möglichkeiten, auf die Bedürfnisse dieser Mitarbeiter einzugehen, und zwar mit Apps für Mobilgeräte, die ihre Arbeitsweise völlig verändern können. Wenn für Sie das Gleiche gilt wie für die meisten internen Entwicklungsteams, müssen auch Sie gewisse Einschränkungen beachten. Aber ob diese nun finanzieller, organisatorischer oder ressourcenbezogener Art sind, Sie müssen sich darauf fokussieren, Apps bereitzustellen, die exakt auf Ihre Geschäftsanforderungen zugeschnitten sind. iOS bietet tolle Möglichkeiten, genau dies zu erreichen. Die iOS Entwicklung kann schnell und äußerst lohnend sein. Sie erhalten so die Gelegenheit, Apps bereitzustellen, die den Benutzern wirklich unmittelbare Vorteile bringen. Sie vermeiden mühselige Prozesse und übermäßigen Ressourceneinsatz und erlangen dennoch entscheidende Vorteile für Ihr Unternehmen. Allerdings kann es sein, dass Sie dafür Ihre Bemühungen etwas anders ausrichten müssen, als Sie dies bei einem herkömmlichen hausinternen Entwicklungsprojekt tun würden. Verwendung dieses Leitfadens Checkliste. Anhand der Checkliste in jedem der Kapitel können Sie die wichtigsten Schritte des Entwicklungsprozesses durchgehen und kontrollieren. Tipps. Die Tipps liefern wichtige Informationen zum Prozess in einem einfach zugänglichen Format. Genau hierbei soll Ihnen dieser Leitfaden helfen. Er untersucht die bewährten Verfahren bei der Herstellung perfekter mobiler Apps für die Zwecke Ihrer Benutzer, und er liefert Tipps und Ressourcen, die Ihnen helfen, Ihr Projekt im Hinblick auf maximale Effizienz zu organisieren. Checkliste zur Implementierung Am Ende der Implementierungsphase müssen die folgenden Schritte abgeschlossen sein: Erstellung von Unternehmenszertifikat und Bereitstellungsprofil Einrichten eines Verteilungs-Webservers oder einer Lösung für die drahtlose App-Verteilung Bekanntmachen Ihrer Lösung für die Endbenutzer Tipp: „Mundgerechte“ Apps • Einfache, schnelle und sauber funktionierende Apps erzeugen eine interne Nachfrage und minimieren Leistungsaufwand und Kosten. • Auch aus mundgerechten Apps wird ein komplettes Menü. Die Benutzer erstellen ihre eigenen „Lösungen“, und das gibt Ihren Mitarbeitern letztendlich deutlich mehr Flexibilität. Dieser Leitfaden ist in die folgenden vier Abschnitte unterteilt: Planung – Definieren des Projekts, Zusammenstellen der Erfordernisse und Planung des Entwicklungsprozesses. Design – Nutzen der Design-Konzepte für iOS Benutzeroberflächen, die die Benutzer Ihrer internen Apps mit Sicherheit begeistern werden. Entwicklung – Entwickeln Ihrer internen Apps und optimales Nutzen der Werkzeuge von Apple, einschließlich des iOS SDK. Implementierung – Verteilen der internen Apps im Unternehmen und Einrichten Ihres eigenen drahtlosen Dienstes für die App-Verteilung. Beispiele. Lassen Sie sich von den Kundenbeispielen und Ideen inspirieren. Hier sehen Sie, wie andere Unternehmen ihre internen Apps für iPhone und iPad produziert haben. Direktlinks. Im hier angeführten Referenzmaterial können Sie noch mehr über die hausinterne Entwicklung von iOS Apps erfahren. „Wir mussten einen Weg finden, Updates und Änderungen möglichst schnell zu bewerkstelligen, deswegen entschieden wir uns für eine Hybridstrategie. Das bedeutet: Native UI-Elemente direkt auf dem Mobiltelefon und der Rest waren einfach nur Webseiten.“ – Giancarlo De Lio, Mt. Sinai Hospital Direktlinks Häufig gestellte Fragen zur Programmregistrierung http://developer.apple.com/support/ios/enrollment.html Häufig gestellte Fragen zum iOS Entwicklerprogramm für Unternehmen http://developer.apple.com/support/ios/enterprise.html Also fangen wir an. Überblick 2 Planung Zum Erstellen einer erstklassigen App braucht es einen erstklassigen Plan. Es ist wichtig, dass sich die internen Akteure mit den Zielen des Projekts identifizieren und aktiv an der Ausformulierung des Plans teilhaben. Je besser Ihr Team die Arbeitsverteilung im gesamten Prozess und die zur Durchführung des Plans notwendigen Schritte versteht, desto effektiver wird dabei ein überzeugendes Endergebnis entstehen. Im Rahmen dieses Plans, sollten Sie mit Ihrem Team die folgenden Aspekte untersuchen: • Erkennen der Erfordernisse von Unternehmen und Benutzern. Achten Sie darauf, dass Ihre Lösung auf die tatsächlichen geschäftlichen Erfordernisse eingeht. Spart sie Zeit und/oder Geld, wird das Personal dadurch produktiver oder wird das Unternehmen auf andere Weise geschäftlich vorangebracht? • Bewerten vorhandener Ressourcen/Infrastruktur. Sie können die Nutzung wertvoller Ressourcen optimieren, indem Sie eine Komponente Ihrer Ressourcen zielführend anders ausrichten und für die mobile Umgebung einsetzen. • Untersuchen einer möglichst einfachen Implementierung. Ernten Sie zuerst die Früchte, die am leichtesten zu greifen sind: Suchen Sie nach Projekten mit rascher Realisierung, bei denen sich die positiven Ergebnisse Ihrer Arbeit schnell und einfach demonstrieren lassen. Wenn Sie diese Planungskonzepte im Blick behalten, werden Sie leichter eine Fokussierung auf das Projekt entwickeln können. In diesem Kapitel werden die Schritte untersucht, mit denen Sie das Projekt organisatorisch vorbereiten und rasch auf den Weg bringen können. Einholen von Benutzer-Input Versetzen Sie sich in die Lage Ihrer Benutzer. Verbringen Sie gewisse Zeit in deren Arbeitsbereich, indem Sie Meetings besuchen oder Mitarbeiter zu einem Kundentermin begleiten. So gewinnen Sie wertvolle Einsichten in die beruflichen Gewohnheiten, Engpässe im Arbeitsablauf und wunde Punkte bei Mitarbeitern oder Kunden. Fordern Sie besonders fähige oder engagierte Benutzer auf, sich dem Projektteam anzuschließen und kontinuierlichen Input zu liefern. Identifizieren Sie, welches Problem eine mobile App lösen könnte, die dadurch den Benutzern und Ihrem Unternehmen den meisten Nutzen in der kürzesten Zeit einbringen würden. Versuchen Sie, zu Beginn der Entwicklung mobiler Apps nicht zu viel erreichen zu wollen. Grenzen Sie Ihre Ideen von dem, was Sie erzeugen könnten, auf das ein, was Sie wirklich erzeugen sollten. Planung • Design • Entwicklung • Implementierung Planungs-Checkliste Beachten Sie während der gesamten Planungsphase Ihres Projekts diese Checkliste. Zum Ende der Planungsphase sollte ihr vorgesehener Arbeitsumfang die folgenden Punkte umfassen: Inventarerfassung aller potenziellen geschäftlichen Bedürfnisse bzw. Anforderungen Bestandsaufnahme der Benutzerbedürfnisse (zur Abstimmung mit den geschäftlichen Erfordernissen) Erfordernisse der IT-Infrastruktur für die Unterstützung der Projektarbeit Programmdefinition mit einer Beschreibung der App und des Zwecks der Lösung Allgemeiner Zeitplan und Meilensteine des Projekts Festlegen der wichtigsten Teammitglieder sowie ihrer Aufgabenbereiche und Zuständigkeiten Start des Registrierungsprozesses für das iOS Entwicklerprogramm „Zwischen Entwickler und Vertrieb fand eine sehr direkte Kommunikation statt. Wir sind sogar zu Kundenbesuchen mitgefahren, zogen Sicherheitsschuhe und Schutzhelme an, um den mobilen Vertrieb unter die Lupe zu nehmen und zu sehen, was genau unsere Leute dort brauchten und wie sie die App konkret nutzen würden.“ – Dean Moore, Sunbelt Rentals 3 Suchen Sie nach einigen einfachen Aufgaben, die bei den meisten Ihrer Benutzer oft vorkommen, und überlegen Sie, inwiefern eine mobile App hier Vereinfachungen bringen könnte. Hier sind einige Beispiele: • Eine einfache App, mit der ein Mitarbeiter unterwegs eine Spesenabrechnung oder eine Bestellung freigeben kann • Ein Firmenverzeichnis oder ein Lageplan zur allgemeinen Nutzung • Ein Programm, das den Weg zu Besprechungsräumen zeigt und damit den Mitarbeitern auch außerhalb ihres Büros weiterhilft • Eine einfache App für die Zeiterfassung, die mit Ihrem Back-End-Zeitmanagement- oder Abrechnungssystem verbunden sein kann Inventarisieren Ihrer Ressourcen Oft besteht die beste Möglichkeit, eine hauseigene App effizient aufzubauen, einfach in der Nutzung bereits vorhandener Technologie. Sie möchten vielleicht eine Bestandsliste Ihrer Mitarbeiter-Websites anlegen und feststellen, ob es sinnvoll sein könnte, diese für iPhone oder iPad zu optimieren. Oder Sie haben Back-End-Systeme mit Daten in einem Format, das Sie problemlos in einem mobilen Kontext bereitstellen könnten. Denken Sie auch an die Apps, die es bereits im App Store gibt: Vielleicht ist eine App, die Ihren Anforderungen entspricht, ja schon vorhanden. Sehen Sie sich das Beispiel des Bestandsinventars (auf der rechten Seite) an. Dort finden Sie weitere Fragen, die Ihnen helfen, einen Überblick über Ihre vorhandene Umgebung zu bekommen. Definieren Ihrer App Sobald Sie zuverlässig wissen, was Ihre Benutzer benötigen und auch über die potenziellen mobilen Lösungen zur Erfüllung dieser Bedarfslage Bescheid wissen, werden Sie diese Konzepte zu einem knapp gefassten Projektplan verfeinern wollen, den Sie den anderen Akteuren in Ihrem Projekt zur Kenntnis geben können. Der wichtigste Aspekt beim Definieren des Projektplans ist die Angabe zur Programmdefinition – eine kurz gefasste Definition des Zwecks Ihrer App. Mit einer Angabe zur Programmdefinition gehen Sie zwei gängigen Fallstricken aus dem Weg: • Sie haben eine vorhandene Desktop-App, die Sie auch mobil nutzen möchten. Deshalb haben Sie eine entsprechend lange Liste mit Features, die in die neue Umgebung übertragen werden sollen. • Sie haben eine tolle Idee für eine neue mobile App, stürzen sich aber sofort auf die Features, bevor Sie den Zweck der App präzise definiert haben. Planung • Design • Entwicklung • Implementierung Beispiel: Ressourcen Das Beantworten dieser Fragen hilft Ihnen festzustellen, ob Sie vorhandene Technologie in Ihrer mobilen App nutzen können: • Welche Systeme nutzen die meisten Ihrer mobilen Mitarbeiter Tag für Tag? • Welche Aufgaben müssen Ihre mobilen Mitarbeiter am häufigsten erledigen? • Welche manuellen Prozesse ließen sich durch mobile Apps automatisieren oder vereinfachen? • Haben Sie vorhandene nichtmobile Systeme, die für die Nutzung durch mobiles Personal in Frage kommen könnten? • Welche Funktionen innerhalb dieser Systeme werden am häufigsten genutzt? • Welche Art von Datenzugriff stellen Ihre Unternehmenssysteme bereit? Kann auf Daten einfach über Webdienste zugegriffen werden? • Haben Sie interne Websites, auf die Ihre Mitarbeiter täglich zugreifen? Könnten diese problemlos in mobile Apps verwandelt werden? „Wir sahen uns die verschiedenen Produktlinien an und fragten uns: Wo ist die Nutzung von Mobiltechnologie wirklich sinnvoll?“ Welches ist die oberste Ebene? Welches sind die ersten Treffer, auf die wir achten sollten? Das war unser Ausgangspunkt für das weitere Vorgehen. Wir sahen uns unser ProduktPortfolio an und überlegten, was am sinnvollsten wäre.“ – James Blomberg, General Electric 4 Erstellen einer Programmdefinition Beginnen Sie mit dem Verfassen einer Programmdefinition, die folgende Aspekte einschließt: • Den Zweck hinter der App • Für wen ist die App gedacht und wie wird sie genutzt werden? • Kernfunktionen der App Achten Sie darauf, dass Ihre Angaben eine Lösung und lediglich deren Kernfunktionalität definieren – aber noch keine detaillierte Gruppe von Features. Der Zweck der App sollte klar und deutlich herausgestellt sein, sodass anhand dieser Vorgabe jede Idee für ein Feature geprüft werden kann. Fragen Sie sich stets selbst, ob jedes Feature auch wirklich den gedachten Zweck erfüllt. Wählen Sie dann nur die wenigsten, am häufigsten genutzten und im mobilen Kontext am besten geeigneten Features aus. Achten Sie darauf, am Ende keine lange und wenig zielgenaue Liste mit Features zu haben, die entweder schwierig auszuführen oder zur Lösung des Problems gar nicht geeignet sind. Wenn Sie dafür sorgen, dass Ihre App aufs Wesentliche fokussiert bleibt, erhalten Ihre Benutzer das Maximum an Produktivität in einem einfach zu bedienenden Lösungspaket. Planen des Entwicklungsprozesses Üblicherweise beansprucht die Entwicklung von Unternehmenssoftware enorme Ressourcen. Mit dem iOS SDK und hochwertigen Cocoa Touch Frameworks verbringen Ihre Entwicklungsteams weniger Zeit mit der Codierung und können sich mehr um die Ausgestaltung der perfekten Benutzerumgebung kümmern. Dieser Prozess ermöglicht Ihnen nicht nur, eine App für Ihre Mitarbeiter schneller bereitzustellen. Er hilft Ihnen auch, Lösungen anzubieten, die die Erwartungen Ihrer Benutzer sogar noch übertreffen. Beispiel: Programmdefinition So könnte eine Programmdefinition aussehen. Als Beispiel dient eine Zeiterfassungs-App für Anwälte: • Zweck: Erfassen von Zeitaufwand und abrechnungsfähigen Arbeitsstunden pro Mandant • Zielgruppe: Anwälte im Unternehmen, die ihre abrechnungsfähigen Arbeitsstunden erfassen müssen • Nutzungsweise: Bei jedem Mandantentermin werden Beginn und Ende der abrechnungsfähigen Zeit gestoppt • Kernfunktion: Zeitaufwand im CRM-System erfassen und melden • Konsolidierte Programmdefinition: App für Anwälte zum Erfassen des Zeitaufwands und der abrechnungsfähigen Arbeitsstunden pro Mandant • Features, die der Definition entsprechen: Eine Uhr mit Start-/Stoppfunktion; Hintergrunderfassung/-verarbeitung; Serverintegration mit CRM-System; Nachschlagen von Mandantendaten zum Zuordnen des erfassten Zeitaufwands zum Mandanten/Fall; Online-/Offline-Synchronisierung auf Basis der Netzwerkkonnektivität • Beispiele für Features, die nicht zur Definition passen oder den Projektumfang sprengen würden: Signalisierung neuer Fälle; Dokumentrecherche als juristische Referenz; Karte mit Mandantenstandorten; Suchschnittstelle Ob Sie einen agilen Entwicklungsprozess oder eine eher traditionelle Wasserfallmethode vorziehen: Achten Sie in jedem Fall darauf, Zeit und Ressourcen zu budgetieren, damit in den Design-Prozess – den zentralen und kontinuierlichen Bestandteil der gesamten Entwicklungsarbeit für Ihre App – angemessen investiert werden kann. Arbeiten Sie einen groben Zeitplan des vorgesehenen Prozesses aus, sowie die Aufgabenbereiche für jeden einzelnen Akteur in jeder Phase des Projektablaufs. Diese Vorgaben müssen nicht in Stein gemeißelt sein, können aber dennoch für alle Beteiligten einen gemeinsamen Bezugspunkt liefern. Tipp: Crowdsourcing Genentech wusste, dass gute Ideen für Apps von überall und jedermann kommen können. Deshalb entwickelte man ein Crowdsourcing-Modell, das Mitarbeitervorschläge für Apps aufgreift, die diese Kollegen gerne intern entwickelt sähen. Seitdem hat das Unternehmen die fünf meistverlangten Apps zur vollsten Zufriedenheit und unter begeisterter Aufnahme der Benutzer auch tatsächlich erstellt. Planung • Design • Entwicklung • Implementierung 5 Abstecken des Leistungsumfangs Beispiel: Typisches Projektteam Um stets zielgerichtet zu arbeiten und den Prozessfortschritt zu kommunizieren, sollte Ihr Plan ein zentrales Dokument mit einer Beschreibung des Leistungsumfangs umfassen, das alle Projektressourcen, Ziele, Vorgaben und Zeitpläne sowie wesentliche Lieferkriterien einschließt. Dies ist ein für alle Akteure wichtiger Leitfaden zum Projekt. Zum Leistungsumfang können vorbereitende technische Voraussetzungen für Ihre App ebenso gehören wie Flowcharts oder visuelle Diagramme, die helfen, die Ziele der AppKonzeption während der Entwicklungsphase zu kommunizieren. Code Requirements Release • Training • Coding of app • Design and graphics • Test cases • Unit testing • Scope project • Obtain approvals • Assemble team Design • Architecture design • Project plan built • Initial wireframes • Developer sizings • Internal release of app • Stakeholder signoff • Maintenance plan Verification • Testing on devices • Automated UI tests • Bug fixes • Design review/tweaks • Stakeholder walkthrough Zusammenstellen des Teams Line-of-Business Owner Primary stakeholder and app user Executive Sponsor Primary stakeholder, responsible for strategic plan Project Leader Tracks schedules, timelines, and overall scope of work Product Manager Delivers the app, manages requirements, and reconciles business needs with solutions User Experience Architect Responsible for framework of user interaction model and user process flow/journey Technical Architect Responsible for infrastructure, security, and data access models Development Manager Technical lead and project manager User Interface Designer Responsible for app visual design, graphics, and identity IT Manager Responsible for deployment and life-cycle management of apps Developer Responsible for overall technical architecture and coding Wie bei jedem Projekt empfiehlt es sich, ein Team zusammenzustellen, in dem jeder Einzelne am erfolgreichen Ausgang Ihres App-Projekts beteiligt ist. Manche der Beteiligten könnten Ihre internen Kunden sein (ein Kunden- oder Projektbeauftragter oder eine Benutzergruppe), andere sind mit bestimmten Teilen des Entwicklungsprozesses selbst betraut (Designer, Entwickler, technische Architekten usw.). Letztendlich sollten Sie die Aufgaben und Zuständigkeiten im Team am Zeitplan des Projekts und an den im vorherigen Schritt besprochenen Meilensteinen ausrichten. Da das Design ein zentrales Element jedes iOS Entwicklungsprojekts ist, benötigen Sie z. B. in jedem Fall ein Design-Team (oder entsprechende Ressourcen). Unterschiedliche Gruppen haben möglicherweise unterschiedliche Teilnahmeaspekte und Interessen am Endergebnis. Daher ist es sinnvoll, diese Aufgabenbereiche zu dokumentieren, damit jeder Beteiligte im gesamten Projektablauf in der Lage ist, seiner Verantwortung gerecht zu werden. Planung • Design • Entwicklung • Implementierung 6 Outsourcing der Entwicklung Wenn Sie über keine ausreichenden internen Ressourcen verfügen, kommt auch das Outsourcing der Entwicklungsarbeiten (ganz oder teilweise) in Betracht. Externe Entwickler könnten Ihnen vielleicht auch ein Portfolio ihrer Arbeit präsentieren, das die Grundlage für neue Ideen bilden könnte. Um erfolgreich zu sein, muss das externe Team selbstverständlich ein umfassendes Verständnis Ihres Projekts besitzen – das betrifft alles, was Sie beim Planungsprozess festgelegt haben. Außerdem ist der regelmäßige Austausch mit Ihnen und Ihrem hauseigenen Team unerlässlich. Diskutieren Sie Ihren Bedarf und stellen Sie sicher, dass die externen Entwickler Ihre Ziele genau verstehen. Überprüfen Sie die Angaben zur Programmdefinition sowie besonders sorgfältig die Projektdetails. Achten Sie von Anfang an darauf, dass der kommunikative Austausch klar geregelt ist, ebenso wie ein Prozess, der eine dauerhafte Kontaktpflege gewährleistet. Sie müssen den Aufgabenbereich des externen Anbieters definieren, ebenso wie bei einem Mitglied Ihres internen Teams. Stimmen Sie diese Aufgaben und Zuständigkeiten mit dem Projekt- und Zeitplan ab, damit Sie klar und eindeutig kommunizieren können, welche Aspekte Ihres Projekts vom externen Partner zu liefern sind. Tipp: Auswählen eines externen Anbieters • Treffen mit mehreren Anbietern. • Ansehen vorhandener Arbeiten, einschließlich Apps im App Store, Berücksichtigen von App-Ranking und Benutzerkommentaren. • Beurteilen von Kenntnissen und Fähigkeiten, z. B.: Wird der Code komplett selbst geschrieben? • Anfordern von Referenzen. • Keine Berücksichtigung von Tendenzen zu „Global“-Lösungen oder generischer Multiplattform-Strategie. • Schwerpunkt auf UI-Design, hochwertiger Grafik und auf dem Entwicklungsweg bis zur App. • Besprechen von Programmpflege und Lebensdauer der App über Version 1.0 hinaus. • Frage nach Erfahrungen in der IT-Infrastruktur. Release Requirements In-house team responsibilities „Wir arbeiten mit externen Vertragspartnern an mehreren Outsourced developer responsibilities Design Code Verification Manche externe Partner können bei allen Elementen des Projekts hilfreich sein, von den anfänglichen Erfordernissen bis zur abschließenden Implementierung. Andere beschränken sich vielleicht ausschließlich auf das Schreiben von Code. Sie sollten diese Fähigkeiten und Dienste in jedem Fall zusammen mit dem externen Anbieter besprechen, unabhängig davon, ob dieser am Ende tatsächlich beauftragt wird oder nicht. So können Sie dessen Stärken besser beurteilen, und Sie können darüber informieren, wie Sie die Beziehung zu gestalten beabsichtigen. Planung • Design • Entwicklung • Implementierung verschiedenen Elementen. Es kommt einfach darauf an, was für die jeweilige App notwendig ist. Wenn es ganz spezifisch um Design und Stil der App geht, sprechen wir mit Partnern, die schon ähnliche Projekte durchgeführt haben – wir wissen dann, dass sie auf diesem Gebiet bereits Erfahrung haben. Dafür können wir Mitarbeitern oder Kunden ein qualitativ hochwertiges Produkt bieten.“ – Todd Schofield, Standard Chartered Bank 7 Erste Schritte mit dem iOS Entwicklerprogramm für Unternehmen Sobald Sie Erfordernisse zusammengestellt, Input von Ihren Benutzern erhalten und Ihr Programm und den Projektplan definiert haben, besteht der letzte Schritt vor dem Einstieg in die Design-Phase in der Registrierung beim iOS Entwicklerprogramm für Unternehmen. Dieses Programm stellt einen vollständigen und integrierten Prozess für Entwicklung, Test, Debugging und Verteilung von iOS Apps innerhalb Ihres Unternehmens bereit. Sobald Sie bei dem Programm registriert sind, erhalten Sie Zugriff auf die in der Liste rechts angegebenen Tools und Ressourcen. Überblick: Ressourcen des iOS Entwicklerprogramms für Unternehmen Mit der Mitgliedschaft im iOS Entwicklerprogramm erhalten Sie die folgenden Vorteile: • Zugang zum iOS Dev Center • Zugang zum iOS SDK Hier folgt ein Überblick zum besseren Verständnis des Registrierungsprozesses. Anschließend kann die Projektarbeit beginnen. Weitere Einzelheiten finden Sie unter http://developer.apple.com/programs/ios/ enterprise. • Auswahl von Prerelease-Software und -Tools Voraussetzungen für die Registrierung • Technischer Support (zwei Einsätze pro Jahr der Mitgliedschaft) Vor der Registrierung bei dem Programm ist auf folgende Punkte zu achten: • Möglichkeiten zum Testen von Programmen direkt auf dem iPad, iPhone und iPod touch • Sie planen die Verteilung von iOS Apps ausschließlich innerhalb ihrer Firma bzw. Organisation. Das iOS Entwicklerprogramm für Unternehmen richtet sich an Entwickler, die ihre iOS Apps entwickeln und an Mitarbeiter innerhalb ihrer Firma bzw. Organisation verteilen möchten. • Ihr Unternehmen besitzt eine D-U-N-S Nummer (Dun & Bradstreet). Während der Registrierung müssen Sie Apple diese Nummer angeben. Sie müssen den offiziellen Namen Ihrer Firma bzw. Organisation kennen. Ihre D-U-N-S Nummer können Sie unter der Adresse http://www.upik.de/upik_anfrage. cgi?new=1 anfordern bzw. abfragen. • Sie sind befugt, Ihr Unternehmen an die rechtlichen Vereinbarungen zu binden. Im Verlauf der Registrierung müssen Sie einen Ansprechpartner benennen, der belegen kann, dass Sie befugt sind, Ihr Unternehmen auf die Lizenzvereinbarung zum iOS Entwicklerprogramm für Unternehmen zu verpflichten. • Sie haben die technischen Möglichkeiten, um Programme in Xcode zu signieren. Als registrierter Benutzer treten Sie als „Agent“ Ihres Teams auf. Damit sind Sie verantwortlich für die Bereitstellung von Apps und die technischen Aufgaben der Account-Verwaltung. • Möglichkeit zur Zusammenstellung des Entwicklerteams im Abschnitt „Team“ des Member Center • Zugang zu Apple Entwicklerforen • Ad-hoc-Verteilung Ihrer App auf bis zu 100 registrierten Geräten • Unternehmensinterne Verteilung an beliebig viele Mitarbeitergeräte Tipp: Zusammenstellen des Entwicklungs-Toolkits Grundvoraussetzung für das iOS SDK ist ein Intel-basierter Mac. Entwickler arbeiten üblicherweise mit einem MacBook Air oder MacBook Pro wegen der großen Mobilität und Bewegungsfreiheit, die diese Geräte bieten. Ein iMac oder Mac mini eignet sich aber genauso, vor allem wenn Sie ein eigenes Entwicklungslabor betreiben. Achten Sie auch darauf, dass Sie Testgeräte zur Verfügung haben. Wenn Sie vollständige Kompatibilität sicherstellen möchten, denken Sie daran, auch Hardware früherer Generationen bereitzuhalten, z. B. ein iPhone 3GS oder das iPad der ersten Generation. Übersicht über das Registrierungsverfahren 1. Als Apple Developer registrieren. Als Erstes müssen Sie sich als Erstes bei Apple für dieses Programm registrieren, indem Sie eine neue, dedizierte Apple ID erstellen. Es empfiehlt sich, eine E-Mail Adresse speziell für diesen Account einzurichten, damit Ihr Unternehmen diese bei Bedarf unterschiedlichen Personen zuweisen kann. 2. Unternehmen, Kontaktdaten und offizielle Informationen eingeben. Diese Informationen werden benötigt, um Ihren Status als Wirtschaftsunternehmen überprüfen zu können. Entscheidende Voraussetzung hierfür ist eine gültige D-U-N-S Nummer. Achten Sie darauf, dass Ihre Angaben zu Planung • Design • Entwicklung • Implementierung 8 Firmenname und Adresse mit den Informationen in der Dun & Bradstreet Datenbank übereinstimmen. Im Rahmen der Identitätsprüfung müssen Sie Apple ggf. geschäftliche Dokumente vorlegen, z. B. Statuten, eine Betriebsvereinbarung und eines Geschäftslizenz. 3. Bei Apple einreichen. Sobald Sie Ihre Registrierung eingereicht haben, können Sie den Status überprüfen. Dazu melden Sie sich beim Developer Member Center unter der Adresse http://developer.apple.com/membercenter an. Identifizieren Sie sich mit der in Schritt 1 erstellten Apple ID. Bei diesem Schritt wird Apple die App prüfen und bei Bedarf Kontakt mit Ihnen bzw. Ihrer Rechtsabteilung aufnehmen. 4. Lizenzvereinbarung des Unternehmensprogramms akzeptieren. Zum Fortsetzen der Registrierung müssen Sie den Bestimmungen der Lizenzvereinbarung für dieses Programm zustimmen. Sie können diese Bestimmungen an dieser Stelle durchlesen und an Ihre Rechtsabteilung weiterleiten. 5. Erwerben des Programms. Sobald Sie dieser Vereinbarung zugestimmt haben, erhalten Sie Anweisungen, wie Sie die Mitgliedschaft über den Apple Online Store erwerben können. Wenn Sie lieber eine Bestellung nutzen möchten, kontaktieren Sie Ihren örtlichen Apple Store um festzustellen, ob Beschaffungsoptionen für institutionelle Kunden verfügbar sind. 6. Aktivieren Sie die Mitgliedschaft. Sie erhalten nach dem Kauf des Programms eine Auftragsbestätigung. Innerhalb von 24 Stunden sollten Sie eine Aktivierungs-E-Mail von Apple erhalten, die den Code für die Aktivierung Ihrer Mitgliedschaft enthält. Nach erfolgter Aktivierung können Sie auf alle Programmressourcen zugreifen. Zusammenstellen Ihres Teams Überblick: Teamaufbau Agenten und Administratoren können neue Mitglieder hinzufügen, die dann als Admin oder Mitglied definiert werden können. Dazu navigieren sie in den Titel „People“ im Apple Developer Member Center. Navigieren Sie zum Abschnitt „Invitations“ und klicken Sie auf „Invite Person“, um neue Mitglieder einzuladen, sich Ihrem Team anzuschließen. Agent Admins Members Admin Setup and Distribution Member Setup and Approvals Development Distribution Certificate Development Certificates Development Certificates Enterprise Provisioning Development Provisioning Development Provisioning Sobald Ihr Unternehmen beim iOS Entwicklerprogramm für Unternehmen registriert ist, müssen Sie Ihr Entwicklungsteam im Abschnitt „Team“ des Member Center zusammenstellen. Aufgabenbereiche und Zuständigkeiten des Teams Ein Entwicklungsteam setzt sich aus Einzelpersonen zusammen, die die folgenden Aufgabenbereiche abdecken: Agent. Der primäre Ansprechpartner für das Entwicklungsteam. Er ist verantwortlich für die Zustimmung zu allen vertraglichen Vereinbarungen des iOS Entwicklerprogramms, außerdem ist er der Primärbenutzer, der sich beim Programm registriert hat. Er ist auch verantwortlich für die Verwaltung des Verteilungszertifikats des Unternehmens, das zur Bereitstellung von Apps für die umfassende Implementierung durch die Benutzer verwendet wird. Administrator(en). Administratoren verwalten ihre eigenen Entwicklungsteams und -zertifikate. Sie benötigen die Einschaltung des Agenten bei der Verwaltung der unternehmensweiten Verteilung. Tipp: Registrieren von Geräten für die Entwicklung Administratoren können mehrere Geräte-IDs auf einmal eingeben. Dazu laden sie eine .deviceids Datei, die mit dem iPhone Konfigurationsprogramm generiert wird. Im iPhone Konfigurationsprogramm wählen Sie die Einheiten aus, die für den Upload genutzt werden sollen, und klicken auf „Exportieren“. Damit wird eine .deviceids Datei erstellt. Besuchen Sie www.apple.com/de/support/iphone/enterprise und laden Sie das iPhone Konfigurationsprogramm. Mitglieder. Primäre Entwickler innerhalb der Organisation. Mitglieder erhalten die Genehmigung von Administratoren zur Bereitstellung von Apps und Geräten für Test- und Entwicklungszwecke. Sie benötigen die Einschaltung des Agenten bei der Verwaltung der unternehmensweiten Verteilung. Planung • Design • Entwicklung • Implementierung 9 Lernressourcen Sobald Sie Ihr Team zusammengestellt haben, besuchen Sie das iOS Dev Center unter der Adresse http://developer.apple.com/devcenter/ios. Dort finden Sie eine Vielzahl von Ressourcen. Sie können diese Ressourcen mit Lesezeichen versehen oder sogar als Startseite für alle mit der Entwicklung in Zusammenhang stehenden Dinge definieren. Hier seien nur einige der erstklassigen Ressourcen erwähnt, die zur Verfügung stehen. Foren Nehmen Sie Kontakt zu anderen Entwicklern auf und tauschen Sie sich über Ideen und bewährte Verfahren aus. Es ist immer hilfreich, eine Community ähnlich denkender Entwickler in Reichweite zu haben. Referenzbibliothek Enzyklopädie, Lehrbuch und Themenliste in einem. Die Bibliothek ist durchsuchbar, in Kategorien unterteilt, und sie liefert alle direkten Informationen, die Sie zum Aufbau von Apps benötigen. Mustercode Verwenden Sie diese Muster als Inspiration beim Entwickeln eigener leistungsfähiger Apps. Sie können sogar den Mustercode kopieren und direkt in Ihr Projekt einsetzen. „Die Muster auf der Apple Website erleichtern es definitiv, ein spezifisches Feature zu sehen, wie etwa als Aufriss oder in Plänen, oder durch Integration mit einer lokalen SQL Datenbank.“ – Keith Debickes, JM Family Enterprises, Inc. Direktlinks Häufig gestellte Fragen zur Programmregistrierung http://developer.apple.com/support/ios/enrollment.html Häufig gestellte Fragen zum iOS Entwicklerprogramm für Unternehmen http://developer.apple.com/support/ios/enterprise.html Einführungshandbücher Wenn Sie neu bei der iOS Entwicklung sind, bieten diese Handbücher Ihrem Team Erläuterungen zu grundlegenden Konzepten und bewährten Verfahren bei der iOS Entwicklung. Ausblick Wenn Ihr Planungsprozess abgeschlossen ist, prüfen Sie nochmals die Planungs-Checkliste vom Anfang dieses Kapitels. Wenn Sie alle Schritte durchgeführt haben, können Sie damit rechnen, dass Sie die Unterstützung des Vorstands, ein engagiertes Team und einen klaren Projektplan zur Hand haben, an den sich jeder halten kann. Ihr Team wird für die nächste Phase des Prozesses vorbereitet: Untersuchen der bewährten Verfahren bei Design und Entwicklung sowie Erlangen eines grundlegenden Verständnisses der Konzepte bei der iOS Entwicklung. Planung • Design • Entwicklung • Implementierung 10 Design Aufs Design kommt es an. Das Erstellen einer einfachen App für iPhone oder iPad ist nicht schwierig. Wirklich erfolgreiche Apps erfordern aber schon ein wenig Arbeit. Was macht die Attraktivität der erfolgreichsten Apps aus? Sie haben ein attraktives Design und nutzen Farb- und Audiokomponenten ideal, sie sind einfach zu bedienen und funktionieren, wie sie funktionieren sollen. Sie halten das Interesse des Benutzers wach und sorgen so dafür, dass dieser immer wieder auf die App zurückgreift. Wer bei der Entwicklung einer neuen App oder beim Erweitern einer bereits bestehenden App genau auf Design-Aspekte achtet, kann die Attraktivität steigern, ein lebendigeres Erlebnis für den Benutzer kreieren und so dafür sorgen, dass das Arbeiten mit der App mehr Spaß macht. In diesem Kapitel geht es um Strategien, mit denen Sie Ihre Ideen verfeinern, Ihre Design-Optionen überarbeiten und ein App-Design bestimmen können, das die Benutzer letztendlich produktiver werden lässt. Design-Checkliste Am Ende der Design-Phase müssen die folgenden Ziele erreicht sein: Lesen der iOS Human Interface Guidelines von Apple Aufstellen einer knappen Feature-Liste, die sich direkt an Ihrer zentralen Definition des Programms orientiert Priorisierung einer Liste von Objekten, Aufgaben und Konzepten und eine Beschreibung, wie diese Elemente zusammenhängen Erstellen einer Basisgruppe von Wireframes und groben Entwürfen zur visuellen Darstellung des App-Fortschritts Design für die Touch-Steuerung Das Design einer mausgesteuerten Benutzeroberfläche ist etwas völlig anderes als das Design für die Touch-Steuerung. Zu Beginn des App-Design-Vorgangs sollte man zunächst verstehen, was die iOS Geräte so einzigartig macht. Nehmen Sie sich etwas Zeit mit einem iPhone oder iPad und machen Sie sich mit der Benutzerinteraktion und den Design-Konventionen der Benutzeroberfläche vertraut. Für die Touch-Interaktion brauchen Sie zunächst einmal mehr Pixel, um eine mit dem Finger auswählbare Taste darzustellen, als dies für die Interaktion per Maus in einer Desktopumgebung der Fall wäre. Die für einen gewissen Bedienungskomfort notwendige Mindestgröße, die ein UI-Element zum Antippen haben sollte, beträgt beispielsweise 44 x 44 Punkt. Elemente wie Einblendmenüs oder Rollbalken, wie man sie vom Desktopcomputer kennt, sind für ein mobiles Gerät auf Touch-Basis nicht sehr gut geeignet. Lesen der Human Interface Guidelines (HIG) Die iOS Human Interface Guidelines beschreiben die Prinzipien, die Ihnen helfen werden, eine erstklassige Benutzeroberfläche mit optimalem Nutzungskomfort für Ihre iOS App zu entwerfen. Diese Prinzipien sind für unternehmensinterne Apps ebenso wichtig wie für die Apps, die für den App Store produziert werden. Planung • Design • Entwicklung • Implementierung „Eine unserer Maßnahmen zur Wahrung der Einheitlichkeit in unseren Apps ist die Einhaltung der Apple HIG, der „Human Interface Guidelines“. Diese tragen entscheidend dazu bei, dass unsere Apps ein wirklich einheitliches Bild abgeben. Wir haben dabei immer noch eine Menge unterschiedlicher Design-Stile zur Auswahl, und wir achten auch darauf, dass diese einen „roten Faden“ gemeinsam haben. Die Einhaltung der HIG ist aber sehr wichtig für uns.“ – Todd Schofield, Standard Chartered Bank 11 Vereinfachen In vielen Fällen werden Ihre unternehmenseigenen Apps von einer vorhandenen DesktopProgrammumgebung abgeleitet sein, oder sie basieren auf geschäftsfeldspezifischen Systemen, auf die Ihre Benutzer angewiesen sind. Hier läuft man schnell Gefahr, jedes einzelne Feature und jede Funktion des Desktop-Programms in das Mobilgerät übernehmen zu wollen. Auf diese Weise erzielt man normalerweise gerade nicht das Ergebnis in Sachen Benutzerkomfort, das man auf einem Mobilgerät erwartet. Bedenken Sie, dass Benutzer ihre Aufgaben auf Mobilgeräten anders erledigen und dass sich bestimmte Aufgaben aus praktischen Gründen überhaupt nicht für Mobilgeräte eignen. Kleine und überschaubare Aufgaben eignen sich viel besser für die mobile Umgebung. Gerade deshalb ist es wichtig, Features stets anhand der Angaben zur Programmdefinition zu filtern, wenn Sie Ihre App weiter verfeinern möchten. Tipp: „Mundgerechte“ Apps • Einfache, schnelle und sauber funktionierende Apps erzeugen eine interne Nachfrage und minimieren Aufwand und Kosten. • Auch aus mundgerechten Apps wird ein komplettes Menü. Die Benutzer erstellen ihre eigenen „Lösungen“, und das gibt Ihren Mitarbeitern letztendlich deutlich mehr Flexibilität. Hier sind einige Fragen, die Sie sich selbst zu den Elementen der Benutzeroberfläche in Ihrer App stellen und die zu einem einfacheren Design beitragen könnten: • Ist es sinnvoll, dieses Element auf dem Display zu haben? • Bietet das Element Zugriff auf wichtige Funktionen? • Wird es häufig genutzt? Fast immer? • Braucht der Benutzer das Element jedes Mal, wenn er eine Auswahl trifft? • Ist es im Sinne des App-Ablaufs wichtig, das Element jetzt anzuzeigen? Wenn auch nur eine der Fragen mit Nein beantwortet werden kann, kommen Sie vielleicht auch ohne das betreffende Element aus. Vielleicht lässt sich die entsprechende Funktionalität auch mit etwas anderem kombinieren. iPhone und iPad Benutzer sind das Erscheinungsbild und Verhalten der in diese Geräte integrierten Apps gewohnt. Es empfiehlt sich nicht, jedes Detail der integrierten Apps nachzuahmen, es ist jedoch hilfreich, die Design-Muster, denen sie folgen, besser zu verstehen. Überlegen Sie auch, wie sich diese Muster in ein einfaches, funktionales und bedienerfreundliches Design für Ihre eigenen Apps übersetzen lassen. Untersuchen Sie diese Apps auf gemeinsame Steuerelemente, Touch-Ereignisse (z. B. Auf-/Zuziehen und Vergrößern/Verkleinern) und Animationen. Überlegen Sie dann, wie Sie diese Konzepte in einheitlicher Weise auf Ihre eigene App anwenden könnten. Planung • Design • Entwicklung • Implementierung „Es entspricht unserer Philosophie, unsere internen Apps genauso elegant und ästhetisch zu gestalten wie die jeweils beste entsprechende kommerzielle App. Als wir das Design der Benutzeroberfläche in Angriff nahmen, ging es uns nicht bloß um das funktionelle Lösen des Problems, die Lösung sollte perfekt sein und ansprechend aussehen.“ – Mark McWilliams, Razorfish 12 Prioritäten setzen Wenn eine iOS App auf ihre primäre Aufgabe fokussiert ist und bleibt, ist auch ihre Nutzung ergiebig und macht Spaß. Jeder Aspekt Ihrer App sollte zweckgerichtet feinjustiert sein. Das Erstellen einer Liste mit Objekten, Aufgaben und Konzepten – und das anschließende Sortieren dieser Elemente nach Relevanz bezogen auf den primären Sinn und Zweck Ihrer App – hilft Ihnen, eine wohlorganisierte und zielgerichtete Benutzeroberfläche anbieten zu können. Dieser Schritt hilft Ihnen auch, den Arbeitsablauf oder Prozess der Interaktion mit der App zu überdenken, was wiederum zu besseren Entscheidungen über das Design der Benutzeroberfläche führen wird. Bestand an Objekten, Aufgaben und Konzepten Tipp: Retina Display Das Retina Display des iPhone 4 oder neuerer Modelle ermöglicht das Anzeigen hochauflösender Versionen Ihrer Designs und Symbole. Wenn Sie Ihre vorhandenen Designs einfach nur vergrößern, verpassen Sie die Chance, wirklich ansprechende und ästhetische Bilder zu liefern, wie sie die Benutzer erwarten. Überarbeiten Sie stattdessen Ihre vorhandenen Bildressourcen und erstellen Sie auf diese Weise nicht nur größere, sondern auch qualitativ bessere Versionen mit reichhaltigerer Textur und hoher Detailgenauigkeit und Wirklichkeitstreue. • Objekte. Dies sind die primären funktionalen Elemente Ihrer App. In einer Kalender-App wären dies z. B. Tage, Monate, Termine und Erinnerungen. • Aufgaben. Dies sind Aktionen, die üblicherweise an Objekten ausgeführt werden, z. B. Filterung, Terminierung, Bearbeitung und Erstellung. • Konzepte. Dies sind Arbeitsabläufe oder in manchen Fällen auch eine Reihe zusammengehöriger Aufgaben, die ein größeres Konzept bilden. In unserem Beispiel mit dem Kalender könnte man das Durchsuchen als Konzept bezeichnen, da es mehrere Teilaufgaben umfasst. Objects Calendars Tasks Scheduling Concepts Searching Days Create Search Weeks Edit Filter Months Search Appointments Reminders Sobald Sie diese Listen erstellt haben, werden Sie feststellen, dass die Elemente innerhalb der einzelnen Kategorien miteinander zusammenhängen. Dies hilft Ihnen, zusammengehörige Objekte, Aufgaben und Konzepte zu hierarchisch geordneten Gruppen zusammenfassen, was wiederum die Darstellung dieser Elemente für den Benutzer vereinfachen sollte. Planung • Design • Entwicklung • Implementierung 13 Denken Sie von oben nach unten Bringen Sie die am häufigsten genutzten (in der Regel auch höherwertigen) Elemente möglichst weit nach Oben im Bildschirm – dort sind sie am besten zu sehen und am einfachsten zu erreichen. Wenn der Blick des Benutzers auf dem Bildschirm weiter nach unten wandert, sollten die Elemente nach folgenden Kriterien von oben nach unten geordnet sein: • Nutzungshäufigkeit: Die am häufigsten verwendeten Elemente weiter nach oben, die seltener genutzten entsprechend nach unten. • Priorität für den Benutzer: Wichtigere Elemente müssen weiter oben stehen. • Visuelle Hervorhebung: Elemente, die in Ihrem Design prominent platziert sein sollen, müssen weiter oben stehen. Das gleiche Prinzip gilt auch für die Informationen in Ihrer App. Weiter oben sollte das allgemeinere Material zu finden sein, je weiter unten, desto spezifischer. Optimieren Gutes Design ist ein Prozess mit mehreren Durchläufen. Je intensiver Sie schon in der frühen Prozessphase (d. h. bevor Sie eine Zeile Code schreiben) ihre Design-Konzepte für die Oberfläche durchspielen, desto besser wird das Ergebnis am Ende werden. Tipp: Skizzieren Ihrer App Greifen Sie zu Papier und Stift. Oft lässt sich eine Design-Vision am besten durch grobe Skizzen in der Anfangsphase des DesignProzesses artikulieren. Diese Skizzen helfen Ihnen, das Design zu modifizieren und zu verfeinern, ohne dass Kosten für die Codeentwicklung anfallen. Praktische Vorlagen, die Ihnen helfen, schnell brauchbare und ansehnliche Skizzen zu Papier zu bringen, sind auch online erhältlich. Nutzen Sie eine App. Es gibt auch Apps im App Store, z. B. iMockup und App Layout, die Ihnen helfen, mithilfe standardmäßiger Steuerelemente und Ansichten Benutzeroberflächen für iOS zu modellieren. Wichtig ist auch, Ihr Design stets mit Blick auf die Nutzerzielgruppe und das Gerät, für das es vorgesehen ist, zu optimieren. In guten Apps werden die Konzepte der Benutzerinteraktion, die je nach Eigenschaften des jeweiligen Geräts variieren werden, optimal umgesetzt. Beim Optimieren Ihrer App geht es in erster Linie um das Verfeinern und Durchspielen dieser Konzepte, damit das Endergebnis die Benutzer ansprechen wird. Wiederholen Bevor Sie mit dem erfolgreichen Schreiben einer App beginnen können, benötigen Sie eine ganze Reihe von Entwürfen. Sie beginnen am besten mit einigen groben Skizzen und verfeinern diese Ideen nach und nach. Hier werden Sie in jedem Durchgang mehr darüber herausfinden, wie die Interaktion des Benutzers mit der App aussehen könnte, und es werden Ihnen neue Ideen einfallen, die einbezogen werden könnten – dabei haben Sie bisher weder Zeit noch Geld noch Ressourcen in die eigentliche Entwicklung stecken müssen. Erwägen Sie, den kompletten Ablauf der App aufzuzeichnen oder zu skizzieren. So bekommen Sie ein umfassendes Gefühl für das, was der Benutzer der App vorfinden wird, und auch für die Funktionalität, die Ihr Design bereitstellt. Planung • Design • Entwicklung • Implementierung 14 iPad im Vergleich zum iPhone Wenn Sie eine App entwickeln wollen, die auf iPhone und iPad läuft, müssen Sie Ihr Design an jedes Gerät individuell anpassen. Zwar sind die meisten Elemente der Benutzeroberfläche auf beiden Gerätetypen verfügbar, das Layout insgesamt unterscheidet sich jedoch erheblich. So erwarten die Benutzer z. B. sicher mehr Grafikmaterial in hoher Wiedergabetreue bei iPad Apps als bei Apps auf dem iPhone. Das simple Vergrößern einer iPhone App, damit sie den Platz auf dem iPad Display ausfüllt, ist jedenfalls nicht zu empfehlen. Vielmehr muss Ihre iPad App den Benutzer so ansprechen, dass das größere Display und die damit verbundenen Möglichkeiten optimal genutzt werden. Bedenken Sie auch, dass das iPhone 4 und neuere Modelle dank des Retina Displays Grafik in höherer Auflösung unterstützt, was eine Verdopplung der Grafikauflösung erforderlich macht. Auch bei den verfügbaren Gesten und der Verarbeitung der Rotation gibt es Unterschiede. Diese Geräte unterstützen auch unterschiedliche Elemente auf der Benutzeroberfläche. So werden z. B. Popover-Steuerelemente oder Steuerelemente mit geteilter Ansicht nur auf dem iPad unterstützt. „Das iPad verschaffte uns definitiv mehr Fläche, die wir möglichst sinnvoll nutzen wollten. Das war für uns der wichtigste Aspekt. Wir wollten nicht bloß alles dreifach vergrößert haben, mit entsprechend mehr Pixeln. Wir wollten sichergehen, dass wir den verfügbaren Platz optimal nutzen. Wenn wir eine App vom iPhone auf das iPad übertragen, denken wir das Ganze noch einmal neu durch. Rund 60 Prozent der Kernfunktionen bleiben unverändert, aber was können wir sonst noch machen? Wie können wir die Nutzung weiter verbessern, wie dafür sorgen, dass man mit weniger Klicks oder weniger Screens dahin gelangt, wo man hin will?“ – James Blomberg, General Electric Universal Apps Das iOS SDK unterstützt die Entwicklung von Universal-Programmen. Eine Universal App ist für die Ausführung auf allen iOS Geräten optimiert. Im Wesentlichen handelt es sich dabei um eine iPhone App und eine iPad App, die als einzelnes Binärprogramm geschrieben wurde. Eine Universal App kann feststellen, auf welchem Gerät sie läuft, und die optimale Benutzeroberfläche für das jeweilige Gerät bereitstellen. Gut designte Universal Apps nutzen die spezifischen Hardwarefeatures des Geräts, bieten die passende Auswahl an Elementen auf der Benutzeroberfläche und nutzen nur jeweils die Funktionalität, die vom Gerät auch tatsächlich unterstützt wird. Beim Design einer Universal App für iOS ist es wichtig zu überlegen, wie die Benutzerinteraktion vom zugrunde liegenden Programmcode separat gehalten werden kann. Die Klassen und APIs des iOS SDK nutzen ein MVC-Paradigma (Model-View-Controller), das eine klare Trennung zwischen App-Daten und App-Logik einerseits und den Ansichten vorsieht, in denen diese Daten dem Benutzer präsentiert werden. Das Aufbauen einer Benutzeroberfläche mithilfe des Interface Builder verschafft Ihrem Projekt beispielsweise genau diese Flexibilität (siehe dazu das nächste Kapitel). Der erste Schritt beim Erstellen einer Universal App besteht im Anlegen eines Benutzeroberflächendesigns für jeden einzelnen Formfaktor – ein Design für das iPad und ein weiteres für iPhone/iPod touch. Ihr Design wird in hohem Maße von den Features abhängen, die Sie in den unterschiedlichen Formfaktoren anbieten möchten. Überlegen Sie, inwiefern die Benutzer Geräteausrichtung oder Gesten gerätespezifisch unterschiedlich nutzen könnten. Berücksichtigen Sie die Hardwaremöglichkeiten der einzelnen Geräte, etwa die Kamera. Unterschiede in der Nutzungsweise sollten Ihnen Schlussfolgerungen bezüglich des einheitlichen Designs für jedes Gerät und auch darüber ermöglichen, wo ggf. Konditionalcodierung erforderlich werden könnte. Planung • Design • Entwicklung • Implementierung 15 Bedienungshilfen In einer Unternehmensumgebung ist es wichtig, allen Benutzern einen gleichwertigen Zugang zu Mobilgeräten und Mobiltechnologie zu ermöglichen. iOS enthält zahlreiche vorinstallierte Features, die dafür sorgen, dass ein Gerät für jeden Benutzer zugänglich und leicht zu bedienen ist. Genauso wichtig ist es daher, Ihre hauseigenen Apps mit Blick auf die Bedienungshilfen zu optimieren, damit auch Benutzer mit Einschränkungen (Sehkraft, Gehör oder motorische Behinderung) die App möglichst uneingeschränkt nutzen und genießen können. iOS bietet die Programmierschnittstelle „UI Accessibility“, eine kompakte API, die dafür sorgt, dass eine App alle Informationen liefern kann, die VoiceOver braucht, um die Oberfläche zu beschreiben, sodass auch Menschen mit Sehbehinderung die App verwenden können. Die Programmierschnittstelle „UI Accessibility“ ermöglicht das Hinzufügen einer dünnen Funktionalitätsschicht, die weder das Erscheinungsbild der App beeinträchtigt noch mit deren zentraler Logik kollidiert. Das bedeutet, dass Ihnen bei Verwendung standardmäßiger Steuerelemente und Ansichten bereits viel von der Arbeit abgenommen wird, die es braucht, um eine App uneingeschränkt zugänglich zu machen. Je nach Umfang der Anpassung in Ihrer App beschränkt sich das Herstellen uneingeschränkter Zugänglichkeit vielleicht schon auf das Bereitstellen präziser und nützlicher Beschreibungen der jeweils zugänglichen Elemente auf der Benutzeroberfläche. Das iOS SDK bietet außerdem die folgenden Werkzeuge, mit denen Sie die Zugänglichkeit Ihrer Apps gewährleisten können: Tipp: Integrieren der VoiceOver Unterstützung Es ist in jedem Fall vernünftig, Ihre iOS App auch für Benutzer von VoiceOver zugänglich zu machen. Dies dient auch der Einhaltung der Richtlinien für Bedienungshilfen, die von verschiedenen Behörden ausgearbeitet wurden. Wenn Sie sicherstellen möchten, dass VoiceOver Benutzer Ihre App verwenden können, brauchen Sie dazu das visuelle Design Ihrer Oberfläche in keiner Weise zu verändern. Solange Sie mit Standardelementen arbeiten, wird – wenn überhaupt – nur geringer zusätzlicher Aufwand notwendig werden. Sie müssen jedoch ggf. einige beschreibende Informationen zu den Ansichten und Steuerelementen auf der Benutzeroberfläche liefern. Je individueller Ihre Benutzeroberfläche gestaltet ist, desto mehr eigene Informationen müssen Sie bereitstellen, damit VoiceOver in der Lage ist, Ihre App präzise zu beschreiben. • Ein Interface Builder Informationsfenster, mit dessen Hilfe Sie beim Entwerfen von nib-Dateien auf einfache Weise beschreibende Informationen als Bedienungshilfen bereitstellen können • Informationsfenster „Bedienungshilfen“, das die Informationen über Bedienungshilfen eingebettet in die Benutzeroberfläche der App anbietet. Dieses Fenster ermöglicht Ihnen auch das Prüfen dieser Informationen, wenn Sie die App im iOS Simulator ausführen. Überdies können Sie die Bedienungshilfen der App auch mit VoiceOver selbst unmittelbar testen. Ausblick Mit einer Grundlage bewährter Verfahren beim Design einer Benutzeroberfläche sind Sie nun bereit, in die Entwicklungsphase Ihres Projekts einzusteigen. Wie Sie aus dem Kapitel zur Planung vielleicht noch wissen, ist das Design ein iterativer Prozess, der den gesamten Lebenszyklus der App-Entwicklung durchzieht. Das Erstellen eines guten Designs, das den Schwerpunkt auf die Benutzerfreundlichkeit legt, sollte als bewusste Strategie verfolgt werden, selbst wenn Ihr Entwicklungsteam bereits mit dem Schreiben von Code begonnen hat. Die Werkzeuge und Konzepte, die im folgenden Kapitel behandelt werden, helfen Ihnen genau hierbei: Entwickeln zuverlässigen Codes und gleichzeitig Bereitstellung sauber entworfener Apps für Ihre Benutzer. Planung • Design • Entwicklung • Implementierung 16 Entwicklung Mit iOS können Sie Inhalte und Informationen auf einfachen und dennoch leistungsstarken neuen Wegen bereitstellen, damit Ihre Mitarbeiter noch produktiver werden können. Mithilfe des iOS SDK erstellt Ihr Entwicklungsteam Apps mit den gleichen Werkzeugen, mit denen auch Apple Techniker das Betriebssystem und die Apps produzieren, die in jedem iPhone und iPad enthalten sind. So können Sie Apps erstellen, die die Anforderungen Ihrer Benutzer in Sachen Optik, Feeling und Ansprechverhalten elegant und höchst effizient erfüllen. Durch den Einsatz der iOS Tools können Sie die hochwertigen Frameworks nutzen, die Ihnen alle Vorteile der Plattform an die Hand geben. Wir untersuchen hier die wesentlichen APIs für die hauseigene Entwicklung. Daraus erwachsen dann Ihre Ideen zur Integration dieser Fähigkeiten und Funktionen in Ihre Apps. Wir gehen auch darauf ein, wie Sie durch Nutzung von HTML5, CSS und JavaScript von Webtechnologien profitieren können. Bei Einbettung geeigneter Sicherheitsfeatures in Ihre Lösung bilden diese Technologien zusammen eine leistungsstarke und sichere Grundlage, die Ihre unternehmerischen Erfordernisse unterstützt. Checkliste für die Entwicklung Am Ende der Entwicklungsphase sollten die folgenden Komponenten grundsätzlich verstanden worden sein: iOS SDK Tools einschließlich Xcode, Interface Builder, Instruments und Simulator Die wichtigsten APIs und Frameworks für die unternehmenseigene Entwicklung Entwicklung von Webapps iOS Architektur für den Datenzugriff in Back-Office-Systemen Bewährte Verfahren der Sicherung hauseigener Apps Testen, Fehleranalyse und Leistungsbewertung Ihrer App Und schließlich sollten Sie, bevor Sie Ihre App für den Einsatz durch die Benutzer freigeben, noch eine ausführliche Test- und Fehlerkorrekturphase einplanen. Außerdem sollten Sie die Leistung der App auf unterschiedlichen Geräten überprüfen und beurteilen. Wir sprechen darüber, wie iOS Tools Ihnen bei der Durchführung dieser Aufgaben helfen, und wir schlagen bewährte Verfahren vor, um sicherzustellen, dass Ihre Apps auch wirklich genau wie vorgesehen funktionieren. Native Entwicklung Hinsichtlich der hausinternen Entwicklung dreht sich alles darum, Ihre Vision von einem App-Design in die Wirklichkeit umzusetzen, unter optimaler Nutzung der Möglichkeiten, die das Gerät bietet, und all dies in einer gut strukturierten und effizienten Umgebung. Das iOS SDK enthält Xcode, die IDE für Codierung, Aufbau und Debugging Ihrer App; Interface Builder zum Erstellen der Benutzeroberfläche; Instruments zur Analyse von Verhalten und Leistung und dazu Dutzende weiterer Werkzeuge. „Mein Team hat die Erfahrung gemacht, dass SDK und Xcode fantastische Programmierwerkzeuge sind, die auch von Entwicklern ohne Mac Hintergrund sehr leicht bedient werden können.“ – Hans-Christian Pahlig, Axel Springer Xcode ist das Herz Ihrer Entwicklungsumgebung. Xcode bietet Codekomplettierung, Statikanalyse in Echtzeit und unmittelbares Debugging auf dem Gerät selbst. Interface Builder macht das Erstellen eines Prototyps Ihrer App ganz einfach. Durch Bewegen von Elementen können Sie eine vollwertige Benutzeroberfläche erzeugen, ohne irgendwelchen Code schreiben zu müssen. Bei Xcode 4 ist Interface Builder direkt in die Xcode IDE integriert. Instruments erfasst und präsentiert Daten wie Festplatten-, Arbeitsspeicher- oder CPUAuslastung in Echtzeit. So lassen sich Problembereiche einfach lokalisieren. Der Simulator führt Ihre App weitgehend genauso aus wie ein iOS Gerät. Sie können damit Ihren Code direkt von der Desktop-Umgebung aus überprüfen und testen. Planung • Design • Entwicklung • Implementierung 17 Wichtige APIs für firmeneigene Entwickler Das iOS SDK bietet Tools, mit denen Sie praktisch jede App-Funktion schreiben können, die Ihnen in den Sinn kommt. Viele dieser Tools enthalten auch Mustercode und Ressourcen, mit denen Sie gleich richtig loslegen können. Sehen wir uns nun einige der vielen Tausend APIs an, die es im iOS SDK gibt. Schon ein kurzer Blick kann Ihre Phantasie beflügeln, wenn Sie die unbegrenzten Möglichkeiten sehen, die Sie mühelos in ihre hausinternen produzierten Apps einbauen können. Multitasking. Entwickler haben Zugang zu sieben Multitasking-Diensten, die das Ausführen von Aufgaben im Hintergrund ermöglichen, ohne nachteiligen Einfluss auf Leistung oder Batterielebensdauer. Diese enthalten Funktionen wie VoIP (Voice over IP), HintergrundAudio, Hintergrund-Standortdienste, Push- und lokale Benachrichtigungen, Abschließen von Aufgaben und das schnelle Wechseln zwischen Apps. Push-Benachrichtigung. Der Push-Benachrichtigungsdienst von Apple bietet die Möglichkeit, Ihre Benutzern über neue Informationen in Kenntnis zu setzen, selbst wenn die App gerade nicht aktiv ist. Senden Sie Textnachrichten, lösen Sie akustische Warnsignale aus oder fügen Sie eine nummerierte Markierung zu Ihrem App-Symbol hinzu. Zubehör. Programme können mit Zubehörgeräten entweder über den 30-poligen Dock Connector oder kabellos via Bluetooth kommunizieren. Erstellen Sie eine App, die Daten von externen Sensoren abruft oder sogar Zubehörgeräte über eine ausgereifte Multi-Touch Oberfläche steuert. Erstellen Sie eine Inventar-App für Ihr Barcode-Lesegerät. Oder bauen Sie eine App, die die Werte von einem angeschlossenen Pulsmessgerät protokolliert und zurückverfolgt. Sie können auch eigene Protokolle erstellen, um Daten und Befehle mit Ihrer App auszutauschen. Wenn Sie wissen möchten, wie Sie Support für Ihre iOS Apps in Ihren Zubehörbestand aufnehmen können, erfahren Sie mehr über das MFi Lizenzierungsprogramm unter der Adresse http://developer.apple.com/programs/mfi. Xcode ist der zentrale Punkt ihrer Entwicklungsumgebung. Er stellt Codevervollständigung, Statikanalyse in Echtzeit und sofortige Fehlersuche auf dem Gerät bereit. Standortbasierte Dienste. Mit dem Core Location Framework können Sie die aktuellen geografischen Koordinaten (Breiten- und Längengrad) eines Geräts bestimmen und die Bereitstellung standortbasierter Ereignisse konfigurieren und terminieren. Das Framework nutzt die verfügbare Hardware zur Triangulierung der Benutzerposition auf der Basis in der Nähe befindlicher Signaldaten. iOS 4 und neuer verbessert die Kartierung durch die MapKit API. MapKit bietet Unterstützung für Schwenken und Ein-/Auszoomen, eigene Anmerkungen, Anzeige der aktuellen Position sowie Geocodierung zum Hervorheben von Regionen auf der Karte und Anzeige zusätzlicher Informationen. Planung • Design • Entwicklung • Implementierung 18 Integration freigegebener Daten. iOS bietet leistungsstarke Konnektivitätsoptionen für die App-übergreifende Nutzung von Informationen. Mithilfe einer URL-basierten Syntax können Sie auf Daten aus dem Web zugreifen sowie Aktionen in anderen installierten Apps auslösen, z. B. Mail, Kalender, Kontakte und mehr. Ihre eigene App kann auch ein eindeutiges URL-Schema deklarieren, das es jedem anderen Programm ermöglicht, Ihre App zu starten. • Mail. iOS ermöglicht Ihnen das Anzeigen einer Standardoberfläche für die Erstellung von Mail oder SMS innerhalb Ihrer App. In beiden Fällen können Sie die Nachricht mit Empfängern und Inhalt programmatisch vorkonfigurieren. Diese Vorgaben kann der Benutzer vor dem Absenden der Nachricht bearbeiten. Ausgehende Mail- und SMS-Nachrichten werden automatisch von den Mail- und Nachrichtenlisten des Systems verarbeitet. • Kontakte. Mit Adressbuch-APIs für freigegebene Daten kann Ihre App einen neuen Kontakt erstellen oder vorhandene Kontaktinfos abrufen. Durch den Zugriff auf die integrierte Kontaktliste kann Ihre App einem Benutzer ermöglichen, eine Kontakt- oder Geschäftsadresse einer Programmaufgabe oder einem Prozess zuzuordnen. • Kalender. Das Event Kit ermöglicht iOS Apps den Zugriff auf Ereignisinformationen aus der Kalenderdatenbank eines Benutzers. Rufen Sie Ereignisse auf der Basis eines Datumsbereichs oder einer eindeutigen Kennung ab, empfangen Sie Benachrichtigungen, wenn sich Ereignisdaten ändern, und ermöglichen Sie Benutzern das Erstellen und Bearbeiten von Ereignissen für beliebige ihrer Kalender. Änderungen an Ereignissen in der Kalenderdatenbank eines Benutzers werden automatisch mit dem entsprechenden Kalender synchronisiert, einschließlich geschäftlicher Kalender, die auf CalDAV und Exchange Servern bereitgestellt werden. Interface Builder ist direkt in die Xcode 4 IDE integriert und macht damit die Erstellung eines Prototyps Ihrer App ganz einfach. Durch Bewegen von Elementen können Sie eine vollwertige Benutzeroberfläche erzeugen, ohne irgendwelchen Code schreiben zu müssen. • Fotos. UIKit bietet Zugriff auf das Fotoarchiv des Benutzers. Die Oberfläche zur Fotoauswahl bietet Steuerelemente zum Navigieren im Fotoarchiv des Benutzers und zum Auswählen eines Bilds, das an Ihre App zurückgegeben werden soll. Sie haben auch die Möglichkeit, Steuerelemente für den Benutzer zu aktivieren. Dann kann der Benutzer das zurückgegebene Bild in der Anzeige schwenken und beschneiden. Auch eine Schnittstelle zur Kamera kann damit bereitgestellt werden, sodass neu aufgenommene Fotos direkt in Ihre App übernommen werden können. Core Animation Audio und Videos. Multimedia-Technologien im iOS SDK ermöglichen das Implementieren ausgereifter Audio- und Videofunktionalität innerhalb Ihrer App. Das Media Player Framework unterstützt die Wiederabe von Videodateien im Vollbildmodus, und die integrierte Unterstützung des HTTP-Live-Streaming sorgt dafür, dass Standard-Webserver problemlos zur drahtlosen Übertragung von Audio- und Videoinhalten in hoher Qualität genutzt werden können. Ihre App kann auch Core Audio dazu nutzen, Audiomaterial in Ihrer App zu generieren, aufzunehmen, zu mischen, zu verarbeiten und abzuspielen. Mit Core Animation können Sie fließende Animation und dynamisches Feedback zu Ihrer Benutzeroberfläche hinzufügen. Oder nutzen Sie OpenGL ES für leistungsstarke 2D- und 3D-Grafik. Planung • Design • Entwicklung • Implementierung 19 Webentwicklung Webapps – eine völlig neue Kategorie mobiler Programme – eröffnen eine Fülle ganz neuer Möglichkeiten für Unternehmen. Webapps sind maßgeschneiderte Webseiten, die die Vorzüge von erweitertem HTML, CCS und JavaScript nutzen, um iOS Benutzern eine intuitive und ansprechende Handhabung von Apps zu ermöglichen. Und da Sie Apps mithilfe von HTML erstellen, können Sie Webapps in jeder beliebigen Web-Entwicklungsumgebung erzeugen. Sie müssen dazu lediglich eine Webseite zur Implementierung einer Webapp bereitstellen, und Sie können Ihre Änderungen und Updates von dem Server aus verwalten, auf dem diese Seite gespeichert ist. Sehen wir uns nun kurz die Technologien an, mit denen Sie Webapps für iOS Geräte erstellen können. HTML5 ist die neueste Spezifikation von HTML, dem primären Standard, der die Interaktion von Webinhalten mit modernen Browsern definiert. HTML5 ermöglicht es Entwicklern, Multimediainhalte direkt in standardmäßige Webseiten zu integrieren. Das verkürzt die Entwicklungszeit und sorgt für ein hohes Maß an Interaktivität zur Erstellung von Webapps. CSS3 Animationen und visuelle Effekte ermöglichen das Erstellen ausgereifter grafischer Benutzeroberflächen für Webapps. Die verfügbaren visuellen Effekte reichen von Verläufen, Masken und Reflexionen bis hin zu komplexeren 2D- und 3D-Effekten. Durch Kombinieren dieser visuellen Effekte mit Touch-Events können Sie Webapps erstellen, die ganz ähnlich wie native Apps auf dem iPhone und iPad interagieren. WebKit ist eine Open Source Engine für Webbrowser. Das Webkit betreibt Safari auf iPhone und iPad und vereinfacht damit die Webentwicklung und beschleunigt die Innovation. Als Open Source Toolset steht das WebKit für jeden kostenlos zur Nutzung bereit und bietet die HTML-Engine für Webapps auf iPhone und iPad. Dashcode ist im iOS SDK enthalten. Die integrierte Umgebung ermöglicht das Entwerfen, Codieren und sogar das Testen von Webapps. Dashcode bietet auch praktische Vorlagen, mit denen Sie Ihre Webapp zum Leben erwecken können. Safari 5 für Mac und Windows umfasst eine leistungsstarke Gruppe von Werkzeugen für einfaches Testen, Korrigieren und Optimieren von Webapps für erstklassige Leistung und Kompatibilität. Für den Zugriff darauf aktivieren Sie das Menü „Entwickler“ in den Safari Einstellungen auf Ihrem Mac oder PC. Planung • Design • Entwicklung • Implementierung Der Simulator führt die App ganz ähnlich aus wie ein richtiges iOS Gerät. Sie können also Ihren Code direkt auf Ihrer Desktop-Umgebung überprüfen und testen. Und da der Simulator auch den Safari Browser für iOS enthält, können Sie auch Ihre Webapps vor deren Bereitstellung überprüfen und testen. „Eines der Dinge, die wir im SDK machen können, ist das schnelle Vornehmen von Änderungen direkt im SDK. Das geht ganz schnell auf dem Display, und anschließend lässt sich mit dem Simulator das Ergebnis praktisch sofort anzeigen. Für uns heißt das einfach, dass wir direktes Feedback liefern können.“ – Todd Schofield, Standard Chartered Bank 20 Integrieren von Webinhalten in native Apps Mit dem iOS SDK können Sie auch Zugriff auf Webinhalte innerhalb einer iOS App über ein Element namens „Webansicht“ bereitstellen. Auf diese Weise erhalten Ihre Web-Programme Zugriff auf iOS Features wie Push-Benachrichtigungen, die eingebaute Kamera, Erkennen von 3D Animation und mehr. Zusätzlich können Sie auch neue Verbesserungen in Ihre App implementieren, die Anpassungen an Ihrem Webserver vornehmen, ohne dass die App als solche neu implementiert werden muss. Die Nutzung von Webinhalten in Ihrer nativen App ist ein weiterer ausgezeichneter Weg, die native Entwicklung zu verbessern, ohne dass bestehende Investitionen in die Web-Entwicklung zurückgefahren oder ganz gestrichen werden müssten. Zugriff auf Back-Office-Systeme „Wir mussten einen Weg finden, Updates und Änderungen möglichst schnell zu bewerkstelligen, deswegen entschieden wir uns für eine Hybridstrategie. Das bedeutet: Native UI-Elemente direkt auf dem Mobiltelefon und der Rest waren einfach nur Webseiten.“ – Giancarlo De Lio, Mt. Sinai Hospital In vielen Fällen wird Ihre Firmen-App Informationen aus vorhandenen Back-Office-Systemen und DataWarehouses beziehen müssen. Das Bereitstellen einer optimalen Benutzerumgebung auf dem Client hat höchste Priorität für jede erfolgreiche mobile App. Der gleiche Blick fürs Detail und für die Architektur ist aber auch gefragt, wenn es darum geht, die Client-Umgebung mit Daten von Back-End-Servern zu integrieren. Das iOS SDK besitzt eine leistungsstarke Sammlung von Werkzeugen und Frameworks für den Zugriff auf und die Speicherung und Freigabe von Daten, die sich auf Daten-Servern des Unternehmens befinden. Webdienste Mit dem iOS SDK können Sie XML-Daten dazu nutzen, zwischen Ihrem Client-Programm und dem Server zu kommunizieren. XML-Dateien bieten ein kompaktes und strukturiertes Format, mit dem Ihre App mühelos Daten schreiben und lesen und diese direkt in das iOS Dateisystem integrieren kann. Wenn Sie mit SOAP arbeiten, können Sie eigene Datentransaktionen erstellen und analysieren oder auch Bibliotheken anderer Anbieter wie gSOAP oder Axis2 verwenden. Bei Implementierung von REST können Sie XML direkt in Ihre App integrieren und damit mehr Leistung bereitstellen. Viele iOS Apps nutzen außerdem JSON für den kompakten Datenaustausch sowie Bibliotheken anderer Anbieter wie das JSON Framework. Tipp: Webansicht Zur Integration von Webinhalten nehmen Sie einfach ein UIWebView Objekt in ihre native App auf, verknüpfen dieses mit einem Fenster und senden eine Anforderung zum Laden des gewünschten Webinhalts an das Objekt. Sie können auch den Verlauf von Webseiten in beiden zeitlichen Richtungen untersuchen, und Sie können sogar einige Eigenschaften von Webinhalten programmatisch festlegen. Vernetzung iOS bietet eine Reihe moderner, ausgereifter und einfach zu bedienender Netzwerktechnologien. BSD Sockets ist die grundlegende iOS Netzwerkprogrammierschnittstelle; alle hochwertigen Frameworks basieren darauf. Es ist die richtige Wahl für maximale Leistung und Flexibilität. Da BSD de facto den Standard in der UNIX-Netzwerkprogrammierung darstellt, ist es in der Regel einfach, Netzwerkcode aus anderen Plattformen zu portieren. Bonjour ist das leistungsstarke Protokoll von Apple, mit dem man auf einfache Weise Systeme und Dienste in einem lokalen Netzwerk automatisch finden kann – ohne umständliche Konfiguration. Ihre App hat Zugriff auf diese Features über hochwertige Frameworks, mit denen es ganz einfach ist, Informationen, die irgendwo in der Welt vorliegen, anzusteuern, zu rendern oder mit diesen in Interaktion zu treten. Planung • Design • Entwicklung • Implementierung 21 Lokale Speicherung iOS stellt Core Data und SQLite bereit, damit Ihre App die auf dem Gerät selbst gespeicherten Daten verwalten und mit diesen in Interaktion treten kann. • Core Data. Das Core Data Framework umfasst generalisierte und automatisierte Lösungen für gängige Aufgaben im Zusammenhang mit der Verwaltung der Lebensdauer und der grafischen Darstellung von Objekten, einschließlich der Objektpersistenz. Core Data bietet eine allgemeine Datenverwaltungslösung für die datenmodellspezifischen Erfordernisse von Programmen jeder Art und Größe. Sie können das Datenmodell Ihrer Apps rasch grafisch definieren und über Ihren Code auf einfache Weise darauf zugreifen. Es stellt eine Infrastruktur zur Verarbeitung gängiger Funktionalität bereit, z. B. Sichern, Wiederherstellen, Widerrufen und Wiederholen. So kommen Sie besser mit der Aufgabe voran, Innovationen in Ihre App zu integrieren. Da Core Data die integrierte SQLite Datenbibliothek verwendet, brauchen Sie gar kein separates Datenbanksystem zu installieren. • SQLite. iOS enthält die beliebte SQLite Bibliothek, eine ebenso kompakte wie leistungsstarke relationale Datenbank-Engine, die sich einfach in eine App einbetten lässt. SQLite wird in zahllosen Apps auf den verschiedensten Plattformen genutzt und gilt de facto als Industriestandard für kompakte eingebettete SQL-Datenbankprogrammierung. Anders als objektorientierte Core Data Frameworks verwendet SQLite eine prozedurale, SQL-fokussierte API zum direkten Bearbeiten der Datentabellen. Sie können SQLite sogar in einer Webapp nutzen, die JavaScript verwendet. Beispiel: Zentrale Webdienste Eine hervorragende Möglichkeit, die Back-End-Entwicklung zu vereinfachen, besteht in zentral verwalteten Web diensten, besonders wenn Ihre App mit mehreren unterschiedlichen Backoffice-Systemen kommunizieren soll. So nutzte Sunbelt Rentals beispielsweise .Net-Anwendungsserver zum Schreiben von Scripts, die gespeicherte Prozeduren sowohl aus alten AS/400 Systemen als auch aus Microsoft CRM Datenbanken aufrufen konnten. Anschließend konnten sie die von .Net via XML abgerufenen Daten präsentieren, die von der mobilen App problemlos verarbeitet werden konnten. AS/400 MS SQL Servers MS CRM Schützen Ihrer App Es ist gut möglich, dass Ihre hausinterne App vertrauliche Unternehmensdaten nutzt, die entsprechend geschützt und gesichert werden müssen. Viele der grundlegenden Sicherheitsvorkehrungen auf Geräteebene, z. B. Zugangscode und Fernlöschen, können durch Ihre zuständigen IT-Manager verwaltet werden. Ungeachtet dieser Sicherheitsvorkehrungen empfiehlt es sich aber immer, eine Strategie zum Schutz der innerhalb Ihrer hauseigenen Apps gespeicherten Daten zur Hand zu haben. Zur Unterstützung des Datensicherungsprozesses in Ihrer App bietet iOS den „Sandbox“-Ansatz. Dieser verlangt die Signierung von Apps und stellt damit sicher, dass die Programme nicht verändert werden können. iOS verfügt außerdem über ein Framework, das die sichere Speicherung der Identifikationsdaten von Apps in einem verschlüsselten Schlüsselbund ermöglicht. Außerdem bietet es hochwertige Frameworks, die zum Verschlüsseln der App-Daten und zur Bereitstellung sicheren Netzwerkbetriebs genutzt werden können. Sie können alle diese Möglichkeiten innerhalb Ihres eigenen Entwicklungsprozesses dazu nutzen, eine sichere Basis bereitzustellen, ohne die vom Benutzer wahrgenommene Umgebung zu beeinträchtigen. „Sicherheit war ein wesentlicher Aspekt bei unserer Entscheidung, Anwendungsentwicklung für das iPhone zu betreiben. Das iPhone bot uns HTTPS Sicherheit, den Schlüsselbund für die vertrauliche Behandlung bestimmter Informationen, und wir konnten Daten auch verschlüsseln.“ – Keith DeBickes, JM Family Planung • Design • Entwicklung • Implementierung 22 Apps Tipp: Freigegebener Schlüsselbund Core Services CF Network •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••• Security Services Keychain Services Certificate, Key, and Trust Services Randomization Services Core OS LibSystem CommonCyrpto Sie können Schlüsselbundobjekte über mehrere Apps freigeben. Durch das Freigeben von Objekten können Apps, die zur gleichen Programmgruppe gehören, einfacher und nahtloser zusammenarbeiten. Sie können dieses Feature z. B. dazu nutzen, Benutzerkennwörter oder andere Elemente freizugeben, die ansonsten für jedes Programm eine separate Eingabeaufforderung an den Benutzer erforderlich machen würden. Für den Zugriff auf freigegebene Objekte in der Laufzeit muss die Programmieroberfläche des Schlüsselbunddienstes für die Zugriffsgruppen verwendet werden, die Sie bei der Entwicklung eingerichtet haben. Informationen zum Zugriff auf den Schlüsselbund finden Sie im Keychain Services Programming Guide im iOS Entwickler-Portal. Architektur Die iOS Sicherheits-APIs befinden sich in der Ebene der Core Services des Betriebssystems und basieren auf Diensten in der zugrunde liegenden Core OS Ebene (also auf Kernel-Ebene) des Betriebssystems. Apps rufen die Sicherheitsdienst-APIs direkt ab, anstatt zuerst die Cocoa Touch- oder Media-Ebenen zu durchlaufen. Netzwerk-Apps können auch über die CFNetwork API auf sichere Netzwerkfunktionen zugreifen. Auch diese befindet sich in der Betriebssystemebene der Core Services. CFNetwork ist eine hochwertige C API, die auf einfache Weise das Erstellen, Senden und Empfangen serialisierter HTTPNachrichten ermöglicht. Da CFNetwork aufbauend auf Secure Transport installiert ist, können Sie den Datenstrom mit eine Vielzahl unterschiedlicher Protokollversionen von SSL oder TLS verwenden. Netzwerksicherheit iOS unterstützt VPN-Dienste, ohne dass dafür zusätzlicher Codierungsaufwand anfällt. So können Ihre hauseigenen Apps sicher mit Unternehmensnetzwerken kommunizieren. Die IT-Abteilungen von Unternehmen können die integrierten VPN-Einstellungen für IPSec, L2TP oder PPTP konfigurieren. Sie können aber auch die Benutzer anweisen, die VPN-Client-Apps Juniper, Cisco oder F5 SSL aus dem App Store zu laden. Für Konfigurationen mit zertifikatbasierter Authentifizierung stellt das iOS Betriebssystem VPN On Demand bereit. VPN On Demand stellt automatisch eine Verbindung her, wenn eine App auf vordefinierte Domains zugreift. Dies ermöglicht den hausinternen Apps eine nahtlose Konnektivität. Bei Apps, die WLAN-Zugriff erfordern, unterstützt iOS WPA2 Enterprise WLAN mit 802.1X Authentifizierung. iOS unterstützt auch Standardauthentifizierungsmethoden wie digitale Zertifikate, Sicherheits-Tokens wie etwa eine Secure ID oder CRYPTOCard sowie die Authentifizierung über ein Kennwort. Planung • Design • Entwicklung • Implementierung 23 Datensicherheit Interne Apps können vertrauliche Daten schützen, indem sie die eingebauten Verschlüsselungsfunktionen nutzen, die in den neuesten Generationen der Apple Geräte vorhanden sind. Für den Datenschutz auf dem Gerät wird der für jedes Gerät eindeutige Code mit der Hardwareverschlüsselung kombiniert, um einen zuverlässigen Schlüssel zu erstellen. Wenn Ihre interne App eine bestimmte Datei als geschützt ausweist, speichert das System diese Datei auf dem Gerät in einem verschlüsselten Format. Solange das Gerät gesperrt ist, ist der Inhalt der Datei für die App und für mögliche Eindringlinge nicht zugänglich. Sobald der Benutzer jedoch das Gerät entsperrt, erstellt iOS einen Schlüssel, der die Datei entschlüsselt und damit für die App zugänglich macht. Sie müssen Ihre App so konstruieren, dass die Daten bei ihrer Erstellung sicher sind und für Änderungen beim Datenzugriff vorbereitet sind, sobald der Benutzer das Gerät sperrt bzw. entsperrt. Sichere Authentifizierung iOS bietet einen sicheren verschlüsselten Schlüsselbund für die Speicherung digitaler Identitäten, Benutzernamen und Kennwörter. Das Betriebssystem partitioniert Schlüsselbunddaten, damit Apps einer anderen Identität nicht auf Zugangsdaten zugreifen können, die durch eine App eines anderen Anbieters gespeichert wurden. Dies ermöglicht iOS die sichere Verarbeitung von Identifizierungsdaten auf der gesamten Bandbreite von Apps und Diensten innerhalb eines Unternehmens. In iOS überprüfen die Schlüsselbunddienste die Signatur einer App, bevor sie ihr den Zugriff auf einen Schlüsselbund gewähren. Der Schlüsselbundzugriff wird vollständig ohne Interaktion mit dem Benutzer abgewickelt. Ihre internen Apps können über die Keychain Services API mit dem Schlüsselbund interagieren. Test und Leistungsbewertung Die Tests auf Leistung, UI-Optimierung, Netzwerkfunktion und tatsächlichen praktischen Nutzen sollten integraler Bestandteil des laufenden Entwicklungsprozesses sein. Das Motto „Teste so früh und so viel wie möglich“ kann sogar entscheidend für den Erfolg eines iOS App-Entwicklungsprojekts sein. Sie können durch frühzeitiges Testen und Auswerten mit einer Reihe von Methoden sicherstellen, dass Ihr AppDesign und der Code auf dem richtigen Weg sind. Im Folgenden finden Sie eine Zusammenfassung der iOS Testwerkzeuge, die Sie für Analyse und Fehlersuche verwenden können. Tipp: Authentifizierungsbibliothek Eine elegante Art der Implementierung von Sicherheitsvorkehrungen in iOS Apps ist das Erstellen einer freigegebenen Authentifizierungsbibliothek, die für alle firmeninternen Apps genutzt werden kann. Sie können diese Authentifizierungsbibliothek in ihre vorhandenen Verzeichnisdienste (LDAP oder Active Directory) integrieren. Dann müssen Sie nicht bei jedem Erstellen einer neuen App neuen Authentifizierungscode schreiben. Das Speichern entsprechender Anmeldedaten im freigegebenen Schlüsselbund macht die Nutzung noch komfortabler, da sich die Benutzer dann nicht bei jeder App anmelden müssen, die sie verwenden möchten. Diese Bibliothek könnte auch Zeitlimits entsprechend Ihrer internen IT-Anforderungen definieren. Die Freigabe von derartigem Code für alle internen Apps sorgt für Einheitlichkeit sowohl in Ihren Nutzungsrichtlinien als auch in der Benutzerumgebung – ein Vorteil für Benutzer und IT-Abteilung gleichermaßen. „Wir arbeiten mit Single Sign-on für alle Apps und verwenden Zugriffssteuerungslisten für die geschützten Apps. Selbst wenn Sie also eine App laden, übermittelt Single Sign-On einen Perimeter an unser Programm, und wir können dann prüfen, ob Sie zugriffsberechtigt sind. Wenn ja, alles bestens, wenn nicht, kommen Sie nicht in die App.“ – James Blomberg, General Electric Statikanalyse. Finden Sie Fehler in Ihrem Code, bevor das Programm überhaupt ausgeführt wird. Dazu lassen Sie die integrierte Xcode Statikanalyse tausende verschiedener Codepfade in wenigen Sekunden durchlaufen. Dabei werden potenzielle Programmfehler gemeldet, die sonst verborgen geblieben oder praktisch unmöglich zu rekonstruieren gewesen wären. Echtzeit-Debugging am Gerät. Schließen Sie Ihr Gerät an, um den grafischen Debugger von Xcode zu verwenden, oder sammeln Sie Echtzeit-Leistungsdaten in der Timeline-Ansicht von Instruments. Diese leistungsstarken Optimierungswerkzeuge ermöglichen das schnelle Erkennen und Beheben eventueller Leistungsprobleme. Durch Bewegen der Maus über die Anzeige können Sie variable Werte einblenden. Planung • Design • Entwicklung • Implementierung 24 Instrumente. Das Programm „Instruments“ ist ein leistungsstarkes Werkzeug zur Leistungsmessung, mit dem Sie während der Codeausführung einen prüfenden Blick in Ihren Code werfen und wichtige Messdaten über dessen Aktivitäten erfassen können. Sie können die von „Instruments“ in Echtzeit erfassten Daten anzeigen und analysieren, Sie können sie aber auch speichern und zu einem späteren Zeitpunkt analysieren. Datenaufzeichnung. Weisen Sie „Instruments“ an, welche App analysiert und welche Instrumente dabei verwendet werden sollen. Klicken Sie auf die große rote Taste, um die Aufnahme zu starten. Die Daten werden erfasst und für die weitere Analyse gespeichert. Visueller Vergleich. Während die Daten erfasst und angezeigt werden, lassen sich auf einfache Weise Bezüge zwischen unterschiedlichen Datentypen erkennen, aber auch zwischen Daten des gleichen Typs, die in mehreren Durchläufen nacheinander erfasst werden. Drilldown. Untersuchen Sie Datenspitzen im Diagramm, um festzustellen, welcher Code in dem Moment ausgeführt wird, in dem die Spitze auftritt. Anschließend können Sie einfach in Xcode wechseln und das Problem beheben. Wiedergabe. Erstellen Sie ad hoc einen Testfall durch Aufzeichnen der Interaktion eines Benutzers mit Ihrer App. Spielen Sie anschließend die Aufzeichnung ab um festzustellen, inwiefern sich Codeänderungen auf die Leistung auswirken. Automatisiertes Testen der Benutzeroberfläche. Die integrierte Instrument-Automation funktioniert von Scripts aus (geschrieben in JavaScript), die Sie bereitstellen, um die Simulation von Ereignissen in der App durchzuführen. Diese synthetischen Ereignisse werden mithilfe der in iOS integrierten Oberflächen für Bedienungshilfen generiert. Mit diesem Instrument können Sie Ihre Testabläufe optimieren und die Arbeit mit den Elementen der Benutzeroberfläche Ihrer App üben, während diese auf einem angeschlossenen Gerät ausgeführt wird. Ausblick Wie bereits im gesamten Kapitel besprochen, ermöglichen Ihnen die Werkzeuge und Ressourcen im iOS SDK die zügige Entwicklung innovativer Apps, die die von iOS und vom Gerät selbst gebotenen Möglichkeiten optimal nutzen. Darüber hinaus stehen Ihre Apps mit dem iOS SDK unverzüglich zur Implementierung bereit. Viele firmeninterne Entwicklungsteams nehmen den gesamten Entwicklungsprozess immer wieder neu in Angriff, d. h. sie erstellen und implementieren Apps häufig während des Projektzyklus neu. Dank der integrierten Bewertungs- und Testverfahren und eines Sicherheitsmodells, das die Daten Ihres Unternehmens zuverlässig schützt, können Sie Ihre Apps für Einzelbenutzer und Gruppen beliebiger Größe implementieren. Im nächsten Kapitel besprechen wir den Prozess der App-Verteilung Schritt für Schritt und helfen Ihnen, dafür eine Ihrer jeweiligen Unternehmensumgebung optimal angepasste Strategie zu entwickeln. Planung • Design • Entwicklung • Implementierung Instruments sammelt und zeigt Daten in Echtzeit, z. B. Festplatten-, Speicher- oder CPU-Auslastung. So lassen sich Problembereiche ganz einfach finden. „Ein für uns besonders wichtiges Tool war der Static Analyzer. Damit konnten wir nach Problemen suchen, ohne die App als solche starten zu müssen. Was uns sonst wochen- oder monatelange Fehleranalysen hätte kosten können, oder auch Dinge, die wir vielleicht niemals gefunden hätten, fand die Static Analysis sofort.“ – Mark McWilliams, Razorfish 25 Implementierung Nach Abschluss von Entwicklung und Tests Ihres App-Codes sind noch einige wichtige Aufgaben zu erledigen, bevor die App endgültig für die Benutzer bereitgestellt werden kann. Zur Vorbereitung Ihrer App für die Verteilung benötigen Sie ein Zertifikat von Apple für die Verteilung im Unternehmen, und Ihr Code muss in Xcode signiert werden. Nachdem Ihr Xcode Projekt für die Implementierung vorbereitet wurde, können Sie Ihre hausinterne App sicher auf Ihrem eigenen Webserver bereitstellen und sie direkt via WLAN und 3G an die vorgesehenen Benutzer verteilen. Dieses Kapitel beschreibt die Prozesse der Implementierung und des Lebenszyklus-Management Ihrer App. Vorbereiten der App-Freigabe Checkliste zur Implementierung Am Ende der Implementierungsphase müssen die folgenden Schritte abgeschlossen sein: Erstellen von Unternehmenszertifikat und Bereitstellungsprofil Einrichten eines Verteilungs-Webservers oder einer Lösung für die drahtlose App-Verteilung Bekanntmachen Ihrer Lösung für die Endbenutzer Zum Beginnen des Implementierungsprozesses müssen Sie Ihre App innerhalb des iOS Entwicklerprogramms für Unternehmen zertifizieren und verfügbar machen sowie das Projekt in Xcode signieren und aufbauen. Ein einfacher, aus drei Schritten bestehender Prozess sorgt dafür, dass Sie Ihre App direkt von Xcode aus verteilen können. 1. Erstellen und laden Sie ein Distributionszertifikat. Zum Verteilen Ihrer iOS App muss der designierte Agent in Ihrem Entwicklerprogramm ein Distributionszertifikat erstellen. Nur der Agent für Ihr Team kann dieses Zertifikat erstellen, und nur dieses Zertifikat ermöglicht die Verteilung der App im Unternehmen. Informationen und schrittweise aufgebaute Anweisungen zum Laden und Erstellen eines Distributionszertifikats für Unternehmen finden Sie im iOS Bereitstellungsportal unter der Adresse http://developer.apple.com/ios/manage/overview/. 2. Erstellen und laden Sie eine Bereitstellungsdatei. Wenn alles bereit ist, um die App in den Produktionsprozess zu implementieren, müssen Sie ein Bereitstellungsprofil für Ihr Unternehmen erstellen. Diese Profile können auf jedem beliebigen Gerät installiert werden. Deshalb eignet sich diese Methode ausgezeichnet für die umfassende Verteilung der App innerhalb Ihres Unternehmens. Überblick: Bereitstellungsportal für Entwickler Das iOS Bereitstellungsportal führt Sie durch die einzelnen Schritte, die zum Testen Ihrer Apps auf iOS Geräten und zur Vorbereitung der Apps für die Verteilung erforderlich sind. Sie nutzen das iOS Bereitstellungsportal für viele der in diesem Kapitel behandelten Schritte, wie etwa das Erstellen von Zertifikaten und das Bereitstellen von Profilen. Im Mitgliederbereich im iOS Dev Center gelangen Sie zum Portal, wo Sie auch weitere hilfreiche Dokumentation finden werden. Die Bereitstellungsprofile zur Distribution werden Ihrem Distributionszertifikat angeglichen. Damit können Sie Apps erstellen, die die Benutzer auf Ihren iOS Geräten ausführen können. Sie können ein Bereitstellungsprofil für eine bestimmte App oder für mehrere Apps erstellen. Dazu geben Sie die AppID(s) an, die durch das betreffende Profil autorisiert wird bzw. werden. Wenn ein Benutzer zwar die App hat, aber kein Profil, das deren Nutzung erlaubt, kann er die betreffende App nicht verwenden. Da diese Profile an Ihr Zertifikat gebunden sind, kann die betreffende App nach Widerruf oder Ablauf des Zertifikats nicht mehr verwendet werden. Es gibt zwei Arten von Bereitstellungsprofilen: „Ad Hoc“ und „Unternehmen“. Ad Hoc Bereitstellungsprofile sind auf bestimmte Geräte-IDs beschränkt, d. h. sie können nur auf einem bestimmten Mobiltelefon ausgeführt werden, das (via Geräte-ID) identifiziert ist und in das Entwicklerprogramm-Portal geladen wurde. Ad Hoc Profile eignen sich am besten für interne Tests oder eingeschränkte BetaProgramme, da sie nur bis maximal 100 Geräte skalierbar sind und einen erheblichen Verwaltungsaufwand erfordern (d. h. das Hinzufügen von Geräte-IDs zum Programmportal). Planung • Design • Entwicklung • Implementierung 26 E s ist wichtig festzuhalten, dass es sich bei einem Bereitstellungsprofil nicht um einen Sicherheitsmechanismus handelt. Es stellt zwar eine grundsätzliche Autorisierung als Voraussetzung für das Ausführen einer App bereit, bietet aber keine Benutzerauthentifizierung oder Schutz für die Daten, die innerhalb der App genutzt werden bzw. auf die zugegriffen wird. Es hat sich deshalb bewährt, in diesem Fall die App selbst durch interne Maßnahmen zu sichern. Wie bereits im Kapitel „Entwicklung“ erläutert, können Sie auf eine Fülle von iOS Sicherheitsfeatures und -frameworks für Ihre firmeninterne App zurückgreifen. Eine der besten Möglichkeiten zum Schutz Ihrer firmeninternen App besteht beispielsweise im Erstellen einer Standardbibliothek für die Benutzerauthentifizierung. 3. Signieren und Erstellen in Xcode. Sobald Ihr Distributionszertifikat und das Bereitstellungsprofil installiert sind, müssen Sie Ihren Code in Xcode signieren. Weitere Einzelheiten zum Prozess der Codesignierung finden Sie in den Schritt-für-Schritt-Anleitungen im Bereitstellungsportal für Entwickler. Sobald Ihre App signiert ist, stellt Xcode mit einem einfachen Exportprozess ein App-Paket zur Verteilung im Unternehmen zusammen. Verwenden Sie den Xcode Organizer zum Bereitstellen eines Projekts, das zu Ihrem Archiv hinzugefügt wurde, und wählen Sie die Optionen für die Verteilung im Unternehmen aus. Bei diesem Prozess werden die App, das Bereitstellungsprofil und andere für die drahtlose Verteilung notwendigen Elemente automatisch gepackt. Bereitstellung Sobald der Aufbau Ihrer App abgeschlossen ist, kann die Verteilung der firmeninternen Apps erfolgen – entweder durch Bereitstellen der App auf einem einfachen Webserver, den Sie intern erstellen, durch Einrichten eines eigenen Katalogs für interne Apps oder über eine externe MDM-Lösung (Mobile Device Management). Welche Lösung die beste ist, hängt von Ihren spezifischen Erfordernissen, Ihrer Infrastruktur und dem benötigten Umfang an App-Verwaltung ab. Planung • Design • Entwicklung • Implementierung Überblick: Xcode Organizer Der Organizer ist ein einzelnes Fenster zum Verwalten von Xcode-Projekten, SCM-Datenspeichern, App-Archiven und Geräten – einschließlich des 1-KlickSetup neuer iOS Geräte für die Entwicklung. Im Kontext der Verteilung von Apps stellt der Organizer die zentrale Bibliothek dar, aus der Apps für die unternehmensweite Distribution geteilt (exportiert) werden können. Der Organizer kann auch zum Installieren firmeninterner Apps und zur Bereitstellung von Profilen auf verbundenen Geräten genutzt werden. 27 Prozess der drahtlosen App-Verteilung Die einfachste Art der Verteilung besteht darin, Ihre App(s) auf einem Webserver bereitzustellen. Gehen Sie bitte wie folgt vor: 1. Stellen Sie Ihre App auf einen Webserver, auf den Ihre Mitarbeiter zugreifen können. 2. Benachrichtigen Sie Ihre Benutzer per E-Mail, SMS, Push-Benachrichtigung oder auf andere für Benutzer auf einem iOS Gerät empfangbare Weise darüber, dass die App verfügbar ist. Denken Sie daran, die URL-Adresse der App anzugeben. 3. Tippen Sie auf die URL-Adresse, um die App zu installieren. Die Benutzer werden in einem Dialogfenster gefragt, ob sie die Installation fortsetzen möchten. Weitere Einzelheiten zum Einrichten Ihres eigenen Dienstes für die drahtlose App-Verteilung finden Sie unter http://developer.apple.com/library/ios/navigation/. Firmeninterner App-Katalog Ihr Team kann auch einen internen App-Katalog erstellen, der ein Portal für die drahtlose Verteilung Ihrer iOS Apps anbietet. Dieses Self-Service-Modell erfordert hinsichtlich Ladevorgang und Installation nur minimalen Aufwand seitens der Benutzer. Der Katalog kann URL-Adressen zum Laden der Apps direkt zur Verfügung stellen. So können mehrere Apps gleichzeitig installiert und aktualisiert werden, und die schnelle Implementierung und Einsatzbereitschaft ist gewährleistet. Eine Website oder eine native App – optimiert für iPhone oder iPad – stellt sogar eine noch einfachere Methode dar, URL-Adressen auf organisiertem und den Benutzern vertrautem Wege verfügbar zu machen. Ein informatives Beispiel eines internen App-Katalogs finden Sie unter „Fallstudie: Der GE Internal App Store“ auf der rechten Seite. Verwalten von Updates Firmeninterne Apps, die intern verteilt werden, werden nicht automatisch aktualisiert. Sie müssen die Mitarbeiter über das Vorliegen eines Updates informieren und sie anweisen, die neue App entsprechend zu installieren. Wenn die der App in Xcode zugewiesene Programm-ID unverändert bleibt, wird die App als bereits vorhandene App erkannt, und das Update wird installiert, wobei lokal gespeicherte AppDaten oder -Einstellungen erhalten bleiben. Erwägen Sie zur Steigerung des Benutzerkomforts, eine Funktion innerhalb der App zu erstellen, die in der Laufzeit den Server kontaktiert, um diesen auf das Vorliegen von Updates zu überprüfen. Bei der drahtlosen App-Verteilung können Sie direkt in der App einen Link zur aktualisierten App anbieten. Wenn Sie ein Programm für einen nativen App-Katalog erstellen, erwägen Sie die Nutzung von Push-Benachrichtigungsdiensten mit einer Warnmitteilung oder einer Symbolmarkierung, die die Benutzer über die Verfügbarkeit von Updates in Kenntnis setzt. Mobile Device Management Viele MDM-Lösungen anderer Hersteller (Mobile Device Management) bieten von vornherein Funktionalität für die drahtlose App-Verteilung an. Zu den Vorteilen der Verwaltung interner Apps innerhalb einer verwalteten Umgebung gehört die Möglichkeit, eine Versionskontrolle durchzuführen Planung • Design • Entwicklung • Implementierung Fallstudie: Der GE Internal App Store Die interne mobile Taskforce von GE, das Mobile Center for Excellence, entwickelt nicht einfach nur hochmoderne Apps. Man hat dort auch ein internes Web-Portal aufgebaut, den GE Internal App Store, der das Laden unternehmensspezifischer Apps für die über 300.000 Mitarbeiter von GE vereinfacht. „Wir brauchten einen überzeugenden Weg der internen Verteilung mobiler Programme“, sagt James Blomberg, GE-Vorstand für neue Medien und aufkommende Technologie. „Wir haben auch Apps auf dem Apple App Store, benötigten aber auch etwas Eigenes für GE Programme, die nicht für die weltweite Verteilung gedacht sind.“ Seit seiner Einführung im Jahr 2009 verzeichnet der GE App Store Zehntausende interner Besucher und über 100.000 App-Downloads. Wenn neue Apps verfügbar werden, bewirbt sie die Gruppe über ein unternehmensweites Intranet-Portal sowie mithilfe von Postings und Mundpropaganda bei den 200 Mitgliedern des GE Mobile Center of Excellence. Diese umfassen auch Teilnehmer aller wichtigen Geschäftsfelder von GE. Der Erfolg des Stores beruht zum Teil auf seinem ebenso einfachen wie effektiven Design. „Die Oberfläche bietet sehr viel und ist dennoch ganz einfach zu benutzen“, sagt Dayan Anandapa, Vorstand für Digitale Technologien und Zusammenarbeit bei GE. „Nach erfolgter Registrierung klickt man auf eine URL-Adresse, die den Benutzer durch den Download-Prozess führt. Da die Geräte selbst nahtlos zusammenarbeiten, wollten wir das auch für den Installationsvorgang so haben.“ Bei einem so großen und vielschichtigen Unternehmen wie GE eignen sich nicht alle internen Apps für alle Benutzer. Um den Zugriff steuern und Apps nur den jeweils dafür berechtigten Benutzern verfügbar machen zu können, hat das Unternehmen ein zweischichtiges Zugriffssystem eingerichtet. „Wir arbeiten mit Single Sign-on für alle Apps und zusätzlichen Zugriffssteuerungslisten für die geschützten Apps“, sagt Blomberg. Der GE Internal App Store fördert die generelle Wahrnehmung der mobilen Ressourcen von GE und vereinfacht zugleich den App-Download. Aber er bietet noch weitere Vorteile. „Er dient als Datenarchiv, als zentraler Knoten für die Weitergabe von Wissen über unsere verschiedenen Geschäftsfelder“, sagt Blomberg. „Und er hat auch ganz neue Beziehungen und Kontakte ermöglicht. Menschen, die sich zuvor gar nicht kannten, arbeiten heute zusammen. Im ganzen Unternehmen GE läuft eine Unmenge von Kooperation und Kommunikation über Mobiltechnologie.“ 28 und zu überwachen, welche Benutzer welche App-Version ausführen. Viele MDM-Lösungen bieten auch Push-Benachrichtigungsdienste, die die Benutzer darüber informieren, wenn neue und aktualisierte Apps verfügbar sind. Da MDM-Lösungen auch Netzwerkkonfigurationen und Sicherheitsrichtlinien einrichten können, eignen sie sich hervorragend, um zum Zeitpunkt der Installation einer App Einstellungen (z. B. VPN- oder WLAN-Zertifikate) direkt auf dem Gerät bereitzustellen. Weitere Informationen zu Lösungen des Mobile Device Management finden Sie unter www.apple.com/de/iphone/business/integration/mdm. Bekanntmachen Ihrer Lösung Herzlichen Glückwunsch! Sie haben nun eine iOS App für Ihre Mitarbeiter designt, entwickelt, und implementiert. Nun müssen Sie das Ganze nur noch laut und deutlich in Ihrem Unternehmen verkünden. Selbst die besten und innovativsten hauseigenen Apps verfehlen ihr Ziel der möglichst flächendeckenden geschäftlichen Anwendung oder der Amortisation, wenn die Benutzer nicht wissen, dass es sie gibt. Sie können Ihre Lösungen den Benutzern auf vielfältige Weise kommunizieren. Hier sind einige Ideen, die Sie beim Zusammenstellen Ihrer App-Ankündigung bzw. Ihres Info-Pakets berücksichtigen sollten: • Werben Sie für Ihre neuesten und besten hauseigenen Apps im Intranet Ihres Unternehmens. • Erstellen Sie eine dedizierte Website in Ihrem Intranet speziell für iOS Apps und ermöglichen Sie den Benutzern, Kommentare zu hinterlassen, an Forumsdiskussionen teilzunehmen usw. • Stellen Sie eine Video-Demo über Ihre App in Aktion bereit, die die Benutzer von der Leistungsfähigkeit der Lösung überzeugt. • Senden Sie E-Mails und Newsletter, um die Wahrnehmung zu erhöhen. • Bringen Sie Poster und andere grafische Hinweise an geeigneten Stellen an, damit die Mitarbeiter auf die App aufmerksam werden, wenn sie im Bürogebäude oder auf dem Firmengelände unterwegs sind. • Senden Sie Ihren Benutzern nach Möglichkeit Push-Benachrichtigungen über neue Apps bzw. signifikante funktionale Verbesserungen vorhandener Apps, sobald diese verfügbar werden. • Ergänzen Sie Ihren internen App-Katalog mit Bildschirmfotos und Video-Demos Ihrer App, damit die Mitarbeiter mehr über Sinn und Zweck der App erfahren können. Beispiel: Interne Kommunikation Mit der Ankündigung neuer interner Apps für seine Benutzer erhob Genentech die Kommunikation der Features und Vorteile jeder einzelnen Lösung zur höchsten Priorität. Genau wie ein kommerzieller Entwickler eine Kampagne zur Produkteinführung produziert, erstellte Genentech spezifisches Marketing-Material für jede neue interne App. Diese Bemühungen erzielten eine unmittelbare Wirkung und steigerten die allgemeine Wahrnehmung und Übernahme neuer Apps. Ausblick Mit dem Implementieren und Ankündigen Ihrer App ist der Prozess keineswegs erledigt – eigentlich fängt es hier erst richtig an. Mit jeder erfolgreichen mobilen App werden die Ansprüche Ihrer Benutzer weiter wachsen. Dieser Leitfaden sollte daher lediglich als Einstiegshilfe für Ihr Entwicklungsteam gesehen werden. Über diesen Leitfaden hinaus ist im Rahmen des iOS Entwicklerprogramms eine Fülle von Lernressourcen, bewährten Verfahren, Tipps und Techniken verfügbar. Nehmen Sie Kontakt mit Kollegen über Entwicklerforen auf, oder laden Sie Entwickler-Videos aus dem Internet, um mehr über die erweiterten Möglichkeiten zu erfahren, die diese Plattform bietet. Die Möglichkeiten sind grenzenlos. Planung • Design • Entwicklung • Implementierung 29 Weitere Trainingsressourcen Sie möchten Ihre hausinterne Entwicklung weiter verbessern? Die unten aufgelisteten erweiterten Lernressourcen steigen tiefer in die Materie ein und liefern detaillierte technische Informationen zu den wichtigsten Themen im Zusammenhang mit der internen App-Entwicklung. WWDC Videos Wenn Sie sehen möchten, wie Apple Techniker und Experten über das Innovationspotenzial neuester Apple Technologien diskutieren, besuchen Sie die folgende Website: http://developer.apple.com/videos/wwdc/2010/ Stanford University Podcast Lernen Sie den Umgang mit den Tools und APIs, die Sie für die Entwicklung von Apps für iPad, iPhone und iPod touch brauchen. „Developing Apps for iOS“ von der Stanford University behandelt das Design von Benutzeroberflächen für Mobilgeräte, eindeutige Benutzerinteraktionen auf der Basis von Multi-Touch Technologien, Core Animation und mehr. Diese Reihe finden Sie auf iTunes oder unter folgender Adresse: https://itunes.apple.com/de/itunes-u/developing-apps-for-ios-hd/id395605774 Big Nerd Ranch Verschaffen Sie sich einen umfassenden Schnelleinstieg in die iOS Entwicklung bei diesem 7-tägigen Training. Hier erlernen Sie das wichtigsten Basiswissen über Objective-C sowie die Grundlagen des iOS SDK. Weitere Informationen zu den Angeboten der Big Nerd Ranch in Europa finden Sie unter folgender Adresse: http://www.bignerdranch.com/locations/ netherlands Pragmatic Studio Auf iTunes gibt es Podcasts, die beschreiben, wie man iOS Apps mit vollem Funktionsspektrum gestaltet. Sie richten sich an Einsteiger und an Entwickler, die schon ein wenig Erfahrung haben. Weitere Informationen finden Sie unter folgender Adresse: https://itunes.apple.com/de/podcast/pragmatic-studio-bonus-tracks/id312552710?mt=2 © 2013 Apple Inc. Alle Rechte vorbehalten. Apple, das Apple Logo, Bonjour, Cocoa Touch, Dashcode, iMac, Instruments, iPad, iPhone, iPod, iPod touch, iTunes, das iTunes Logo, Keychain, Mac, MacBook, MacBook Air, Safari und Xcode sind Marken der Apple Inc., die in den USA und in weiteren Ländern eingetragen sind. Multi-Touch ist eine Marke der Apple Inc. AppleCare ist eine Dienstleistungsmarke der Apple Inc., die in den USA und weiteren Ländern eingetragen ist. App Store ist eine Dienstleitungsmarke der Apple Inc. Der Bluetooth® Schriftzug und das Logo sind eingetragene Marken der Bluetooth SIG, Inc., die von Apple in Lizenz verwendet werden. Intel und Intel Core sind Marken der Intel Corp., die in den USA und weiteren Ländern eingetragen sind. UNIX ist eine eingetragene Marke von The Open Group. Andere hier genannte Produkt- und Firmennamen sind möglicherweise Marken ihrer jeweiligen Rechteinhaber. Dieses Material dient ausschließlich zu Informationszwecken. Apple übernimmt keine Haftung hinsichtlich der Verwendung. 30