SlideShare a Scribd company logo
NFC and the Salesforce Mobile SDK

Cory Cowgill, West Monroe Partners, Senior Consultant
@corycowgill
Safe Harbor
 Safe harbor statement under the Private Securities Litigation Reform Act of 1995:

 This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if
 any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward-
 looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of
 product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of
 management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments
 and customer contracts or use of our services.

 The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our
 service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth,
 interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated
 with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain,
 and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling
 non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the
 financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This
 documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site.

 Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may
 not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently
 available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
Cory Cowgill
Senior Consultant
West Monroe Partners
@corycowgill
Agenda
   NFC Showcase
   NFC Overview
   Mobile Hybrid Application Architecture
   Use Case Overview and Demo – vCard Cloud Loader
   Source Code Deep Dive
   Q&A
NFC Showcase #1 – Mobile Payments
NFC Showcase #2 – Hotel Key
NFC Showcase #3 – Content Sharing
NFC Overview
   NFC stands for Near Field Communication.
   Allows both active (smartphones) and passive
    (NFC tag) devices to transmit data wirelessly.
   Requires devices to be centimeters apart.
   Based on existing RFID technology.
   NDEF – NFC Data Exchange Format
What can you build with NFC?
    Transaction based applications:
      • Google Wallet
      • iOS Passport (?)
      • Rewards Programs
    Data Sharing Applications
      • Contacts
      • Photos & Videos
      • URL’s
    Task Launchers
      • WiFi Setups
      • Custom Application Triggers
NFC and Device Support
   Operating Systems
     • Currently Available:
         – Google Android
         – Blackberry
     • Rumored or Soon to be Released:
         – iOS 6.0
         – Windows Phone

   Smartphones & Tablets
     • Samsung Galaxy Phones
     • Google Nexus 7 Tablet
Mobile Hybrid Application Architecture
                       Portable Codebase
                         • Core application can run on multiple
                           devices
                       PhoneGap & Plugins
                         • Allows access to hardware API’s from
                           Javascript
Android NFC Tag Dispatch System
                              PhoneGap & Plugins
                                  • PhoneGap NFC Plugin abstracts
                                    NFC Tag Dispatch System
                                  • Ensures that across devices the
                                    different NFC systems
                                    implementations will work with
                                    your mobile application.
Use Case Overview & Demo
  NFC vCard Cloud Loader
    • A mobile application that uploads a NFC tagged business card into Salesforce.com.
    • Application is portable to different mobile operating systems.
    • YouTube Video Demonstration
        – http://www.youtube.com/watch?v=nXq409WsI1E&feature=plcp
    • DeveloperForce Article
        – http://wiki.developerforce.com/page/Developing_Mobile_Applications_That_Support_N
          ear_Field_Communication_(NFC)
Source Code Deep Dive
   Eclipse IDE
   Sourcecode on Github
         – https://github.com/corycowgill/NFC_vCard_Loader

   Code Deep Dive Guideposts
     • 1. Install & Configured the NFC Plugin
     • 2. Register for NFC Events
     • 3. Handle the NFC Read Event
     • 4. Process & Parse the NFC Tag Data
     • 5. Upload to Force.com
Source Code Part 1 – PhoneGap Plugin Install
      Library Downloads
         • Download the .JAR (phonegap-nfc-android.jar) and JavaScript file (phonegap-
           nfc.js) for the plugin.
         • Copy the .JAR file into your applications library folder.
         • Copy the JavaScript file into your applications JavaScript folder.
      HTML Page Includes
         • Include the Javascript libraries in your HTML.
      PhoneGap Plugin Config
         • Update your PhoneGap plugin xml file (plugins.xml) to include the plugin class:
         • <plugin name="NfcPlugin" value="com.chariotsolutions.nfc.plugin.NfcPlugin"/>
      Authorize NFC for the application in the manifest
         •   <uses-permission android:name="android.permission.NFC" />
Source Code Part 2 – Registering NFC Listeners
Source Code Part 3 – Handle NFC Payload
      NFC Read Event
        • “nfcEvent” object will include the tag object
        • Tag object will have the encoded data for reading and writing
Source Code Part 4 – Parse the Tag Data
   Parse NFC Tag Payload
     • Data is NDEF Formatted
     • Data is further encoded as vCard data
     • vCard data manipulation is performed via JavaScript Library
         – https://github.com/mattt/vcard.js
Source Code Part 5 – Upsert Data into Force.com
   Upsert the Contact into Force.com
     • Use the Force.com Mobile Toolkit
     • Pass the Contact record we created from parsing the tag data
     • Display the results on the screen to the end user
Additional Resources
   Force.com Mobile SDK
     • http://wiki.developerforce.com/page/Mobile_SDK
   NFC PhoneGap (Open Source) plugin by Don Coleman
     • https://github.com/chariotsolutions/phonegap-nfc
   vCard JavaScript Library (Open Source)
     • https://github.com/mattt/vcard.js
   NFC vCard Cloud Loader Source
     • https://github.com/corycowgill/NFC_vCard_Loader
   Developer Force Wiki
     • http://wiki.developerforce.com/page/Developing_Mobile_Applications_That_Support_
       Near_Field_Communication_(NFC)
NFC and the Salesforce Mobile SDK
NFC and the Salesforce Mobile SDK

More Related Content

Similar to NFC and the Salesforce Mobile SDK

Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Jeff Douglas
 
Gartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile StrategyGartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile Strategy
Lou Sacco
 
Building Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDKBuilding Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDK
Salesforce Developers
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Salesforce Developers
 
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGapBuilding Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Salesforce Developers
 
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGapBuilding Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Salesforce Developers
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
Sura Gonzalez
 
Salesforce Mobile Developer Week
Salesforce Mobile Developer WeekSalesforce Mobile Developer Week
Salesforce Mobile Developer Week
John Stevenson
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Salesforce Developers
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Salesforce Developers
 
Brasil Roadshow
Brasil RoadshowBrasil Roadshow
Brasil Roadshow
Joshua Birk
 
Softeq Development Corp.
Softeq Development Corp.Softeq Development Corp.
Softeq Development Corp.
Eugene Volkov
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices
LivePerson
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Michael Welburn
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech Session
BlrDroid
 
201505 beena v0
201505 beena v0201505 beena v0
201505 beena v0
Mohamedcpcbma
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Salesforce Developers
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Nick Landry
 
Location-aware Mobile Apps with Chatter & iBeacon
Location-aware Mobile Apps with Chatter & iBeaconLocation-aware Mobile Apps with Chatter & iBeacon
Location-aware Mobile Apps with Chatter & iBeacon
johngifford
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
Chamil Madusanka
 

Similar to NFC and the Salesforce Mobile SDK (20)

Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
 
Gartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile StrategyGartner Catalyst: How to succeed with your IT Mobile Strategy
Gartner Catalyst: How to succeed with your IT Mobile Strategy
 
Building Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDKBuilding Mobile Apps on Salesforce Platform with Mobile SDK
Building Mobile Apps on Salesforce Platform with Mobile SDK
 
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDKQuickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
Quickly Build a Native Mobile App for Your Community Using Salesforce Mobile SDK
 
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGapBuilding Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGap
 
Building Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGapBuilding Cross-platform Mobile Apps with Force.com and PhoneGap
Building Cross-platform Mobile Apps with Force.com and PhoneGap
 
Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?Native, Web or Hybrid Mobile App Development?
Native, Web or Hybrid Mobile App Development?
 
Salesforce Mobile Developer Week
Salesforce Mobile Developer WeekSalesforce Mobile Developer Week
Salesforce Mobile Developer Week
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
 
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.comCreating HTML5 Applications with jQuery Mobile, Ruby and Database.com
Creating HTML5 Applications with jQuery Mobile, Ruby and Database.com
 
Brasil Roadshow
Brasil RoadshowBrasil Roadshow
Brasil Roadshow
 
Softeq Development Corp.
Softeq Development Corp.Softeq Development Corp.
Softeq Development Corp.
 
Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices Mobile SDK: Considerations & Best Practices
Mobile SDK: Considerations & Best Practices
 
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDKQuickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
Quickly Build a Native Mobile App for your Community using Salesforce Mobile SDK
 
March 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech SessionMarch 2014 Meetup - Nokia X Tech Session
March 2014 Meetup - Nokia X Tech Session
 
201505 beena v0
201505 beena v0201505 beena v0
201505 beena v0
 
Hands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.comHands-on Workshop: Intermediate Development with Heroku and Force.com
Hands-on Workshop: Intermediate Development with Heroku and Force.com
 
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGapBuilding Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
Building Mobile Cross-Platform Apps with HTML5, jQuery Mobile & PhoneGap
 
Location-aware Mobile Apps with Chatter & iBeacon
Location-aware Mobile Apps with Chatter & iBeaconLocation-aware Mobile Apps with Chatter & iBeacon
Location-aware Mobile Apps with Chatter & iBeacon
 
Hybrid mobile app development
Hybrid mobile app developmentHybrid mobile app development
Hybrid mobile app development
 

More from Salesforce Developers

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Salesforce Developers
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
Salesforce Developers
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
Salesforce Developers
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
Salesforce Developers
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
Salesforce Developers
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
Salesforce Developers
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
Salesforce Developers
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
Salesforce Developers
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
Salesforce Developers
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
Salesforce Developers
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
Salesforce Developers
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
Salesforce Developers
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
Salesforce Developers
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
Salesforce Developers
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
Salesforce Developers
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
Salesforce Developers
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
Salesforce Developers
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
Salesforce Developers
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
Salesforce Developers
 

More from Salesforce Developers (20)

Sample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce DevelopersSample Gallery: Reference Code and Best Practices for Salesforce Developers
Sample Gallery: Reference Code and Best Practices for Salesforce Developers
 
Maximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component PerformanceMaximizing Salesforce Lightning Experience and Lightning Component Performance
Maximizing Salesforce Lightning Experience and Lightning Component Performance
 
Local development with Open Source Base Components
Local development with Open Source Base ComponentsLocal development with Open Source Base Components
Local development with Open Source Base Components
 
TrailheaDX India : Developer Highlights
TrailheaDX India : Developer HighlightsTrailheaDX India : Developer Highlights
TrailheaDX India : Developer Highlights
 
Why developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX IndiaWhy developers shouldn’t miss TrailheaDX India
Why developers shouldn’t miss TrailheaDX India
 
CodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local DevelopmentCodeLive: Build Lightning Web Components faster with Local Development
CodeLive: Build Lightning Web Components faster with Local Development
 
CodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web ComponentsCodeLive: Converting Aura Components to Lightning Web Components
CodeLive: Converting Aura Components to Lightning Web Components
 
Enterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web ComponentsEnterprise-grade UI with open source Lightning Web Components
Enterprise-grade UI with open source Lightning Web Components
 
TrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer HighlightsTrailheaDX and Summer '19: Developer Highlights
TrailheaDX and Summer '19: Developer Highlights
 
Live coding with LWC
Live coding with LWCLive coding with LWC
Live coding with LWC
 
Lightning web components - Episode 4 : Security and Testing
Lightning web components  - Episode 4 : Security and TestingLightning web components  - Episode 4 : Security and Testing
Lightning web components - Episode 4 : Security and Testing
 
LWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura InteroperabilityLWC Episode 3- Component Communication and Aura Interoperability
LWC Episode 3- Component Communication and Aura Interoperability
 
Lightning web components episode 2- work with salesforce data
Lightning web components   episode 2- work with salesforce dataLightning web components   episode 2- work with salesforce data
Lightning web components episode 2- work with salesforce data
 
Lightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An IntroductionLightning web components - Episode 1 - An Introduction
Lightning web components - Episode 1 - An Introduction
 
Migrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCPMigrating CPQ to Advanced Calculator and JSQCP
Migrating CPQ to Advanced Calculator and JSQCP
 
Scale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in SalesforceScale with Large Data Volumes and Big Objects in Salesforce
Scale with Large Data Volumes and Big Objects in Salesforce
 
Replicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data CaptureReplicate Salesforce Data in Real Time with Change Data Capture
Replicate Salesforce Data in Real Time with Change Data Capture
 
Modern Development with Salesforce DX
Modern Development with Salesforce DXModern Development with Salesforce DX
Modern Development with Salesforce DX
 
Get Into Lightning Flow Development
Get Into Lightning Flow DevelopmentGet Into Lightning Flow Development
Get Into Lightning Flow Development
 
Integrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS ConnectIntegrate CMS Content Into Lightning Communities with CMS Connect
Integrate CMS Content Into Lightning Communities with CMS Connect
 

NFC and the Salesforce Mobile SDK

  • 1. NFC and the Salesforce Mobile SDK Cory Cowgill, West Monroe Partners, Senior Consultant @corycowgill
  • 2. Safe Harbor Safe harbor statement under the Private Securities Litigation Reform Act of 1995: This presentation may contain forward-looking statements that involve risks, uncertainties, and assumptions. If any such uncertainties materialize or if any of the assumptions proves incorrect, the results of salesforce.com, inc. could differ materially from the results expressed or implied by the forward- looking statements we make. All statements other than statements of historical fact could be deemed forward-looking, including any projections of product or service availability, subscriber growth, earnings, revenues, or other financial items and any statements regarding strategies or plans of management for future operations, statements of belief, any statements concerning new, planned, or upgraded services or technology developments and customer contracts or use of our services. The risks and uncertainties referred to above include – but are not limited to – risks associated with developing and delivering new functionality for our service, new products and services, our new business model, our past operating losses, possible fluctuations in our operating results and rate of growth, interruptions or delays in our Web hosting, breach of our security measures, the outcome of intellectual property and other litigation, risks associated with possible mergers and acquisitions, the immature market in which we operate, our relatively limited operating history, our ability to expand, retain, and motivate our employees and manage our growth, new releases of our service and successful customer deployment, our limited history reselling non-salesforce.com products, and utilization and selling to larger enterprise customers. Further information on potential factors that could affect the financial results of salesforce.com, inc. is included in our annual report on Form 10-Q for the most recent fiscal quarter ended July 31, 2012. This documents and others containing important disclosures are available on the SEC Filings section of the Investor Information section of our Web site. Any unreleased services or features referenced in this or other presentations, press releases or public statements are not currently available and may not be delivered on time or at all. Customers who purchase our services should make the purchase decisions based upon features that are currently available. Salesforce.com, inc. assumes no obligation and does not intend to update these forward-looking statements.
  • 3. Cory Cowgill Senior Consultant West Monroe Partners @corycowgill
  • 4. Agenda  NFC Showcase  NFC Overview  Mobile Hybrid Application Architecture  Use Case Overview and Demo – vCard Cloud Loader  Source Code Deep Dive  Q&A
  • 5. NFC Showcase #1 – Mobile Payments
  • 6. NFC Showcase #2 – Hotel Key
  • 7. NFC Showcase #3 – Content Sharing
  • 8. NFC Overview  NFC stands for Near Field Communication.  Allows both active (smartphones) and passive (NFC tag) devices to transmit data wirelessly.  Requires devices to be centimeters apart.  Based on existing RFID technology.  NDEF – NFC Data Exchange Format
  • 9. What can you build with NFC?  Transaction based applications: • Google Wallet • iOS Passport (?) • Rewards Programs  Data Sharing Applications • Contacts • Photos & Videos • URL’s  Task Launchers • WiFi Setups • Custom Application Triggers
  • 10. NFC and Device Support  Operating Systems • Currently Available: – Google Android – Blackberry • Rumored or Soon to be Released: – iOS 6.0 – Windows Phone  Smartphones & Tablets • Samsung Galaxy Phones • Google Nexus 7 Tablet
  • 11. Mobile Hybrid Application Architecture  Portable Codebase • Core application can run on multiple devices  PhoneGap & Plugins • Allows access to hardware API’s from Javascript
  • 12. Android NFC Tag Dispatch System  PhoneGap & Plugins • PhoneGap NFC Plugin abstracts NFC Tag Dispatch System • Ensures that across devices the different NFC systems implementations will work with your mobile application.
  • 13. Use Case Overview & Demo  NFC vCard Cloud Loader • A mobile application that uploads a NFC tagged business card into Salesforce.com. • Application is portable to different mobile operating systems. • YouTube Video Demonstration – http://www.youtube.com/watch?v=nXq409WsI1E&feature=plcp • DeveloperForce Article – http://wiki.developerforce.com/page/Developing_Mobile_Applications_That_Support_N ear_Field_Communication_(NFC)
  • 14. Source Code Deep Dive  Eclipse IDE  Sourcecode on Github – https://github.com/corycowgill/NFC_vCard_Loader  Code Deep Dive Guideposts • 1. Install & Configured the NFC Plugin • 2. Register for NFC Events • 3. Handle the NFC Read Event • 4. Process & Parse the NFC Tag Data • 5. Upload to Force.com
  • 15. Source Code Part 1 – PhoneGap Plugin Install  Library Downloads • Download the .JAR (phonegap-nfc-android.jar) and JavaScript file (phonegap- nfc.js) for the plugin. • Copy the .JAR file into your applications library folder. • Copy the JavaScript file into your applications JavaScript folder.  HTML Page Includes • Include the Javascript libraries in your HTML.  PhoneGap Plugin Config • Update your PhoneGap plugin xml file (plugins.xml) to include the plugin class: • <plugin name="NfcPlugin" value="com.chariotsolutions.nfc.plugin.NfcPlugin"/>  Authorize NFC for the application in the manifest • <uses-permission android:name="android.permission.NFC" />
  • 16. Source Code Part 2 – Registering NFC Listeners
  • 17. Source Code Part 3 – Handle NFC Payload  NFC Read Event • “nfcEvent” object will include the tag object • Tag object will have the encoded data for reading and writing
  • 18. Source Code Part 4 – Parse the Tag Data  Parse NFC Tag Payload • Data is NDEF Formatted • Data is further encoded as vCard data • vCard data manipulation is performed via JavaScript Library – https://github.com/mattt/vcard.js
  • 19. Source Code Part 5 – Upsert Data into Force.com  Upsert the Contact into Force.com • Use the Force.com Mobile Toolkit • Pass the Contact record we created from parsing the tag data • Display the results on the screen to the end user
  • 20. Additional Resources  Force.com Mobile SDK • http://wiki.developerforce.com/page/Mobile_SDK  NFC PhoneGap (Open Source) plugin by Don Coleman • https://github.com/chariotsolutions/phonegap-nfc  vCard JavaScript Library (Open Source) • https://github.com/mattt/vcard.js  NFC vCard Cloud Loader Source • https://github.com/corycowgill/NFC_vCard_Loader  Developer Force Wiki • http://wiki.developerforce.com/page/Developing_Mobile_Applications_That_Support_ Near_Field_Communication_(NFC)