You Pass to Passbook

Preview:

DESCRIPTION

A look at what Passbook is, what passes are, how they are made, and what goes into them.

Citation preview

Your Pass to Passbook

Your Pass to Passbook

Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com

Email: jcurcio@1026development.com

Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com

Email: jcurcio@1026development.com

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:

❖ Email

❖ 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: jcurcio@1026development.com

Your Pass to Passbook

Presented by: Jeremy CurcioTwitter: @Jeremy1026Web: www.jcurcio.com

Email: jcurcio@1026development.com