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

Using Apple's Passbook with Ruby for Fun and Profit

Using Apple's Passbook with Ruby for Fun and Profit

Last year, Apple introduced Passbook with their release of iOS 6. This application is designed to store movie tickets, gift cards, discount codes, and airline boarding passes, letting you generate passes to buy coffee, redeem retailer coupons, or check in for flights. While Passbook allows developers to create highly innovative experience without having to write any Objective-C, it can also be challenging to figure out how to get passes signed correctly and understand notification service endpoints. Luckily, as a Ruby developer we have the passbook-ios gem to make our job easier. In this session, we will explore the basics of Passbook development using passbook-ios and discuss some of the strategies for developing Passbook-enabled apps successfully based on real world experience.

89e0c5e7bfe1c613b1b9287d89963e73?s=128

Lance Gleason

April 14, 2013
Tweet

Transcript

  1. Twitter @lgleasain Github lgleasain www.lancegleason.com www.polyglotprogrammincinc.com lgleason@polyglotprogramminginc.com Sunday, April 14,

    13
  2. Sunday, April 14, 13

  3. Sunday, April 14, 13

  4. Sunday, April 14, 13

  5. http://www.polyglotprogramminginc.com/purr- programming-2-0/ Sunday, April 14, 13

  6. Passbook Sunday, April 14, 13

  7. What Is Passbook Sunday, April 14, 13

  8. Capabilities Sunday, April 14, 13

  9. Sunday, April 14, 13

  10. Email Sunday, April 14, 13

  11. Email Download Sunday, April 14, 13

  12. Email Download App Sunday, April 14, 13

  13. Location Aware Sunday, April 14, 13

  14. Up to 10 locations Sunday, April 14, 13

  15. Don’t Affect Battery Life (as Much) Sunday, April 14, 13

  16. Can Be Updated Sunday, April 14, 13

  17. The User Controls Location Awareness and Updates Sunday, April 14,

    13
  18. Works On Android (unofficially) Sunday, April 14, 13

  19. Types Sunday, April 14, 13

  20. Event Ticket Locations within 1000 meters Sunday, April 14, 13

  21. Boarding Pass Locations within 1000 meters Sunday, April 14, 13

  22. Coupon Locations within 100 meters Sunday, April 14, 13

  23. Store Card Locations within 100 meters Sunday, April 14, 13

  24. Custom Locations within 100 meters Sunday, April 14, 13

  25. http://passifier.herokuapp.com/passifier Sunday, April 14, 13

  26. "formatVersion": 1, "teamIdentifier": "VX25V9JR6S", "serialNumber": "1365923254", "passTypeIdentifier": "pass.com.polyglotprogramminginc.testpass", "organizationName": "Polyglot

    Programming LLC", Sunday, April 14, 13
  27. "description": "IOSOnRailsTicket", "labelColor": "rgb(242,237,237)", "foregroundColor": "rgb(245,244,244)", "backgroundColor": "rgb(225,157,77)", "logoText": "IOS

    On Rails 2013", Sunday, April 14, 13
  28. "barcode": { "message": "http://www.youtube.com/watch?v=2Z4m4lnjxkY", "format": "PKBarcodeFormatQR", "messageEncoding": "iso-8859-1", "altText": "A

    message for you" }, Sunday, April 14, 13
  29. "eventTicket": { ............ } Sunday, April 14, 13

  30. "headerFields": [ { "key": "Date", "label": "DATE", "value": "13-14 April",

    "changeMessage": "Date has changed in %@" } ], primaryFields": [ { "key": "Artist", "label": "Ticket Type", "value": "Scan the barcode", "changeMessage": "Show has changed in %@" } ], Sunday, April 14, 13
  31. "secondaryFields": [ { "key": "Location", "label": "Location", "value": "Porto Mare

    Hotel", "changeMessage": "Location has changed in %@" } ], Sunday, April 14, 13
  32. "auxiliaryFields": [ { "key": "price", "label": "PRICE", "value": "100", "changeMessage":

    "Price has changed in %@" } ] Sunday, April 14, 13
  33. "backFields": [ { "key": "Terms", "label": "More Info", "value": "This

    is a great conference.", "changeMessage": "Your message has changed %@" }, { "key": "serial-1396225", "value": "Coding Rocks", "label": "Thoughts" } ], Sunday, April 14, 13
  34. "locations": [ { "latitude": 44.680225, "longitude": 34.415539, "relevantText": "You are

    at the IOSOnRailsConf" }, { "latitude": 34.415539, "longitude": 44.680225, "relevantText": "You are at the IOSOnRailsConf" } ], Sunday, April 14, 13
  35. "relevantDate": "2013-04-13T21:00+02:00" Sunday, April 14, 13

  36. Sunday, April 14, 13

  37. • Can create a pass with a barcode that is

    completely separate from a standard IOS app. Sunday, April 14, 13
  38. • Can create a pass with a barcode that is

    completely separate from a standard IOS app. • Passes can be location aware Sunday, April 14, 13
  39. • Can create a pass with a barcode that is

    completely separate from a standard IOS app. • Passes can be location aware • You can send push notifications to update passes Sunday, April 14, 13
  40. • Can create a pass with a barcode that is

    completely separate from a standard IOS app. • Passes can be location aware • You can send push notifications to update passes • Users can remove passes at any time Sunday, April 14, 13
  41. • Can create a pass with a barcode that is

    completely separate from a standard IOS app. • Passes can be location aware • You can send push notifications to update passes • Users can remove passes at any time • Apps can interact with passes Sunday, April 14, 13
  42. Passbook http://www.github.com/frozon/passbook Sunday, April 14, 13

  43. Twitter @lgleasain Github lgleasain www.lancegleason.com www.polyglotprogrammincinc.com lgleason@polyglotprogramminginc.com Sunday, April 14,

    13