SlideShare a Scribd company logo
STOP
PUSHING
USERS
AWAY!
Contextual communications and why you should care
<Say>Hello #DevTalksCluj!</Say>
@marcos_placona
marcos@twilio.com
Developer Evangelist @ Twilio
>7.2bn
A few numbers
@marcos_placona
@marcos_placona
@marcos_placona
Contacting experience
@marcos_placona
Contacting experience
@marcos_placona
Contacting experience
@marcos_placona
@marcos_placona
@marcos_placona
@marcos_placona
Contacting experience
@marcos_placona
intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "1234567890"));

if (ActivityCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CALL_PHONE) !=
PackageManager.PERMISSION_GRANTED) {

startActivity(intent);

}
<uses-permission android:name="android.permission.CALL_PHONE" />
@marcos_placona
Android
@marcos_placona
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

builder.setMessage("Calling...")

.setCancelable(false)

.setPositiveButton("Hang-up", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

phone.disconnect();

}

});

AlertDialog alert = builder.create();

alert.show();



phone.connect("+1234567890");
@marcos_placona
Android
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

builder.setMessage("Calling...")

.setCancelable(false)

.setPositiveButton("Hang-up", new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int id) {

phone.disconnect();

}

});

AlertDialog alert = builder.create();

alert.show();



phone.connect("+1234567890");
@marcos_placona
Android
Demo Time
@marcos_placona
@marcos_placona
@marcos_placona
@marcos_placona
@marcos_placona
try {

getApplicationContext().getPackageManager().getPackageInfo("com.facebook.katana", 0);

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>")));

} catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}
@marcos_placona
Android
try {

getApplicationContext().getPackageManager().getPackageInfo("com.facebook.katana", 0);

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("fb://page/<id_here>")));

} catch (PackageManager.NameNotFoundException e) {

startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.facebook.com/<user_name_here>")));

}
@marcos_placona
Android
@marcos_placona
Demo Time
@marcos_placona
Bots?
@marcos_placona
@marcos_placona
@marcos_placona
@marcos_placona
Demo Time
@marcos_placona
@marcos_placona
@marcos_placona
~100 Lines
~350 Lines
~750 Lines
@marcos_placona
@marcos_placona
github.com/mplacona
marcos@twilio.com
Developer Evangelist @ Twilio

More Related Content

Similar to Contextual communications and why you should care - Devtalks Cluj

The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
FalafelSoftware
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
Krzysztof Szafranek
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
Sercan Yusuf
 
Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.
Mathias Seguy
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applications
Francois Marier
 
How we integrate & deploy Mobile Apps with Travis CI
How we integrate & deploy Mobile Apps with Travis CIHow we integrate & deploy Mobile Apps with Travis CI
How we integrate & deploy Mobile Apps with Travis CI
Marcio Klepacz
 
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 810 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
Matt Lacey
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
Craig Phares
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklum Ukraine
 
Openstack Nova APIs
Openstack Nova APIs Openstack Nova APIs
Openstack Nova APIs
Stackops
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
Salesforce Developers
 
Your First Adobe Flash Application for Android
Your First Adobe Flash Application for AndroidYour First Adobe Flash Application for Android
Your First Adobe Flash Application for Android
Motorola Mobility - MOTODEV
 
TDC2013: Arquitetura de apps com Sencha Touch 2
TDC2013: Arquitetura de apps com Sencha Touch 2TDC2013: Arquitetura de apps com Sencha Touch 2
TDC2013: Arquitetura de apps com Sencha Touch 2
Loiane Groner
 
BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...
Microsoft Décideurs IT
 
BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...
Microsoft Technet France
 
SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)
Priyanka Aash
 
Look Who's Talking
Look Who's TalkingLook Who's Talking
Look Who's Talking
Pablo Cantero
 
Phone gap android plugins
Phone gap android pluginsPhone gap android plugins
Phone gap android plugins
Simon MacDonald
 
Gradle for Android Developers
Gradle for Android DevelopersGradle for Android Developers
Gradle for Android Developers
Josiah Renaudin
 

Similar to Contextual communications and why you should care - Devtalks Cluj (20)

The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
The Hitchhicker’s Guide to Windows Azure Mobile Services | FalafelCON 2014
 
JavaScript Refactoring
JavaScript RefactoringJavaScript Refactoring
JavaScript Refactoring
 
Getting your app ready for android n
Getting your app ready for android nGetting your app ready for android n
Getting your app ready for android n
 
Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.Voyage en monde Android. Trucs et astuces tout au long de la route.
Voyage en monde Android. Trucs et astuces tout au long de la route.
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applications
 
How we integrate & deploy Mobile Apps with Travis CI
How we integrate & deploy Mobile Apps with Travis CIHow we integrate & deploy Mobile Apps with Travis CI
How we integrate & deploy Mobile Apps with Travis CI
 
10 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 810 tips for porting to Windows Phone 8
10 tips for porting to Windows Phone 8
 
Bootstrapping an App for Launch
Bootstrapping an App for LaunchBootstrapping an App for Launch
Bootstrapping an App for Launch
 
CiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForceCiklumJavaSat_15112011:Alex Kruk VMForce
CiklumJavaSat_15112011:Alex Kruk VMForce
 
Openstack Nova APIs
Openstack Nova APIs Openstack Nova APIs
Openstack Nova APIs
 
Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
Introduction to AngularJS
Introduction to AngularJSIntroduction to AngularJS
Introduction to AngularJS
 
Your First Adobe Flash Application for Android
Your First Adobe Flash Application for AndroidYour First Adobe Flash Application for Android
Your First Adobe Flash Application for Android
 
TDC2013: Arquitetura de apps com Sencha Touch 2
TDC2013: Arquitetura de apps com Sencha Touch 2TDC2013: Arquitetura de apps com Sencha Touch 2
TDC2013: Arquitetura de apps com Sencha Touch 2
 
BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...
 
BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...BI temps réel et notifications en situation de mobilité à partir d'objets con...
BI temps réel et notifications en situation de mobilité à partir d'objets con...
 
SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)SACON - Mobile App Security (Srinath Venkataramani)
SACON - Mobile App Security (Srinath Venkataramani)
 
Look Who's Talking
Look Who's TalkingLook Who's Talking
Look Who's Talking
 
Phone gap android plugins
Phone gap android pluginsPhone gap android plugins
Phone gap android plugins
 
Gradle for Android Developers
Gradle for Android DevelopersGradle for Android Developers
Gradle for Android Developers
 

Recently uploaded

欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
andreassenrolf537
 
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
arcosarturo900
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
aozcue
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
peuce
 
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
Peter Gallagher
 
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDARLORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
lorraineandreiamcidl
 
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
aozcue
 
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdfSchematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
nikoloco007
 

Recently uploaded (8)

欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
欧洲杯冠军-欧洲杯冠军网站-欧洲杯冠军|【​网址​🎉ac123.net🎉​】领先全球的买球投注平台
 
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
天博体育下载-可靠的网络天博体育下载-网络天博体育下载|【​网址​🎉ac123.net🎉​】
 
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
一比一原版(IIT毕业证)伊利诺伊理工大学毕业证如何办理
 
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
一比一原版(UMich毕业证)密歇根大学|安娜堡分校毕业证如何办理
 
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
Building a Raspberry Pi Robot with Dot NET 8, Blazor and SignalR - Slides Onl...
 
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDARLORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
LORRAINE ANDREI_LEQUIGAN_GOOGLE CALENDAR
 
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
一比一原版(UCSB毕业证)圣塔芭芭拉社区大学毕业证如何办理
 
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdfSchematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
Schematic Diagram MSI MS-7309 - REV 1.0 PDF .pdf
 

Contextual communications and why you should care - Devtalks Cluj