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.

Lance Gleason

April 14, 2013
Tweet

More Decks by Lance Gleason

Other Decks in Technology

Transcript

  1. Twitter @lgleasain
    Github lgleasain
    www.lancegleason.com
    www.polyglotprogrammincinc.com
    [email protected]
    Sunday, April 14, 13

    View full-size slide

  2. Sunday, April 14, 13

    View full-size slide

  3. Sunday, April 14, 13

    View full-size slide

  4. Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

  6. Passbook
    Sunday, April 14, 13

    View full-size slide

  7. What Is
    Passbook
    Sunday, April 14, 13

    View full-size slide

  8. Capabilities
    Sunday, April 14, 13

    View full-size slide

  9. Sunday, April 14, 13

    View full-size slide

  10. Email
    Sunday, April 14, 13

    View full-size slide

  11. Email
    Download
    Sunday, April 14, 13

    View full-size slide

  12. Email
    Download
    App
    Sunday, April 14, 13

    View full-size slide

  13. Location
    Aware
    Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. Can Be Updated
    Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  19. Types
    Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  26. "formatVersion": 1,
    "teamIdentifier": "VX25V9JR6S",
    "serialNumber": "1365923254",
    "passTypeIdentifier": "pass.com.polyglotprogramminginc.testpass",
    "organizationName": "Polyglot Programming LLC",
    Sunday, April 14, 13

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  31. "secondaryFields": [
    {
    "key": "Location",
    "label": "Location",
    "value": "Porto Mare Hotel",
    "changeMessage": "Location has changed in %@"
    }
    ],
    Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  35. "relevantDate": "2013-04-13T21:00+02:00"
    Sunday, April 14, 13

    View full-size slide

  36. Sunday, April 14, 13

    View full-size slide

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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  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

    View full-size slide

  42. Passbook
    http://www.github.com/frozon/passbook
    Sunday, April 14, 13

    View full-size slide

  43. Twitter @lgleasain
    Github lgleasain
    www.lancegleason.com
    www.polyglotprogrammincinc.com
    [email protected]
    Sunday, April 14, 13

    View full-size slide