Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MDC 2012 - Hardwareerweiterungen für iOS

MDC 2012 - Hardwareerweiterungen für iOS

Session MDC 2012, Februar, Hamburg

External Accerssories für iOS

Avatar for Michal Gralak

Michal Gralak

February 22, 2012

More Decks by Michal Gralak

Other Decks in Technology

Transcript

  1. Seite ‹Nr.› Seite ‹Nr.› Software Engineer App Development (iOS) Michal

    Gralak Hardwareerweiterungen für iOS BURY Technologies
  2. Seite ‹Nr.› Seite ‹Nr.› • Michal Gralak – ohne das

    e ! ! • Bachelor of Science in Medieninformatik ! • Beuth Hochschule Berlin, ehemals Technische Fachhochschule Berlin ! • Flash / ActionScript Ursprünge – Games / Webseiten ! • Affinität zu iOS Development im Studium – cocos2D / Games ! • Seit 2011 bei BURY Technologies Das Langweilige zum Anfang iOS Accessories
  3. Seite ‹Nr.› Seite ‹Nr.› Accessories? • Was sind Accessories ?

    • Welche Accessories gibt es ? • Zukünftige Accessories ? ! EAAccessory Framework • Die Klassen • Voraussetzungen ! Die Accessory Hardware • Hardware entwickeln • Projekt: GameController Was wollen wir behandeln? Agenda
  4. Seite ‹Nr.› Seite ‹Nr.› Das MFi Programm • Überblick •

    Voraussetzungen ! Ausblick • Trends ! Fragen & (hoffentlich) Antworten Was wollen wir behandeln? Agenda
  5. Seite ‹Nr.› Seite ‹Nr.› • Funktionale Hardware-Erweiterungen für iOS Geräte

    ! • Bluetooth, Dock-Connector oder WiFi (AirPlay) ! • Keine Kopfhörer oder Taschen !! ! • „Sinnvoll“ (Apple zertifiziert) ! • Gadgets ! • MI:4 anyone? Wovon reden wir hier eigentlich? iOS Accessories
  6. Seite ‹Nr.› Seite ‹Nr.› eCommerce ! ▪ Point of Sale

    Terminals ! ▪ Kreditkartenleser ! ▪ Electronic Wallet ! ▪ Kassenanbindung (Apple Stores) Eine Übersicht an möglichen Einsatzgebieten Accessories
  7. Seite ‹Nr.› Seite ‹Nr.› Beispiel PoS / Credit Card Reader

    Eine Übersicht an möglichen Einsatzgebieten Accessories
  8. Seite ‹Nr.› Seite ‹Nr.› Beispiel PoS / Credit Card Reader

    Eine Übersicht an möglichen Einsatzgebieten Accessories
  9. Seite ‹Nr.› Seite ‹Nr.› Medizin ! ▪ Blutdruckmessgeräte ! ▪

    Blutzuckermessgeräte ! ▪ Mobile Ultraschallgeräte ! ▪ Bsp: Ärzte ohne Grenzen Eine Übersicht an möglichen Einsatzgebieten Accessories
  10. Seite ‹Nr.› Seite ‹Nr.› Diagnose Tools ! ▪ Spannungsmessgerät !

    ▪ Oszilloskop ! ▪ Car Diagnostics (z.B. mobile Werkstatt) ! ▪ Thermometer Eine Übersicht an möglichen Einsatzgebieten Accessories
  11. Seite ‹Nr.› Seite ‹Nr.› Entertainment ! ▪ Game Controller !

    ▪ Fernbedienung Heimkino ! ▪ Car Infotainment (Bordcomputer) ! ▪ Nike Sport Kit ! ▪ R/C Helis (cool!) Eine Übersicht an möglichen Einsatzgebieten Accessories
  12. Seite ‹Nr.› Seite ‹Nr.› Airplay ! • 2010 aus AirTunes

    entstanden ! • Schnittstelle für Endgeräte ! • Übertragung von Multimedia ! • Remote Controls Verbindung Accessories
  13. Seite ‹Nr.› Seite ‹Nr.› Airplay ! • Qualitativ hochwertige Übertragung

    ! • Geräte in iTunes/iOS MPlayer angezeigt ! • AppleTV nicht mehr Voraussetzung ! • AirPlay muss lizensiert werden - Mfi Verbindung Accessories
  14. Seite ‹Nr.› Seite ‹Nr.› Airplay ! • Erfolg zur Zeit

    noch überschaubar ! • Planungen für Ausbau ! • Airplay + BT LE = bessere Anbindung Verbindung Accessories
  15. Seite ‹Nr.› Seite ‹Nr.› Bluetooth ! • Keine direkte Ansprache

    per API ! • Ausnahme BT LE über CoreBluetooth ! • Kommunikation über EAAccessory Framework ! • GameKit nur für Spiele nutzbar Verbindung Accessories
  16. Seite ‹Nr.› Seite ‹Nr.› Bluetooth ! • Unkompliziert für User

    ! • Theoretisch immer an ! • Fast überall vorhanden (Auto, Receiver, …) ! • Akku ☹ (Ausnahme BT 4.0) ! • Hardwareimplementierung etwas komplizierter ! • Gelegentliche Verbindungsabbrüche Verbindung Accessories
  17. Seite ‹Nr.› Seite ‹Nr.› Dock Connector ! • iPod Connector

    ! • 30 pins ! • USB ! • als einzige Schnittstelle Ladefunktion Verbindung Accessories
  18. Seite ‹Nr.› Seite ‹Nr.› Dock Connector ! • alle Geräte

    werden unterstützt (iPods!) ! • Powermanagement ! • keine Abbrüche (sollte jedenfalls…) ! • Anschluss raubt „Freiheiten“ ! • kein Kabel – keine Competition Verbindung Accessories
  19. Seite ‹Nr.› Seite ‹Nr.› EAAccessory Framework ! • ExternalAccessory Accessory

    Framework (sic!) ! • Release WWDC 2009 ! • iPhone SDK 3.0 ! • Kümmert sich um die Verbindung EA – Einfach Anschließen? EAAccessory Framework
  20. Seite ‹Nr.› Seite ‹Nr.› • 5 Klassen Die Klassen EAAccessory

    Framework EAAccessory.h EASession.h ExternalAccessoryDefines .h ExternalAccessory.h EAAccessoryManager.h
  21. Seite ‹Nr.› Seite ‹Nr.› Die Klassen EAAccessory Framework EAAccessory 


    Informationen über das Accessory EAAccessoryManager
 Verwaltet die angeschlossenen Accessory Registriert die Notifications EASession Verbindung von Gerät zu Accessory EAAccessory.h EASession.h EAAccessoryManager.h ExternalAccessoryDefines .h ExternalAccessoryDefines Enthält nur #defines ExternalAccessory.h erzeugt #import #import #import #import
  22. Seite ‹Nr.› Seite ‹Nr.› EAAccessory.h ! • Beinhaltet relevante Informationen

    über das verbundene Accessory • NSString *manufacturer! • NSString *name! • NSString *modelNumber! • NSString *serialNumber! • NSString *firmwareRevision! • NSString *hardwareRevision! • NSArray *protocolStrings! ! • read-only! ! • App enthält die Gegeninformationen zur Sessioneröffnung Die Klassen EAAccessory Framework
  23. Seite ‹Nr.› Seite ‹Nr.› Protocol ! • Protocol String !=

    @protocol! ! • Name ! • Format: Reverse DNS ! • Kommunikation mit App durch EASession Objekt Protocol Strings EAAccessory Framework
  24. Seite ‹Nr.› Seite ‹Nr.› Protocol ! • Session gilt jeweils

    immer für das gewählte Procotol ! • Im Accessory & App-Plist eingetragen ! ! ! • Eintrag in Info.plist für App Start bei connection ! • Alternativ: App Store Link Protocol Strings EAAccessory Framework
  25. Seite ‹Nr.› Seite ‹Nr.› Protocol ! • Protokoll Name ist

    frei wählbar ! • Nicht gleich Bundle Identifier setzen – Verwechslungsgefahr ! • Alternierend oft sinnvoll, z.B. com.bury.protocol1, com.bury.protocol2,… ! • Mehrere Protocol Strings erlaubt ! • One Session per protocol per accessory Protocol Strings EAAccessory Framework
  26. Seite ‹Nr.› Seite ‹Nr.› Sessions und Streams ! • Streams

    für die Kommunikation mit dem Accessory ! • InputStream -> readData ! • OutputStream -> writeData ! • Stream Programming Guide (Apple) Kommunikation EAAccessory Framework
  27. Seite ‹Nr.› Seite ‹Nr.› EAAccessoryManager ! • Notifications! ! •

    Accessory sendet Notifications an EAAccessoryDelegate ! • EAAccessoryManager Class : ! • EAAccessoryDidConnectNotification! • EAAccessoryDidDisconnectNotification! ! • Hilfreich: • EADSessionDataReceivedNotification Kommunikation EAAccessory Framework
  28. Seite ‹Nr.› Seite ‹Nr.› EADemo.app ! • Demo Projekt von

    Apple ! • Verbindet mit jedem Accessory ! • Ideal zum bei der HW-Entwicklung Kommunikation EAAccessory Framework
  29. Seite ‹Nr.› Seite ‹Nr.› Nützliche Hinweise ! • NDA !

    • reger Austausch mit HW-Entwicklern nötig ! • Sehr genaue Dokumentation ! • Daher: genau nach Apple Vorgaben entwickeln Hardware entwickeln Hardware
  30. Seite ‹Nr.› Seite ‹Nr.› Hardware zum ausprobieren ! • GAMeCONtroller

    kaufen ! • Set mit protocolStrings im Handbuch ! • Einbinden in kleines Projekt ! • Ideal für kleine Spiele ! • Tutorial in mobile developer Magazin Projekt Gamecontroller Hardware
  31. Seite ‹Nr.› Seite ‹Nr.› MFi Program ! • Made for

    iDevices ! • früher: Made for iPod / iPhone / iPad … ! • Voraussetzung für die Entwicklung von Accessories ! • Dokumentationen, Logos, Zertifizierungen, DTS, HW Komponenten,… ! • Companies bevorzugt Informationen MFi
  32. Seite ‹Nr.› Seite ‹Nr.› ! ! ! ! Voraussetzungen MFi

    MFi Program ! • Anmeldung wie Developer Program ! • NDA ! ! • strenge Lizenzbedingungen ! • Produktqualität ! ! ! ! ! !
  33. Seite ‹Nr.› Seite ‹Nr.› Vielen Dank
 für Ihre Aufmerksamkeit! Michal

    Gralak ! BURY GmbH & Co. KG Robert-Koch-Str. 1-7 32425 Löhne ! Tel.: +49 (0)5732 / 9706-240 Fax: +49 (0)5732 / 9706-99 Mobil: +49 151 16369 240 E-Mail: [email protected]