SlideShare une entreprise Scribd logo
1  sur  13
Télécharger pour lire hors ligne
Integrating Clouds &
Humans with Wearable Apps
@_JamesWard
Salesforce.com
Salesforce Wear Developer
Packs
• Six Open Source Developer Packs
developer.salesforce.com/wear
• Android Wear, Google Glass, Pebble, Samsung
Gear, Myo, Nymi
• Getting Started Guides, Sample Apps, and
architecture overviews
Android Wear
• Android-based Wearable SDK
developer.android.com/wear
• Wearables as companions to Android Phones
• Glanceable notifications & interactions
• Phones push to wearables
• Moto360 & LG G
Salesforce Wear Developer
Pack for Android Wear
• Quote Discount Approval Sample
• Native Android Phone App
• Salesforce Mobile Push
• Gradle Build
Sample: Quote Discount Approval
Sales Rep
Discount >= 20%
trigger QuoteApproval on Quote (before insert, before update) {
One beautiful Gradle build does everything (almost)
• Salesforce Metadata Deploy
$ ./gradlew forceMetadataDeploy
• Dependency Management
dependencies {
compile "com.force:SalesforceSDK:2.1.1-3"
compile "com.android.support:support-v4:19.+"
compile files("libs/wearable-preview-support.jar")
}
• Builds & runs the app
$ ./gradlew installDebug
Architecture
• Salesforce
• Quotes on Opportunities
• Approval Workflow: Quote with Discount >= 20% requires approval from
manager
• Trigger on Quote update/insert: creates approval process & sends mobile
push message
• Android Phone App
• Receives push message
• Creates notification on watch
• Handles watch actions (Approve, Reject, Open)
Code Highlights - Trigger
Messaging.PushNotification msg = new Messaging.PushNotification();
!
Map<String, Object> payload = new Map<String, Object>();
payload.put('ownerName', owner.Name);
...
msg.setPayload(payload);
!
String userId = result.actorIds[0];
Set<String> users = new Set<String>();
users.add(userId);
!
msg.send('QuoteDiscountApproval', users);
Code Highlights - Push Receiver
public class QPN implements PushNotificationInterface {
!
@Override
public void onPushMessageReceived(final Bundle bundle) {
!
final QM quoteMessage = new QM(bundle);
!
...
}
!
}
!
!
SalesforceSDKManager.getInstance()
.setPushNotificationReceiver(new QPM(this));
Code Highlights - Wear Notification
WearableNotifications.Builder wearableBuilder = new
WearableNotifications.Builder(mainNotification);
!
wearableBuilder
.addPage(detailNotification)
.addAction(rejectAction);
!
mainNotification
.setContentIntent(openPendingIntent);
!
NotificationManagerCompat.from(context)
.notify(1, wearableBuilder.build());
Code Highlights - Approve or Reject
JSONObject approvalRequest = new JSONObject();
approvalRequest.put("actionType", action);
approvalRequest.put("contextId", workItemId);
approvalRequest.put("comments", comments);
!
JSONArray requests = new JSONArray();
requests.put(approvalRequest);
!
JSONObject json = new JSONObject();
json.put("requests", requests);
!
StringEntity entity = new StringEntity(json.toString(), HTTP.UTF_8);
entity.setContentType("application/json");
!
String url = "/services/data/" + c.getString(R.string.api_version) + "/process/approvals/";
!
final RestRequest restRequest = new RestRequest(RestRequest.RestMethod.POST, url, entity);
!
QuoteDiscountApprovalSetup.client.sendAsync(restRequest,
new RestClient.AsyncRequestCallback() {
@Override
public void onSuccess(RestRequest request, RestResponse result) { }
!
@Override
public void onError(Exception exception) { }
}
);
https://github.com/
developerforce/
WearablePack-AndroidWear

Contenu connexe

Tendances

[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...Naoki (Neo) SATO
 
David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider
 
Jumpstart your ASP.NET Project Development with Sitefinity Platform
Jumpstart your ASP.NET Project Development with Sitefinity PlatformJumpstart your ASP.NET Project Development with Sitefinity Platform
Jumpstart your ASP.NET Project Development with Sitefinity PlatformLohith Goudagere Nagaraj
 
Azure for a Design and User Experience (DUX) teams
Azure for a Design and User Experience (DUX) teamsAzure for a Design and User Experience (DUX) teams
Azure for a Design and User Experience (DUX) teamsEmma Woods
 
Azure Event Grid - Serverless integration in Azure
Azure Event Grid - Serverless integration in AzureAzure Event Grid - Serverless integration in Azure
Azure Event Grid - Serverless integration in AzureBizTalk360
 
Adobe Creative Cloud -myytinmurtajaiset
Adobe Creative Cloud -myytinmurtajaisetAdobe Creative Cloud -myytinmurtajaiset
Adobe Creative Cloud -myytinmurtajaisetSovelto
 
Cloud-enabling the Next Generation of Mobile Apps
Cloud-enabling the Next Generation of Mobile AppsCloud-enabling the Next Generation of Mobile Apps
Cloud-enabling the Next Generation of Mobile AppsNick Landry
 
Building native quality business apps
Building native quality business appsBuilding native quality business apps
Building native quality business appsGizmox
 
Building Mobile Cross-Platform Apps with the Cloud and Push Notifications
Building Mobile Cross-Platform Apps with the Cloud and Push NotificationsBuilding Mobile Cross-Platform Apps with the Cloud and Push Notifications
Building Mobile Cross-Platform Apps with the Cloud and Push NotificationsNick Landry
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overviewWithTheBest
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthWaldyr Felix
 
Cloud based mobile app development cit 2017
Cloud based mobile app development cit 2017Cloud based mobile app development cit 2017
Cloud based mobile app development cit 2017Praveen Hanchinal
 
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSJeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSAxway Appcelerator
 
Open Source Projects by VMware
Open Source Projects by VMwareOpen Source Projects by VMware
Open Source Projects by VMwareMotonori Shindo
 
How to Build a Startup with Serverless Technologies
How to Build a Startup with Serverless TechnologiesHow to Build a Startup with Serverless Technologies
How to Build a Startup with Serverless TechnologiesMatthiasPichler2
 
Best Tools for Business
Best Tools for BusinessBest Tools for Business
Best Tools for BusinessNick Landry
 
Building a Node.js Backend in the Cloud for Android Apps
Building a Node.js Backend in the Cloud for Android AppsBuilding a Node.js Backend in the Cloud for Android Apps
Building a Node.js Backend in the Cloud for Android AppsNick Landry
 

Tendances (20)

[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
[API Meetup Tokyo #7 ~PaaSとAPIスペシャル~] AzureでMobile / Webアプリのサーバー側をAPI化 (Azure...
 
David Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive ServicesDavid Schneider: Sort your (child's) Legos with Cognitive Services
David Schneider: Sort your (child's) Legos with Cognitive Services
 
Wijmo 2013v1
Wijmo 2013v1Wijmo 2013v1
Wijmo 2013v1
 
Jumpstart your ASP.NET Project Development with Sitefinity Platform
Jumpstart your ASP.NET Project Development with Sitefinity PlatformJumpstart your ASP.NET Project Development with Sitefinity Platform
Jumpstart your ASP.NET Project Development with Sitefinity Platform
 
Azure for a Design and User Experience (DUX) teams
Azure for a Design and User Experience (DUX) teamsAzure for a Design and User Experience (DUX) teams
Azure for a Design and User Experience (DUX) teams
 
Azure Event Grid - Serverless integration in Azure
Azure Event Grid - Serverless integration in AzureAzure Event Grid - Serverless integration in Azure
Azure Event Grid - Serverless integration in Azure
 
Adobe Creative Cloud -myytinmurtajaiset
Adobe Creative Cloud -myytinmurtajaisetAdobe Creative Cloud -myytinmurtajaiset
Adobe Creative Cloud -myytinmurtajaiset
 
Cloud-enabling the Next Generation of Mobile Apps
Cloud-enabling the Next Generation of Mobile AppsCloud-enabling the Next Generation of Mobile Apps
Cloud-enabling the Next Generation of Mobile Apps
 
Developer Experience on AWS
Developer Experience on AWSDeveloper Experience on AWS
Developer Experience on AWS
 
Building native quality business apps
Building native quality business appsBuilding native quality business apps
Building native quality business apps
 
Building Mobile Cross-Platform Apps with the Cloud and Push Notifications
Building Mobile Cross-Platform Apps with the Cloud and Push NotificationsBuilding Mobile Cross-Platform Apps with the Cloud and Push Notifications
Building Mobile Cross-Platform Apps with the Cloud and Push Notifications
 
Omnivirt overview
Omnivirt overviewOmnivirt overview
Omnivirt overview
 
ASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic AuthASP.NET WebAPI HTTP Basic Auth
ASP.NET WebAPI HTTP Basic Auth
 
Cloud based mobile app development cit 2017
Cloud based mobile app development cit 2017Cloud based mobile app development cit 2017
Cloud based mobile app development cit 2017
 
Wise Emotions
Wise Emotions Wise Emotions
Wise Emotions
 
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaSJeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
Jeremy Glassenberg: Using Titanium to Connect to Enterprise SaaS
 
Open Source Projects by VMware
Open Source Projects by VMwareOpen Source Projects by VMware
Open Source Projects by VMware
 
How to Build a Startup with Serverless Technologies
How to Build a Startup with Serverless TechnologiesHow to Build a Startup with Serverless Technologies
How to Build a Startup with Serverless Technologies
 
Best Tools for Business
Best Tools for BusinessBest Tools for Business
Best Tools for Business
 
Building a Node.js Backend in the Cloud for Android Apps
Building a Node.js Backend in the Cloud for Android AppsBuilding a Node.js Backend in the Cloud for Android Apps
Building a Node.js Backend in the Cloud for Android Apps
 

Similaire à Integrating Clouds & Humans with Wearable Apps

Drupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serveDrupal%2 c mobility and m2serve
Drupal%2 c mobility and m2servelittleMAS
 
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.comJeff Douglas
 
Google Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentGoogle Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentOleksandr Stepanov
 
See Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSee Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSalesforce Developers
 
From Containerization to Modularity
From Containerization to ModularityFrom Containerization to Modularity
From Containerization to Modularityoasisfeng
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterpriseappnotch
 
Building Hybrid Mobile Apps for AppExchange
Building Hybrid Mobile Apps for AppExchangeBuilding Hybrid Mobile Apps for AppExchange
Building Hybrid Mobile Apps for AppExchangeSalesforce Developers
 
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementFrome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementSujay Pillai
 
Gartner IT Symposium 2014 - VMware Cloud Services
Gartner IT Symposium 2014 - VMware Cloud ServicesGartner IT Symposium 2014 - VMware Cloud Services
Gartner IT Symposium 2014 - VMware Cloud ServicesPhilip Say
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynotePieter Brinkman
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with SpringRoy Clarkson
 
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012Big Data Spain
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksSanjeev Sharma
 
Jump start your Rapid Application Delivery with WaveMaker
Jump start your Rapid Application Delivery with WaveMakerJump start your Rapid Application Delivery with WaveMaker
Jump start your Rapid Application Delivery with WaveMakerWaveMaker, Inc.
 
Comment déployer et gérer dans le cloud Azure les environnements de développe...
Comment déployer et gérer dans le cloud Azure les environnements de développe...Comment déployer et gérer dans le cloud Azure les environnements de développe...
Comment déployer et gérer dans le cloud Azure les environnements de développe...Microsoft Technet France
 
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
 
Worklight mobile v6
Worklight mobile v6 Worklight mobile v6
Worklight mobile v6 GameStop
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with AzureShahed Chowdhuri
 

Similaire à Integrating Clouds & Humans with Wearable Apps (20)

Drupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serveDrupal%2 c mobility and m2serve
Drupal%2 c mobility and m2serve
 
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
 
Google Wear OS watch faces and applications development
Google Wear OS watch faces and applications developmentGoogle Wear OS watch faces and applications development
Google Wear OS watch faces and applications development
 
See Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear WatchSee Androids Fighting: Connect Salesforce with Your Android Wear Watch
See Androids Fighting: Connect Salesforce with Your Android Wear Watch
 
From Containerization to Modularity
From Containerization to ModularityFrom Containerization to Modularity
From Containerization to Modularity
 
AppNotch Enterprise
AppNotch EnterpriseAppNotch Enterprise
AppNotch Enterprise
 
Building Hybrid Mobile Apps for AppExchange
Building Hybrid Mobile Apps for AppExchangeBuilding Hybrid Mobile Apps for AppExchange
Building Hybrid Mobile Apps for AppExchange
 
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure ManagementFrome Code to Cloud: Exploring AWS CDK for Infrastructure Management
Frome Code to Cloud: Exploring AWS CDK for Infrastructure Management
 
Gartner IT Symposium 2014 - VMware Cloud Services
Gartner IT Symposium 2014 - VMware Cloud ServicesGartner IT Symposium 2014 - VMware Cloud Services
Gartner IT Symposium 2014 - VMware Cloud Services
 
Digital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynoteDigital Experience is a teamsport - Sitecore User Group Conference keynote
Digital Experience is a teamsport - Sitecore User Group Conference keynote
 
Native Android Development with Spring
Native Android Development with SpringNative Android Development with Spring
Native Android Development with Spring
 
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012
Putting Hadoop on any Cloud. NATI SHALOM at Big Data Spain 2012
 
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
 
Jump start your Rapid Application Delivery with WaveMaker
Jump start your Rapid Application Delivery with WaveMakerJump start your Rapid Application Delivery with WaveMaker
Jump start your Rapid Application Delivery with WaveMaker
 
Par208
Par208Par208
Par208
 
Comment déployer et gérer dans le cloud Azure les environnements de développe...
Comment déployer et gérer dans le cloud Azure les environnements de développe...Comment déployer et gérer dans le cloud Azure les environnements de développe...
Comment déployer et gérer dans le cloud Azure les environnements de développe...
 
Hello Cloud
Hello CloudHello Cloud
Hello Cloud
 
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
 
Worklight mobile v6
Worklight mobile v6 Worklight mobile v6
Worklight mobile v6
 
Capture the Cloud with Azure
Capture the Cloud with AzureCapture the Cloud with Azure
Capture the Cloud with Azure
 

Plus de James Ward

Kotlin Mullets
Kotlin MulletsKotlin Mullets
Kotlin MulletsJames Ward
 
Koober Machine Learning
Koober Machine LearningKoober Machine Learning
Koober Machine LearningJames Ward
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine LearningJames Ward
 
Salesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroSalesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroJames Ward
 
Salesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedSalesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedJames Ward
 
Salesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeSalesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeJames Ward
 
Building Reactive Apps
Building Reactive AppsBuilding Reactive Apps
Building Reactive AppsJames Ward
 
Planet of the AOPs
Planet of the AOPsPlanet of the AOPs
Planet of the AOPsJames Ward
 

Plus de James Ward (8)

Kotlin Mullets
Kotlin MulletsKotlin Mullets
Kotlin Mullets
 
Koober Machine Learning
Koober Machine LearningKoober Machine Learning
Koober Machine Learning
 
Introduction to Machine Learning
Introduction to Machine LearningIntroduction to Machine Learning
Introduction to Machine Learning
 
Salesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer IntroSalesforce Campus Tour - Developer Intro
Salesforce Campus Tour - Developer Intro
 
Salesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer AdvancedSalesforce Campus Tour - Developer Advanced
Salesforce Campus Tour - Developer Advanced
 
Salesforce Campus Tour - Declarative
Salesforce Campus Tour - DeclarativeSalesforce Campus Tour - Declarative
Salesforce Campus Tour - Declarative
 
Building Reactive Apps
Building Reactive AppsBuilding Reactive Apps
Building Reactive Apps
 
Planet of the AOPs
Planet of the AOPsPlanet of the AOPs
Planet of the AOPs
 

Dernier

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DaySri Ambati
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo DayH2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
H2O.ai CEO/Founder: Sri Ambati Keynote at Wells Fargo Day
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Integrating Clouds & Humans with Wearable Apps

  • 1. Integrating Clouds & Humans with Wearable Apps @_JamesWard Salesforce.com
  • 2.
  • 3. Salesforce Wear Developer Packs • Six Open Source Developer Packs developer.salesforce.com/wear • Android Wear, Google Glass, Pebble, Samsung Gear, Myo, Nymi • Getting Started Guides, Sample Apps, and architecture overviews
  • 4. Android Wear • Android-based Wearable SDK developer.android.com/wear • Wearables as companions to Android Phones • Glanceable notifications & interactions • Phones push to wearables • Moto360 & LG G
  • 5. Salesforce Wear Developer Pack for Android Wear • Quote Discount Approval Sample • Native Android Phone App • Salesforce Mobile Push • Gradle Build
  • 6. Sample: Quote Discount Approval Sales Rep Discount >= 20% trigger QuoteApproval on Quote (before insert, before update) {
  • 7. One beautiful Gradle build does everything (almost) • Salesforce Metadata Deploy $ ./gradlew forceMetadataDeploy • Dependency Management dependencies { compile "com.force:SalesforceSDK:2.1.1-3" compile "com.android.support:support-v4:19.+" compile files("libs/wearable-preview-support.jar") } • Builds & runs the app $ ./gradlew installDebug
  • 8. Architecture • Salesforce • Quotes on Opportunities • Approval Workflow: Quote with Discount >= 20% requires approval from manager • Trigger on Quote update/insert: creates approval process & sends mobile push message • Android Phone App • Receives push message • Creates notification on watch • Handles watch actions (Approve, Reject, Open)
  • 9. Code Highlights - Trigger Messaging.PushNotification msg = new Messaging.PushNotification(); ! Map<String, Object> payload = new Map<String, Object>(); payload.put('ownerName', owner.Name); ... msg.setPayload(payload); ! String userId = result.actorIds[0]; Set<String> users = new Set<String>(); users.add(userId); ! msg.send('QuoteDiscountApproval', users);
  • 10. Code Highlights - Push Receiver public class QPN implements PushNotificationInterface { ! @Override public void onPushMessageReceived(final Bundle bundle) { ! final QM quoteMessage = new QM(bundle); ! ... } ! } ! ! SalesforceSDKManager.getInstance() .setPushNotificationReceiver(new QPM(this));
  • 11. Code Highlights - Wear Notification WearableNotifications.Builder wearableBuilder = new WearableNotifications.Builder(mainNotification); ! wearableBuilder .addPage(detailNotification) .addAction(rejectAction); ! mainNotification .setContentIntent(openPendingIntent); ! NotificationManagerCompat.from(context) .notify(1, wearableBuilder.build());
  • 12. Code Highlights - Approve or Reject JSONObject approvalRequest = new JSONObject(); approvalRequest.put("actionType", action); approvalRequest.put("contextId", workItemId); approvalRequest.put("comments", comments); ! JSONArray requests = new JSONArray(); requests.put(approvalRequest); ! JSONObject json = new JSONObject(); json.put("requests", requests); ! StringEntity entity = new StringEntity(json.toString(), HTTP.UTF_8); entity.setContentType("application/json"); ! String url = "/services/data/" + c.getString(R.string.api_version) + "/process/approvals/"; ! final RestRequest restRequest = new RestRequest(RestRequest.RestMethod.POST, url, entity); ! QuoteDiscountApprovalSetup.client.sendAsync(restRequest, new RestClient.AsyncRequestCallback() { @Override public void onSuccess(RestRequest request, RestResponse result) { } ! @Override public void onError(Exception exception) { } } );