Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Contextual communications and why you should care - Droidcon DE

1,540 views

Published on

Communication is the key to everything. From the time you wake up and and press a button on your coffee-machine to tell you to make you a coffee, to when you talk to your other half to make plans for a night out, a trip or your own wedding. Imagine a world where each time when you wanted to do your grocery shopping, you first had to stop at the bank to make sure the funds were clear. Or whenever you wanted to drive from home to work you had to first stop at a petrol station to check whether your car had enough petrol to make the journey.

In this talk I will show you some common scenarios where we are currently doing just that with our websites or mobile apps and not even thinking about it. We will then look at some ways we can avoid that and bring context back onto our applications.

Published in: Mobile
  • Be the first to comment

  • Be the first to like this

Contextual communications and why you should care - Droidcon DE

  1. 1. STOP
  2. 2. PUSHING
  3. 3. USERS
  4. 4. AWAY!
  5. 5. Contextual communications and why you should care <Say>Hello #DroidconDE!</Say> marcos@twilio.com Developer Evangelist @ Twilio @marcos_placona
  6. 6. >7.2bn A few numbers @marcos_placona
  7. 7. @marcos_placona
  8. 8. @marcos_placona
  9. 9. Contacting experience @marcos_placona
  10. 10. Contacting experience @marcos_placona
  11. 11. Contacting experience @marcos_placona
  12. 12. @marcos_placona
  13. 13. @marcos_placona
  14. 14. @marcos_placona
  15. 15. Contacting experience @marcos_placona
  16. 16. 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
  17. 17. @marcos_placona
  18. 18. 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
  19. 19. 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
  20. 20. Demo Time @marcos_placona
  21. 21. @marcos_placona
  22. 22. @marcos_placona
  23. 23. @marcos_placona
  24. 24. @marcos_placona
  25. 25. 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
  26. 26. 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
  27. 27. @marcos_placona
  28. 28. Demo Time @marcos_placona
  29. 29. Bots?
  30. 30. @marcos_placona
  31. 31. @marcos_placona
  32. 32. @marcos_placona
  33. 33. @marcos_placona
  34. 34. Demo Time @marcos_placona
  35. 35. @marcos_placona
  36. 36. @marcos_placona
  37. 37. ~100 Lines ~350 Lines ~750 Lines @marcos_placona
  38. 38. @marcos_placona
  39. 39. github.com/mplacona marcos@twilio.com Developer Evangelist @ Twilio Questions?

×