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

iMessage Extensions

iMessage Extensions

Eines der Tentpole-Features von iOS 10 sind iMessage-Extensions. Sie erlauben die Integration von 3rd party Apps innerhalb des Nachrichten-App. Ich zeige die verschiedenen Spielarten von Sticker-Packs bis zu vollwertigen Extensions mit Code. Zusammen bauen wir eine iMessage-Extension für die Macoun-App.

Avatar for Ortwin Gentz, FutureTap

Ortwin Gentz, FutureTap

October 02, 2016

Other Decks in Programming

Transcript

  1. Kompatibilität •iOS 10 •watchOS 3 •macOS Sierra (Sticker) •Fallback macOS,

    älteres iOS: •Bild (Sticker) •Bild + Link (iMessage Apps)
  2. Spiele 19 % Apps 14 % Sticker Packs 67 %

    Top 150 Free US iMessage App Store auf dem iPhone, 28.9.2016
  3. Spiele 10 % Apps 13 % Sticker Packs 77 %

    Top 150 Free DE iMessage App Store auf dem iPhone, 28.9.2016
  4. Spiele Apps 4 % Sticker Packs 92 % Top 150

    Grossing US iMessage App Store auf dem iPhone, 28.9.2016
  5. Spiele Apps 3 % Sticker Packs 95 % Top 150

    Grossing DE iMessage App Store auf dem iPhone, 28.9.2016
  6. Paid + IAP 3 % Freemium 6 % Paid 91

    % Top 150 Grossing US iMessage App Store auf dem iPhone, 28.9.2016
  7. Paid + IAP 1 % Freemium 4 % Paid 95

    % Top 150 Grossing DE iMessage App Store auf dem iPhone, 28.9.2016
  8. Quelle: SensorTower Spiele Unterhaltung Dienstprogramme Produktivität Soziale Netze Foto &

    Video Reisen Bildung Gesundheit & Fitness Essen & Trinken Business Lifestyle Sport Shopping Referenz Navigation Finanzen Wetter Nachrichten Bücher Musik Medizin 0 25 50 75 100 1 3 4 6 6 8 9 9 12 12 13 13 15 17 18 21 23 25 26 31 39 91 iMessage-Enabled Apps Weltweit
  9. Möglichkeiten & Grenzen • „Interaktive“ Nachrichten • Antworten auf Nachrichten

    • Einfügen von Text, Medien, Attachments • Zustandsübergabe nur per URL (Sonderfall data://) • Kein Zugriff auf Chat- Transkript • Kein Zugriff auf Teilnehmer- Namen, nur lokale UUIDs
  10. UI

  11. MSMessagesAppViewController • Application State Changes func willBecomeActive(with: MSConversation) func didBecomeActive(with:

    MSConversation) func willResignActive(with: MSConversation) func didResignActive(with: MSConversation)
  12. func didReceive(MSMessage, conversation: MSConversation) func didStartSending(MSMessage, conversation: MSConversation) func didCancelSending(MSMessage,

    conversation: MSConversation) MSMessagesAppViewController • Application State Changes • Aufruf der Haupt-App • Message Selektion • Message Empfang, Sendebestätigung
  13. var presentationStyle: MSMessagesAppPresentationStyle func requestPresentationStyle (MSMessagesAppPresentationStyle) func willTransition(to: MSMessagesAppPresentationStyle) func

    didTransition(to: MSMessagesAppPresentationStyle) MSMessagesAppViewController • Application State Changes • Aufruf der Haupt-App • Message Selektion • Message Empfang, Sendebestätigung • Presentation Style
  14. MSMessageTemplateLayout let layout = MSMessageTemplateLayout() layout.image layout.mediaFileURL layout.imageTitle layout.imageSubtitle layout.caption

    layout.trailingCaption layout.subcaption Image Title Image Subtitle Caption Subcaption Trailing caption
  15. MSMessageTemplateLayout let layout = MSMessageTemplateLayout() layout.image layout.mediaFileURL layout.imageTitle layout.imageSubtitle layout.caption

    layout.trailingCaption layout.subcaption layout.trailingSubcaption Image Title Image Subtitle Caption Subcaption Trailing caption Trailing subcaption
  16. let message = MSMessage() message.layout = layout message.url = "http://example.com/?abc"

    message.accessibilityLabel = … self.activeConversation?.insert(message) { error in // Check for an error }) MSMessage