SlideShare une entreprise Scribd logo
1  sur  22
PassKit on iOS 6   Craig Dunn
What is a Pass?
What is a Pass? ii

•   Barcode (2D formats)

    •   SerialNumber is the unique Id
        * not same as the barcode data

•   5 Types : Coupon, Generic, StoreCard,
    BoardingPass, EventTicket
What is a Pass? iii
                        {


•   ZIP file                "passTypeIdentifier":"com.xamarin.passkitdoc.banana",
                           "formatVersion":1,
                           "organizationName":"Xamarin",
                           "serialNumber":"12345436XYZ",


    •   Pass.json          "teamIdentifier":"XXXAAA1234",
                           "description":"Xamarin Demo",
                           "foregroundColor":"rgb(54,80,255)",
                           "backgroundColor":"rgb(209,255,247)",


    •   Images             "labelColor":"rgb(255,15,15)",
                           "logoText":"Banana ",
                           "barcode":{
                              "altText":"FREE-BANANA",
                              "format":"PKBarcodeFormatQR",
                              "message":"123456",
                              "messageEncoding":"iso-8859-1"
                           },
                          /* The following fields are specific to which type of pass. The name of this object specifie
                        boardingPass below implies this is a boarding pass. Other options include storeCard, generic,
                        eventTicket */
                           "boardingPass":{
                        /*headerFields, primaryFields, secondaryFields, and auxiliaryFields are arrays of field object
                        key, label, and value*/
                              "headerFields":[           //Header fields appear next to logoText
                                 {
                                    "key":"h1-label",    //Must be unique. Used by iOS apps to get the data.
                                    "label":"H1-label", //Label of the field
                                    "value":"H1"         //The actual data in the field
                                 },
(extra bits)
                  What is a Pass? iv
•   Relevance : locations (<10) & datetime (1)
                     "relevantDate" : "2012-10-17T09:00-05:00",
                     "locations" : [
                       {
                         "longitude" : -122.3748889,
                         "latitude" : 37.6189722
                       },{
                         "longitude" : -122.03118,
                         "latitude" : 37.33182



•
                       }],

    Related App Store apps
                      "associatedStoreIdentifiers" : [562123362],


•   Custom text
                      "backFields" : [ {
                              "key" : "terms",
                              "label" : "TERMS AND CONDITIONS",
                              "value" : "Generico offers this pass......"




•   Web Service URL : register/delete/APNS pull updates
                     "webServiceURL" : "https://example.com/passes/",
                     "authenticationToken" : "qwerty123567890asdfpoiuyt",
(manifest & sign)
                         Make a Pass

•   Must be an “Apple Developer”

•   Provisioning Portal : Pass Type ID

•   Requires various root certificates

•   signpass
Make a Pass ii
•   Edit JSON

•   Edit images

•   (manifest & sign)
                                       DEMO(?)
•   ZIP




Apple’s sample (you have to build yourself)
https://developer.apple.com/downloads/index.action?name=Passbook
(testing)
                        Make a Pass iii

•   Watch Console (Xcode)

    •   Log should tell you what
        went wrong



•   HTTP (non-secure) can be used
    only while testing APNS+updates
Scan Pass

                                                  push update notification
             Add Pass
                                                                                    Apple
                                                                                APNS servers
                             Passbook                                                                      Update
                                                                                                          database
                                                                                                                                   Scanner
                                                   register          request              notification
                                                              pass      changed           of change
                                                                             data                                                    P.O.S.
                                        generate & sign pass
                                                                                web

                                                                                          Your
                                        make changes to pass                   service
                          Add Pass                                                                        certificate for signing passes
                                                                                          server
                                                                              sign-pass                   images and JSON resources
                                                                                                            used to generate passes
Companion
  Apps                                                                                                  pass & device
  Your app                                                                                                database
                                                email attachments
                                                   web links




                        Conduit        Mail
                                      Safari
                         Apps        (others)
Passbook
•   Stores & manages Passes

•   Renders barcode for scanning
    (Apple: your app should not perform this function)

•   Receives notifications and makes web-service calls
(Pass pass-thru)
                         Conduit Apps

•   Summary display and Add

    •   Mail

    •   Safari

    •   <your app>?
        (probably not)
Companion Apps
•   YOUR APP

•   Configure App ID in Provisioning Portal

•   Generate Provisioning Profiles in Portal
    (after configuring the App ID)

•   Configure app Entitlements.plist




                                 plus Team ID!
Companion Apps ii

•   Access YOUR Passes
    Team ID, certificates

•   Read from a standard set of
    properties (text, icon)

•   Access custom properties
    by JSON “key”
Companion Apps iii
•   Companion apps can appear to “generate” Passes

    •   eg. Starbucks app : adds and updates Passes

    •   eg. Collect user data (or payment) in your app,
        then add a Pass

•   DO NOT GENERATE PASSES IN APP

    •   It requires your certificates to sign; they should be kept secure

    •   Create your own webservice to deliver the Pass file
Scanning Apps
•   YOUR APP or a Point of Sale system or ???

•   Only chance to “implement security”
    (a duplicate Pass is as easy as a screenshot)

•   Update server in real-time

    •   Can trigger APNS > Pass update (eg. store card balance)
(MonkeyScan & Azure)
                                   Scanning Apps ii
 MonkeyScan sample
     •   Microsoft Azure Mobile Services

     •   Xamarin Client Library
public static readonly MobileServiceClient MobileService = new MobileServiceClient (Constants.AzureUrl, Constants.AzureKey);
public static readonly IMobileServiceTable<ConfScan> scanTable = MobileService.GetTable<ConfScan>();

// then...

public TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext();

// and then...

AzureManager.scanTable.InsertAsync (scan)
	   .ContinueWith (t => {
	   	   if (t.Status == TaskStatus.RanToCompletion)
	   	   	   Console.WriteLine ("Updated scan in cloud " + t.Status + " " + t.Id);
	   	   else
	   	   	   ; // error handling or store and retry...
	   } , scheduler);
(MonkeyScan)
                    Scanning Apps iii

•   Configure account

•   Create tables

•   Columns will be
    dynamically created
(MonkeyScan)
                   Scanning Apps iv
•   MonkeySpace attendees
    are on-time!



•   App has real-time count



•
Updates with APNS
      "webServiceURL" : "https://example.com/passes/",
"authenticationToken" : "vxwxd7J8AlNNFPS8k0a0FfUFtq0ewzFdc",

                                                                                       Apple                                          Scanner
                                                       push update notification
                                                                                   APNS servers
                                                                                                                Update
                                                                                                               database
                                                                                                                                           P.O.S.
                                                                                             notification
                                                                                             of change

                                         register pass : pushToken

                                              dissociate pass                     web

                                         register pass : pushToken
                                                                                 service
                                                                                             Your          certificate for signing passes
                                                                                             server
                                                                                 sign-pass                 images and JSON resources
                                                                                                             used to generate passes

              Passbook
Updates with APNS ii
•   REST web service : Apple’s defined format

•   Register : when pass is added
            POST webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier/serialNumber


•
            pushToken
    Delete : shredder!
            DELETE webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier/serialNumber

•   Update : build and send new data (same serial #)
            GET webServiceURL/version/passes/passTypeIdentifier/serialNumber


•   Get Serial Numbers for Device
            GET webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier?passesUpdatedSince=tag


•   Error Logging (optional)
            POST webServiceURL/version/log
Scan Pass

                                                  push update notification
             Add Pass
                                                                                    Apple
                                                                                APNS servers
                             Passbook                                                                      Update
                                                                                                          database
                                                                                                                                   Scanner
                                                   register          request              notification
                                                              pass      changed           of change
                                                                             data                                                    P.O.S.
                                        generate & sign pass
                                                                                web

                                                                                          Your
                                        make changes to pass                   service
                          Add Pass                                                                        certificate for signing passes
                                                                                          server
                                                                              sign-pass                   images and JSON resources
                                                                                                            used to generate passes
Companion
  Apps                                                                                                  pass & device
  Your app                                                                                                database
                                                email attachments
                                                   web links




                        Conduit        Mail
                                      Safari
                         Apps        (others)
finis

     http://docs.xamarin.com/ios/tutorials/Introduction_to_PassKit


                http://github.com/conceptdev/MonkeySpace
https://github.com/conceptdev/MonkeySpace/tree/master/iOS.MonkeyScan


                            @conceptdev

Contenu connexe

Tendances

Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguageTsungWei Hu
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseDipti Borkar
 
2028 1 quarry eloqua mind map ppt slide
2028 1 quarry eloqua mind map ppt slide2028 1 quarry eloqua mind map ppt slide
2028 1 quarry eloqua mind map ppt slideRichard Hill
 
Share point 2010 comparacion de versiones
Share point 2010 comparacion de versionesShare point 2010 comparacion de versiones
Share point 2010 comparacion de versionesVielka Rojas
 
MeasureWorks - Emerce Conversion Event 20 April
MeasureWorks - Emerce Conversion Event 20 AprilMeasureWorks - Emerce Conversion Event 20 April
MeasureWorks - Emerce Conversion Event 20 AprilMeasureWorks
 
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical UpdateWSO2
 
Marketing Automation Mind Map Quarry
Marketing Automation Mind Map QuarryMarketing Automation Mind Map Quarry
Marketing Automation Mind Map QuarryPeter McAlpine
 
Marketing Automation Mind Map
Marketing Automation Mind MapMarketing Automation Mind Map
Marketing Automation Mind MapQuarry
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformAyman El-Hattab
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EEDmitri Shiryaev
 
SharePoint 2010 - Installation from the Ground Up
SharePoint 2010 - Installation from the Ground UpSharePoint 2010 - Installation from the Ground Up
SharePoint 2010 - Installation from the Ground UpDan Usher
 
The Fundamentals of HTML5
The Fundamentals of HTML5The Fundamentals of HTML5
The Fundamentals of HTML5DataLeader.io
 
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...Scott Hoag
 
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012Dipti Borkar
 
Transition from relational to NoSQL Philly DAMA Day
Transition from relational to NoSQL Philly DAMA DayTransition from relational to NoSQL Philly DAMA Day
Transition from relational to NoSQL Philly DAMA DayDipti Borkar
 

Tendances (15)

Python - A Comprehensive Programming Language
Python - A Comprehensive Programming LanguagePython - A Comprehensive Programming Language
Python - A Comprehensive Programming Language
 
Introduction to NoSQL and Couchbase
Introduction to NoSQL and CouchbaseIntroduction to NoSQL and Couchbase
Introduction to NoSQL and Couchbase
 
2028 1 quarry eloqua mind map ppt slide
2028 1 quarry eloqua mind map ppt slide2028 1 quarry eloqua mind map ppt slide
2028 1 quarry eloqua mind map ppt slide
 
Share point 2010 comparacion de versiones
Share point 2010 comparacion de versionesShare point 2010 comparacion de versiones
Share point 2010 comparacion de versiones
 
MeasureWorks - Emerce Conversion Event 20 April
MeasureWorks - Emerce Conversion Event 20 AprilMeasureWorks - Emerce Conversion Event 20 April
MeasureWorks - Emerce Conversion Event 20 April
 
2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update2009 Q2 WSO2 Technical Update
2009 Q2 WSO2 Technical Update
 
Marketing Automation Mind Map Quarry
Marketing Automation Mind Map QuarryMarketing Automation Mind Map Quarry
Marketing Automation Mind Map Quarry
 
Marketing Automation Mind Map
Marketing Automation Mind MapMarketing Automation Mind Map
Marketing Automation Mind Map
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development Platform
 
Composite Applications with SOA, BPEL and Java EE
Composite  Applications with SOA, BPEL and Java EEComposite  Applications with SOA, BPEL and Java EE
Composite Applications with SOA, BPEL and Java EE
 
SharePoint 2010 - Installation from the Ground Up
SharePoint 2010 - Installation from the Ground UpSharePoint 2010 - Installation from the Ground Up
SharePoint 2010 - Installation from the Ground Up
 
The Fundamentals of HTML5
The Fundamentals of HTML5The Fundamentals of HTML5
The Fundamentals of HTML5
 
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...
SPSPhilly - SharePoint 2010 Tips & Tricks of the Trade - Avoiding Administrat...
 
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
Navigating the Transition from relational to NoSQL - CloudCon Expo 2012
 
Transition from relational to NoSQL Philly DAMA Day
Transition from relational to NoSQL Philly DAMA DayTransition from relational to NoSQL Philly DAMA Day
Transition from relational to NoSQL Philly DAMA Day
 

En vedette

Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#James Montemagno
 
Introduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinIntroduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinCraig Dunn
 
Cross platform mobile development with C#
Cross platform mobile development with C#Cross platform mobile development with C#
Cross platform mobile development with C#chriskoiak
 
Mobile development strategies with MVVM
Mobile development strategies with MVVMMobile development strategies with MVVM
Mobile development strategies with MVVMJames Montemagno
 
Developing native iOS & Android apps in c# with xamarin
Developing native iOS & Android apps in c# with xamarinDeveloping native iOS & Android apps in c# with xamarin
Developing native iOS & Android apps in c# with xamarinJames Montemagno
 
Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Shravan Kumar Kasagoni
 
Portable Class Library Deep Dive
Portable Class Library Deep DivePortable Class Library Deep Dive
Portable Class Library Deep DiveJames Montemagno
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Xamarin
 
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...Paulo Cesar Ortins Brito
 

En vedette (10)

Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#Cross Platform Mobile Development in C#
Cross Platform Mobile Development in C#
 
Social Engineering
Social EngineeringSocial Engineering
Social Engineering
 
Introduction to iOS with C# using Xamarin
Introduction to iOS with C# using XamarinIntroduction to iOS with C# using Xamarin
Introduction to iOS with C# using Xamarin
 
Cross platform mobile development with C#
Cross platform mobile development with C#Cross platform mobile development with C#
Cross platform mobile development with C#
 
Mobile development strategies with MVVM
Mobile development strategies with MVVMMobile development strategies with MVVM
Mobile development strategies with MVVM
 
Developing native iOS & Android apps in c# with xamarin
Developing native iOS & Android apps in c# with xamarinDeveloping native iOS & Android apps in c# with xamarin
Developing native iOS & Android apps in c# with xamarin
 
Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#Cross Platform, Native Mobile Application Development Using Xamarin and C#
Cross Platform, Native Mobile Application Development Using Xamarin and C#
 
Portable Class Library Deep Dive
Portable Class Library Deep DivePortable Class Library Deep Dive
Portable Class Library Deep Dive
 
Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4Native i os, android, and windows development in c# with xamarin 4
Native i os, android, and windows development in c# with xamarin 4
 
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
TDC Porto Alegre 2014 - Quer desenvolver aplicações nativas e cross-plataform...
 

Similaire à PassKit on iOS 6: Understanding Passes and the Passbook Ecosystem

Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomQConLondon2008
 
Software architectures for the cloud
Software architectures for the cloudSoftware architectures for the cloud
Software architectures for the cloudGeorgios Gousios
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingThorsten Kamann
 
SVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsSVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsTao Jiang
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An IntroductionThorsten Kamann
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforcedeimos
 
Assisted Generation and Publication of Geospatial Metadata
Assisted Generation and Publication of Geospatial MetadataAssisted Generation and Publication of Geospatial Metadata
Assisted Generation and Publication of Geospatial Metadatauji_geotec
 
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure FunctionsAzure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure FunctionsBob German
 
Introduction to ServiceStack
Introduction to ServiceStackIntroduction to ServiceStack
Introduction to ServiceStackmobiweave
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...Naoki (Neo) SATO
 
Quick run in with Swagger
Quick run in with SwaggerQuick run in with Swagger
Quick run in with SwaggerMesh Korea
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...Amazon Web Services
 
How Klout is changing the landscape of social media with Hadoop and BI
How Klout is changing the landscape of social media with Hadoop and BIHow Klout is changing the landscape of social media with Hadoop and BI
How Klout is changing the landscape of social media with Hadoop and BIDenny Lee
 
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan VMware Tanzu
 
Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Shuji Watanabe
 
Deploying your static web app to the Cloud
Deploying your static web app to the CloudDeploying your static web app to the Cloud
Deploying your static web app to the CloudChristoffer Noring
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAmazon Web Services
 

Similaire à PassKit on iOS 6: Understanding Passes and the Passbook Ecosystem (20)

Application Services On The Web Sales Forcecom
Application Services On The Web Sales ForcecomApplication Services On The Web Sales Forcecom
Application Services On The Web Sales Forcecom
 
Software architectures for the cloud
Software architectures for the cloudSoftware architectures for the cloud
Software architectures for the cloud
 
Spring 3 - Der dritte Frühling
Spring 3 - Der dritte FrühlingSpring 3 - Der dritte Frühling
Spring 3 - Der dritte Frühling
 
SVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control SystemsSVG in Data Acquisition and Control Systems
SVG in Data Acquisition and Control Systems
 
Spring 3 - An Introduction
Spring 3 - An IntroductionSpring 3 - An Introduction
Spring 3 - An Introduction
 
Dave Carroll Application Services Salesforce
Dave Carroll Application Services SalesforceDave Carroll Application Services Salesforce
Dave Carroll Application Services Salesforce
 
Assisted Generation and Publication of Geospatial Metadata
Assisted Generation and Publication of Geospatial MetadataAssisted Generation and Publication of Geospatial Metadata
Assisted Generation and Publication of Geospatial Metadata
 
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure FunctionsAzure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
 
Introduction to ServiceStack
Introduction to ServiceStackIntroduction to ServiceStack
Introduction to ServiceStack
 
Introduction to Force.com
Introduction to Force.comIntroduction to Force.com
Introduction to Force.com
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
[Serverless Meetup Tokyo #3] Serverless in Azure (Azure Functionsのアップデート、事例、デ...
 
Quick run in with Swagger
Quick run in with SwaggerQuick run in with Swagger
Quick run in with Swagger
 
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
GPSTEC323-SaaS and OpenID Connect The Secret Sauce Multi-Tenant Identity and ...
 
How Klout is changing the landscape of social media with Hadoop and BI
How Klout is changing the landscape of social media with Hadoop and BIHow Klout is changing the landscape of social media with Hadoop and BI
How Klout is changing the landscape of social media with Hadoop and BI
 
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
Secure Credential Management with CredHub - DaShaun Carter & Sharath Sahadevan
 
Serverless - Developers.IO 2019
Serverless - Developers.IO 2019Serverless - Developers.IO 2019
Serverless - Developers.IO 2019
 
Deploying your static web app to the Cloud
Deploying your static web app to the CloudDeploying your static web app to the Cloud
Deploying your static web app to the Cloud
 
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as CodeAWS January 2016 Webinar Series - Managing your Infrastructure as Code
AWS January 2016 Webinar Series - Managing your Infrastructure as Code
 

Plus de Craig Dunn

Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Craig Dunn
 
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioEastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioCraig Dunn
 
Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Craig Dunn
 
Xamarin for iOS developers
Xamarin for iOS developersXamarin for iOS developers
Xamarin for iOS developersCraig Dunn
 
Introduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xIntroduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xCraig Dunn
 
Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Craig Dunn
 
Wearables with C# and Xamarin
Wearables with C# and XamarinWearables with C# and Xamarin
Wearables with C# and XamarinCraig Dunn
 
What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3Craig Dunn
 
Your First Xamarin.Forms App
Your First Xamarin.Forms AppYour First Xamarin.Forms App
Your First Xamarin.Forms AppCraig Dunn
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinCraig Dunn
 
iOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamariniOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamarinCraig Dunn
 
Azure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataAzure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataCraig Dunn
 
Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Craig Dunn
 
Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Craig Dunn
 
Async Await for Mobile Apps
Async Await for Mobile AppsAsync Await for Mobile Apps
Async Await for Mobile AppsCraig Dunn
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousCraig Dunn
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousCraig Dunn
 

Plus de Craig Dunn (20)

Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)Visual Studio for Mac (AltConf 2017)
Visual Studio for Mac (AltConf 2017)
 
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual StudioEastBay.net Building Mobile Apps with Xamarin and Visual Studio
EastBay.net Building Mobile Apps with Xamarin and Visual Studio
 
Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)Introduction to iOS 9 (Xamarin Evolve 2016)
Introduction to iOS 9 (Xamarin Evolve 2016)
 
Xamarin for iOS developers
Xamarin for iOS developersXamarin for iOS developers
Xamarin for iOS developers
 
Introduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.xIntroduction to Xamarin.Forms 2.x
Introduction to Xamarin.Forms 2.x
 
Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9Xamarin DevDays Portland - iOS 9
Xamarin DevDays Portland - iOS 9
 
Wearables with C# and Xamarin
Wearables with C# and XamarinWearables with C# and Xamarin
Wearables with C# and Xamarin
 
What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3What's New Xamarin.Forms 1.3
What's New Xamarin.Forms 1.3
 
Your First Xamarin.Forms App
Your First Xamarin.Forms AppYour First Xamarin.Forms App
Your First Xamarin.Forms App
 
Introduction to Android with C# using Xamarin
Introduction to Android with C# using XamarinIntroduction to Android with C# using Xamarin
Introduction to Android with C# using Xamarin
 
iOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and XamariniOS & Android apps using Parse and Xamarin
iOS & Android apps using Parse and Xamarin
 
Azure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud dataAzure Mobile Services - more than just cloud data
Azure Mobile Services - more than just cloud data
 
Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)Cloud-enabling iOS & Android apps with C# (using Xamarin)
Cloud-enabling iOS & Android apps with C# (using Xamarin)
 
Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)Cloudy with a Chance of Cross Platform (for Bay.NET)
Cloudy with a Chance of Cross Platform (for Bay.NET)
 
Async Await for Mobile Apps
Async Await for Mobile AppsAsync Await for Mobile Apps
Async Await for Mobile Apps
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
C# everywhere
C# everywhereC# everywhere
C# everywhere
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furious
 
OzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furiousOzAltNet Fast-ANDroid-furious
OzAltNet Fast-ANDroid-furious
 

Dernier

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 

Dernier (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

PassKit on iOS 6: Understanding Passes and the Passbook Ecosystem

  • 1. PassKit on iOS 6 Craig Dunn
  • 2. What is a Pass?
  • 3. What is a Pass? ii • Barcode (2D formats) • SerialNumber is the unique Id * not same as the barcode data • 5 Types : Coupon, Generic, StoreCard, BoardingPass, EventTicket
  • 4. What is a Pass? iii { • ZIP file "passTypeIdentifier":"com.xamarin.passkitdoc.banana", "formatVersion":1, "organizationName":"Xamarin", "serialNumber":"12345436XYZ", • Pass.json "teamIdentifier":"XXXAAA1234", "description":"Xamarin Demo", "foregroundColor":"rgb(54,80,255)", "backgroundColor":"rgb(209,255,247)", • Images "labelColor":"rgb(255,15,15)", "logoText":"Banana ", "barcode":{ "altText":"FREE-BANANA", "format":"PKBarcodeFormatQR", "message":"123456", "messageEncoding":"iso-8859-1" }, /* The following fields are specific to which type of pass. The name of this object specifie boardingPass below implies this is a boarding pass. Other options include storeCard, generic, eventTicket */ "boardingPass":{ /*headerFields, primaryFields, secondaryFields, and auxiliaryFields are arrays of field object key, label, and value*/ "headerFields":[ //Header fields appear next to logoText { "key":"h1-label", //Must be unique. Used by iOS apps to get the data. "label":"H1-label", //Label of the field "value":"H1" //The actual data in the field },
  • 5. (extra bits) What is a Pass? iv • Relevance : locations (<10) & datetime (1) "relevantDate" : "2012-10-17T09:00-05:00", "locations" : [ { "longitude" : -122.3748889, "latitude" : 37.6189722 },{ "longitude" : -122.03118, "latitude" : 37.33182 • }], Related App Store apps "associatedStoreIdentifiers" : [562123362], • Custom text "backFields" : [ { "key" : "terms", "label" : "TERMS AND CONDITIONS", "value" : "Generico offers this pass......" • Web Service URL : register/delete/APNS pull updates "webServiceURL" : "https://example.com/passes/", "authenticationToken" : "qwerty123567890asdfpoiuyt",
  • 6. (manifest & sign) Make a Pass • Must be an “Apple Developer” • Provisioning Portal : Pass Type ID • Requires various root certificates • signpass
  • 7. Make a Pass ii • Edit JSON • Edit images • (manifest & sign) DEMO(?) • ZIP Apple’s sample (you have to build yourself) https://developer.apple.com/downloads/index.action?name=Passbook
  • 8. (testing) Make a Pass iii • Watch Console (Xcode) • Log should tell you what went wrong • HTTP (non-secure) can be used only while testing APNS+updates
  • 9. Scan Pass push update notification Add Pass Apple APNS servers Passbook Update database Scanner register request notification pass changed of change data P.O.S. generate & sign pass web Your make changes to pass service Add Pass certificate for signing passes server sign-pass images and JSON resources used to generate passes Companion Apps pass & device Your app database email attachments web links Conduit Mail Safari Apps (others)
  • 10. Passbook • Stores & manages Passes • Renders barcode for scanning (Apple: your app should not perform this function) • Receives notifications and makes web-service calls
  • 11. (Pass pass-thru) Conduit Apps • Summary display and Add • Mail • Safari • <your app>? (probably not)
  • 12. Companion Apps • YOUR APP • Configure App ID in Provisioning Portal • Generate Provisioning Profiles in Portal (after configuring the App ID) • Configure app Entitlements.plist plus Team ID!
  • 13. Companion Apps ii • Access YOUR Passes Team ID, certificates • Read from a standard set of properties (text, icon) • Access custom properties by JSON “key”
  • 14. Companion Apps iii • Companion apps can appear to “generate” Passes • eg. Starbucks app : adds and updates Passes • eg. Collect user data (or payment) in your app, then add a Pass • DO NOT GENERATE PASSES IN APP • It requires your certificates to sign; they should be kept secure • Create your own webservice to deliver the Pass file
  • 15. Scanning Apps • YOUR APP or a Point of Sale system or ??? • Only chance to “implement security” (a duplicate Pass is as easy as a screenshot) • Update server in real-time • Can trigger APNS > Pass update (eg. store card balance)
  • 16. (MonkeyScan & Azure) Scanning Apps ii MonkeyScan sample • Microsoft Azure Mobile Services • Xamarin Client Library public static readonly MobileServiceClient MobileService = new MobileServiceClient (Constants.AzureUrl, Constants.AzureKey); public static readonly IMobileServiceTable<ConfScan> scanTable = MobileService.GetTable<ConfScan>(); // then... public TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext(); // and then... AzureManager.scanTable.InsertAsync (scan) .ContinueWith (t => { if (t.Status == TaskStatus.RanToCompletion) Console.WriteLine ("Updated scan in cloud " + t.Status + " " + t.Id); else ; // error handling or store and retry... } , scheduler);
  • 17. (MonkeyScan) Scanning Apps iii • Configure account • Create tables • Columns will be dynamically created
  • 18. (MonkeyScan) Scanning Apps iv • MonkeySpace attendees are on-time! • App has real-time count •
  • 19. Updates with APNS "webServiceURL" : "https://example.com/passes/", "authenticationToken" : "vxwxd7J8AlNNFPS8k0a0FfUFtq0ewzFdc", Apple Scanner push update notification APNS servers Update database P.O.S. notification of change register pass : pushToken dissociate pass web register pass : pushToken service Your certificate for signing passes server sign-pass images and JSON resources used to generate passes Passbook
  • 20. Updates with APNS ii • REST web service : Apple’s defined format • Register : when pass is added POST webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier/serialNumber • pushToken Delete : shredder! DELETE webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier/serialNumber • Update : build and send new data (same serial #) GET webServiceURL/version/passes/passTypeIdentifier/serialNumber • Get Serial Numbers for Device GET webServiceURL/version/devices/deviceLibraryIdentifier/registrations/passTypeIdentifier?passesUpdatedSince=tag • Error Logging (optional) POST webServiceURL/version/log
  • 21. Scan Pass push update notification Add Pass Apple APNS servers Passbook Update database Scanner register request notification pass changed of change data P.O.S. generate & sign pass web Your make changes to pass service Add Pass certificate for signing passes server sign-pass images and JSON resources used to generate passes Companion Apps pass & device Your app database email attachments web links Conduit Mail Safari Apps (others)
  • 22. finis http://docs.xamarin.com/ios/tutorials/Introduction_to_PassKit http://github.com/conceptdev/MonkeySpace https://github.com/conceptdev/MonkeySpace/tree/master/iOS.MonkeyScan @conceptdev

Notes de l'éditeur

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n