DEVELOPING NFC APPS for BLACKBERRY



Similar documents
NFC in Android. Martijn Coenen

APPFORUM2014. Helping the developer community build next-generation, multi-platform apps. SCHAUMBURG, ILLINOIS SEPTEMBER 8-10

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Training. MIFARE4Mobile. Public. MobileKnowledge April 2015

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

QML and JavaScript for Native App Development

Cross-Platform Tools

Bridging the Gap: from a Web App to a Mobile Device App

Developing and deploying mobile apps

Retool your HTML/JavaScript to go Mobile

Mobile App Testing is not something special

An NFC Ticketing System with a new approach of an Inverse Reader Mode

EMV-TT. Now available on Android. White Paper by

Choosing a Mobile Application Development Approach

Introduction to Oracle Mobile Application Framework Raghu Srinivasan, Director Development Mobile and Cloud Development Tools Oracle

Mobile Cross Platform Development really? Jonathan Marshall, IBM Mobile Technical Specialist IBM Corporation

Developing multidevice-apps using Apache Cordova and HTML5. Guadalajara Java User Group Guillermo Muñoz Java Developer

Inside the Mobile Wallet: What It Means for Merchants and Card Issuers

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

Making Mobile a Reality

SYST35300 Hybrid Mobile Application Development

... Introduction Acknowledgments... 19

Building native mobile apps for Digital Factory

The Bootstrapper's Guide to the Mobile Web by Deltina Hay. Mobile App Strategy Worksheet. I. Target Market, App Category, Platforms

Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston

Developing Android Apps for BlackBerry 10. JAM854 Mike Zhou- Developer Evangelist, APAC Nov 30, 2012

Experimental Comparison of Hybrid and Native Applications for Mobile Systems

Bringing Mobile Payments to Market for an International Retailer

Training MIFARE SDK. Public. MobileKnowledge June 2015

Mobile NFC 101. Presenter: Nick von Dadelszen Date: 31st August 2012 Company: Lateral Security (IT) Services Limited

HIGH-SECURITY MOBILITY MANAGEMENT FROM BLACKBERRY

Cross-Platform Phone Apps & Sites with jquery Mobile

Middleware- Driven Mobile Applications

ni.com Remote Connectivity with LabVIEW

WEB, HYBRID, NATIVE EXPLAINED CRAIG ISAKSON. June 2013 MOBILE ENGINEERING LEAD / SOFTWARE ENGINEER

Mobile Cloud & Mobile Ticketing

Securing the future of mobile services. SIMalliance Open Mobile API. An Introduction v2.0. Security, Identity, Mobility

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Development for Mobile Devices Tools from Intel, Platform of Your Choice!

Android pay. Frequently asked questions

SIMPLIFY MULTI-PLATFORM ENTERPRISE MOBILITY MANAGEMENT

Running Android Applications on BlackBerry 10 developer.blackberry.com/android

separate the content technology display or delivery technology

Developing multi-platform mobile applications: doing it right. Mihail Ivanchev

PEGA MOBILITY A PEGA PLATFORM WHITEPAPER

How to pick the right development model for your next mobile project

Corporate-level device management for BlackBerry, ios and Android

Native, web or hybrid mobile-app development

Enabling Cordova (aka PhoneGap) on Tizen. René Pourtier / Luc Yriarte

Mobile Application Development

Building Cross Platform Mobile Apps Dev Tools, MBaaS, Architecture, APIs

Training. NFC in Android. Public. MobileKnowledge October 2015

ENTERPRISE MOBILITY STRATEGY. We work for you, not your technology vendors.

Cross-Platform Development: Target More Platforms and Devices with a Minimal Amount of Source Code

esarinformation Systems Simplifying your Technology Mobile Applications Development Profile

Mobile App Infrastructure for Cross-Platform Deployment (N11-38)

Best practices building multi-platform apps. John Hasthorpe & Josh Venman

CANADA VS THE USA - THE CONTRAST AND LESSONS FOR MOBILE PAYMENTS

An Analysis of Mobile Application Development Approaches

Mobile Application Marketplace 2015: Market Analysis and Assessment of Future Evolution and Opportunities

Mobile Solutions in ArcGIS. Justin Fan

NFC Mobile Handset High Level Requirements V2

How Simple Is It To Develop a Mobile App? Uma Sudhan OpenEdge Developer 7 th Oct 2013

Multimedia Playback & Streaming

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

OS3036 Put Your ClearPath In Your Pocket

Period: 50 Hours of Code. Topic: Python Programming Mobile App Development Electronics and Robotics Web Development Game Programming Computer Security

Bank. CA$H 2.0 Contactless payment cards

How to Pay Fees in Municity Android January 2, 2015

Enterprise Mobile Application Development: Native or Hybrid?

Choosing the Best Mobile Backend

HTML5: Separating Fact and Fiction. #wipjam

Chytré karty opět o rok dál...

Development of mobile applications for multiple platforms

SEEK project - Access to Secure Elements on Android. Frank Schäfer

Challenges in Android Application Development: A Case Study

How To Use Titanium Studio

DevOps Best Practices for Mobile Apps. Sanjeev Sharma IBM Software Group

Mobile Development Frameworks Overview. Understand the pros and cons of using different mobile development frameworks for mobile projects.

Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Mobile Payment: The next step of secure payment VDI / VDE-Colloquium. Hans-Jörg Frey Senior Product Manager May 16th, 2013

Significance of Tokenization in Promoting Cloud Based Secure Elements

Professional Tizen Application Development

Transcription:

1 DEVELOPING NFC APPS for BLACKBERRY NFC Forum, Developers Showcase March 21 st, 2014 Larry McDonough, Principal Evangelist @LMCDUNNA

2 CONTENTS Development on BlackBerry BlackBerry NFC Support 5 most common use cases NFC Demos Q & A

3 First, Some Stats A mobile device management leader with global enterprise customer base exceeding 80,000 30,000+ BES 10 commercial & test servers installed 250,000+ BBM Channels globally since launch 40+ Million newly registered Android/iOS BBM users in first 60 days 665+ carriers and distribution partners offering BlackBerry products and services in more than 175 countries around the world

4 High Level Architecture Native C++ & Cascades UI HTML5 & WebWorks Android Runtime BlackBerry Platform & Services (BlackBerry Enterprise Service 10, Push, Payments, BBM, Invocation Framework, Share Framework, Maps, ) BlackBerry 10 OS Support for NFC in the Android Runtime is coming in 10.3

5 Strong & Growing Ecosystem Managing corporate... and personal apps Broad range of app dev libraries Wide choice of programming languages C/C++ Native SDK C++/Qt Cascades HTML5 BlackBerry WebWorks Java Android Runtime

6 Top Partners

7 BlackBerry World In over 170 Markets Free to register Free to submit upgrade 70/30 revenue share Credit card, PayPal, Carrier Billing 5+ Billion apps downloaded

8 http://developer.blackberry.com Tools, samples, documentation, Forums HTML5 / WebWorks C, C++, Native SDK Cascades UI Framework Android Frameworks Partners: Appcelerator, Cordova, dojo, jquery Mobile, Marmalade, Qt, Sencha Touch, Unity

9 BlackBerry NFC Support

10 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards APIs & Built-in Apps Support

11 About NFC Tags Memory Cards that store data App takes action in response to the message Have a contactless interface Read by a device termed the Reader

12 About NFC Tags 4 standard NFC Forum tag types Various tag capacities Message format is standard (NDEF) Custom types ( external ) allowed Standard message types include Smart Poster, Text, URI

13 About Tag Circuitry

14 Field Detection and Power

15 Demo 1 NFC Business Card Front Back No coding or client app necessary Uses standard URL message format Leverages browser to take user to my ebusiness Card site Backend server code helps me track who I met, who downloaded my vcard, etc. w/qr Code For ios users w/nfc Tag For real smartphone users

16 Demo 1 NFC Business Card After scanning tag, developers can: Add my vcard to their address book which includes usual stuff plus: LinkedIn URL, Twitter handle, Slide Share link, BlackBerry Dev Blog link, My Blogger link, etc. Request a device, Register as a vendor, and visit BlackBerry dev site

17 Demo 2 NFC Fun Run Start timer Run! Stop timer Have a nice cup of tea

18 Register with Invocation Framework <invoke-target id="com.example.nfcracetime"> <type>application</type> <filter> <action>bb.action.open</action> <mime-type>application/vnd.rim.nfc.ndef</mime-type> <property var= uris value= ndef://4/my.rim.com/myrecordtype /> </filter> </invoke-target>

19 Client action C++ and Qt bb::system::invokemanager* _invokemanager = new bb::system::invokemanager(); void App::receivedInvokeRequest( const bb::system::invokerequest& request) { QByteArray data = request.data(); QtMobilitySubset::QNdefMessage ndefmessage = QtMobilitySubset::QNdefMessage::fromByteArray(data); } handlendefrequest(ndefmessage);

20 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards APIs & Built-in Apps Support

21 What is Peer to Peer NFC? Transfer data from one device to another Share information just by touching Any kind of data Photos, music files, address book contacts are typical examples For larger items let NFC negotiate a Bluetooth connection No need for the usual BT pairing process Simple!

22 What is Peer to Peer NFC? Select object to share Touch devices! NFC ( and maybe Bluetooth) Magic Bask in the admiration!

23 Share from QML InvokeActionItem { id: sharedndefdata query { mimetype: "application/vnd.rim.nfc.ndef" invokeactionid: "bb.action.share" } } onshowing: { // make NDEF message as byte array in C++ sharedndefdata.data = _ndeffactory.getndefvcardmessage(sendvcard.ndeffirstname, sendvcard.ndeflastname, sendvcard.ndefaddress, sendvcard.ndefemail, sendvcard.ndefmobile); }

24 Share from C++ NfcShareManager *_nfcsharemanager = new NfcShareManager();... void NfcSharing::fileShareContentChanged(QString paths) { NfcShareFilesContent request; QList<QUrl> urls;... // Construct a list of local file URLs from file paths... request.setfileurls(urls); // share mode File means Bluetooth connection handover _nfcsharemanager->setsharemode(bb::system::nfcsharemode::file); NfcShareSetContentError::Type rc = _nfcsharemanager->setsharecontent(request); }

25 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards

26 What are we Emulating? We are emulating Smart Cards Almaden Valley Health Club Larry McDonough Member Since: 2/11/2005 Membership & Loyalty Cards Credit Cards ID Cards

27 What are Smart cards? A small computer Processor, OS, file system Can run special apps called applets Almaden Valley Health Club Secure Embedded in a plastic card Contacts and/or contactless interface Larry McDonough Member Since: 2/11/2005

28 Smart Cards & Readers Power Almaden Valley Health Club Communications Larry McDonough Member Since: 2/11/2005 Smart Card Reader With contact-based slot and contactless interface (NFC)

29 General Architecture

30 BlackBerry Architecture

31 Card Emulation In Use Touch handset to a reader Reader communicates directly with SE Optionally be notified of transaction Admire your purchase

32 Interact with Secure Element... rc = nfc_se_session_open_logical_channel(hsesession, the_aid, sizeof(the_aid), fcpresponsetype, &sechannel, &openresponselen);... rc = nfc_se_channel_transmit_apdu( sechannel, the_apdu, apdu_size, &exchangeresponselen );... rc = nfc_se_channel_get_transmit_data(sechannel, result, &nreceiveapdubuffersize));...

33 Transaction Notification... <invoke-target id="com.example.nfctool.tl"> <entry-point>1</entry-point> <type>application</type> <filter> <action>bb.action.notify</action> <mime-type>application/vnd.bb.nfc_transaction</mime-type> <property var="uris value="aid://sim/6e.66.63.74.65.73.74.30.31/"/> </filter> </invoke-target>...

34 NFC Payments EcoSystem Secure Provisioning (e.g. TSM) MNOs Financial Institutions Secure Payments (NFC) Transport Retail Secure Transactions (e.g. EMV)

35 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards APIs & Built-in Apps Support

36 What is Virtual Target Emulation? Touch handset to a reader Reader communicates with BlackBerry 10 App Application completes transaction Smile at new allocation of loyalty points!

37 Fool that Reader! Virtual target emulation makes your smartphone seem just like an NFC tag or card The reader cannot tell them apart Of course you cannot set the UID of the emulated target that is not under your control

38 Emulating an NDEF Tag... nfc_ndef_record_t *ndefrecord = makecustomrecord(qstring("my.rim.com"), QString("myrecordtype"), tagdata); rc = nfc_create_ndef_message(&_emulatendefmessage); rc = nfc_add_ndef_record(_emulatendefmessage, ndefrecord); rc = nfc_start_ndef_tag_emulation(_emulatendefmessage);...

39 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards APIs & Built-in Apps Support

40 What is it? Read data from physical (plastic) contactless cards Right into your application Reduce manual data entry e.g., credit card number Make card usage tracking more convenient e.g., view card use history or balance on BlackBerry 10 smart phone

41 What can you do with it? 1. Card details required 2. User presents contactless card 3. App reads details from card and completes form

42 How do you do this? Exactly *how* depends on the card type A credit card is not the same as an ID card Transit cards are not all the same Exchange APDUs with the card Response APDUs will contain the data you want You have to send the right command APDUs though Touch card to BlackBerry to fill in form Details for credit cards are defined in the EMV specifications

43 How do you do this? Touch handset to a card BlackBerry 10 App acts as reader APDU conversation with card yields data User delighted with result of your thoughtful feature

44 Code Example... rc = nfc_register_tag_readerwriter(tag_type_iso_14443_4);... nfc_tag_transceive(target, TAG_TYPE_ISO_14443_4, the_apdu, apdu_size, response, MAX_RESPONSE_SIZE, &rlength);...

45 Amsterdam Travel Pass Touch handset to Transit Card BlackBerry 10 App acts as reader APDU conversation with Transit Card Review your last two transactions

46 NFC APIs APIs R/W API NDEF Write/Read (Invocation Framework) ISO14-4 ISO14-3 ISO14-3 Raw ISO15-3 P2P API NDEF send/receive (Invocation Framework) ISO18 VCE API ISO14-4 UICC CE API SIM Access Transaction NTF

47 NFC Apps Support (Built in) Apps supporting NFC (implicit, explicit) out-of-the-box: SmartTags Contacts Browser Gallery (Pictures, Video, Music Player) DocToGo File Manager Calendar Adobe Reader Email BBM AppWorld Call

48 CONTENTS What is NFC? (skipped for this audience!) NFC Tags Peer to Peer Card Emulation Virtual Target (Host Card) Emulation Reading Contactless Cards APIs & Built-in Apps Support

49 NFC Developer Resources Articles http://tinyurl.com/cqfzf7y Code https://github.com/blackberry/cascades-community-samples Contacts Martin Woolley @mdwrim John Murray @jcmrim Rob P Williams @robbiedubya

50 Questions & Answers Articles http://tinyurl.com/cqfzf7y Code https://github.com/blackberry/cascades-community-samples Contacts Martin Woolley @mdwrim John Murray @jcmrim Rob P Williams @robbiedubya Larry McDonough @lmcdunna

51 Thank You

52 High Level Architecture Native C/C++/Qt Application Developers Web Application Developers Community and Content Developers UI Framework BlackBerry Cascades HTML5, CSS, JavaScript Web Frameworks Platform, device and cloud APIs Android Runtime Gaming Platforms BlackBerry 10 OS Multithreading Memory Mgmt Security Graphics Sensors.