Your Pass to Passbook
Your Pass to Passbook
Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com
Email: [email protected]
Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com
Email: [email protected]
What Is Passbook?
❖ Introduced in iOS 6
❖Allows users to digitally manage items that are traditionally physical in nature.
❖ Event Tickets❖ Coupons❖ Store Loyalty Cards❖ Boarding Passes
Who Is Using Passbook?
❖Amtrak
❖Delta Airlines
❖Fandango
❖LivingSocial
❖Starbucks
❖Many others
Pass Styles❖ Each pass style
serves its own purpose and has unique characteristics.
❖ Each pass has a unique layout and design
❖ Makes finding specific types of passes easier
Coupon
❖ Coupons
❖ Vouchers
❖ Special discount offers
Event Ticket
❖ Used to gain entry to events
❖ Concerts
❖ Movie Tickets
❖ Sporting Events
Store Card
❖ Loyalty cards
❖ Discount cards
❖ Point cards
❖ Gift cards
Boarding Pass
❖ Transit tickets❖ Air travel
❖ Trains
❖ Ferries
❖ Buses
Generic
❖ Anything else that doesn’t quite fit into one of the above categories, perhaps a gym membership card
Pass Composition
What Goes Into a Pass?❖A pass is very similar to the
application bundle
❖ JSON File
❖ pass.json
❖ Contains all settings for the Pass
❖ Icons❖ Images❖ Localizations
❖Signature
Delivering A Pass
❖ Passes can be distributed via:
❖ On the web through Safari
❖ Requires OS X 10.8.2+ or iOS 6+
❖ Using the MIME Type: application/vnd.apple.pkpass
❖ In an App
❖ Via PassKit
Creating A Pass
❖Decide what will be the primary purpose of the pass
❖Create the JSON
❖Create applicable images
❖Sign the pass
Deciding The Primary Purpose
❖Plane ticket?
❖ Boarding Pass
❖10% Your Lunch Order?
❖ Coupon
❖Tickets to see “Monsters University”
❖ Event Ticket
Create The JSON
Pass.json❖ "formatVersion" : 1
❖ 1 for now, since passes have only one format currently
❖ This may change in the future if Apple adds or removes features to future passes
❖ "passTypeIdentifier" : "pass.com.jcurcio.monsters"
❖ Set in iOS Provisioning portal
❖ We will look at this later
Pass.json (Cont.)❖ "serialNumber" : "mon_001"
❖ Unique to the pass, can be anything so long as it is a string
❖ "teamIdentifier" : "225CZYLDG5"❖ Unique for each developer
❖ Assigned by Apple
❖ Same as your identifier for apps
❖ "relevantDate" : "2013-06-21T13:00-20:00"❖ Used to put the pass on the home screen at a
relevant time❖ W3C Date Format
Pass.json (Cont.)❖
❖ Tell Apple what you want the barcode to be; Apple makes you a barcode
❖ Formats Supported
❖ PDF147
❖ Aztec
❖ QR
"barcode" : { "message" : "MON_001", "format" : "PKBarcodeFormatPDF417", "messageEncoding" : "iso-8859-1" }
Pass.JSON (Cont.)❖ "organizationName" : "Movie Theater 26"
❖ Name of the company/location the ticket is for
❖ "description" : "Admit One"
❖ What the ticket is for
❖ "foregroundColor" : "rgb(255, 255, 255)"
❖ Color of main text on the pass
❖ "logoText" : "Movie Theater 26"
❖ Text directly to the right of the logo at the top of the pass
Pass.json (Cont.)
❖ "eventTicket" :
❖ Name of array specific to the type of pass
❖ "primaryFields" :
❖ Dictionary containing key, label, value for the primary fields on the pass.
❖ Things like the location the movie is playing or the title of the movie would go here
❖ Key has to be unique
Pass.json (Cont.)
❖ "secondaryFields" :
❖ Same as primaryFields
❖ "backFields" :
❖ Appears on the back of the card
❖ Optional
Signing The Pass
❖What we need to sign our pass
❖ Pass Type Identifier
❖ Registered on the developer portal
❖ Signing Certificate
❖ Created in the developer portal
❖ Stored in Keychain
Pass Type Identifier
❖ developer.apple.com/ios/manage/passtypeids/
Signing The Pass
❖Passes can be signed via multiple methods including:
❖ Desktop (Terminal)
❖ Web (Ruby, PHP, etc.)
❖ PassKit
Signing The Pass
❖https://developer.apple.com/passbook/
❖Example Passes and Sample Code
❖ signpass.xcodeproj
Using Signpass
Using Signpass
We have a Pass!
More Interesting Things
❖ Passes can have relevancies
❖ Relevancy allows the pass to appear on the home screen at a specific time or when the device is in a specific location
❖ Passes can be updated
❖ By push notifications
❖ By in-app updates (PassKit)
Wrapping Up
❖ Design tips
❖ Bright colors
❖ Use relevant pass styles
❖ Solid logos look best
❖ Logos are not automatically engraved
❖ Don’t overload on information
❖ Keep It Simple
Any Questions?
I hope not!But seriously, any questions?
Additional Resources
❖http://developer.apple.com/passbook
❖WWDC 2o12 Session Video 301: Introducing Passbook Part 1
❖WWDC 2o12 Session Video 309: Introducing Passbook Part 2
Thank You!
Your Pass to Passbook
Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com
Email: [email protected]
Your Pass to Passbook
Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com
Email: [email protected]
Top Related