Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bringing Cognitive Capabilities to Android

Bringing Cognitive Capabilities to Android

In this workshop we are going to focus on mobile development by bringing up cognitive computing capabilities to Android using IBM Watson.

Join me on this fun journey and let's walk together through a real case application implementation using best practices.


Fernando Cejas

February 07, 2018

More Decks by Fernando Cejas

Other Decks in Programming


  1. Bringing cognitive capabilities to Android Workshop: Android Chabot - @fernando_cejas

  2. I am Fernando Cejas Developer Advocate IBM I am here

    because I love to share experiences and disasters I have made in my professional life... You can find me at @fernando_cejas or http://fernandocejas.com
  3. Why this workshop?

  4. Chatbot use cases: ▪ Customer service/support. ▪ Simple transactions automation.

    ▪ User engagement. ▪ Marketing campaigns. ▪ Many more...
  5. Watson Conversation Watson Conversation is a platform that provides developers

    with the ability to create intelligent chatbots that are able to understand natural language and respond to human intents.
  6. Documentation: https://www.ibm.com/watson/services/ conversation/

  7. Watson Conversation Building Blocks

  8. What are entities? Entities represent a class of object or

    a data type that is relevant to a user's purpose. By recognizing the entities that are mentioned in the user's input, the Conversation service can choose the specific actions to take to fulfill an intent. Watson Entities https://console.bluemix.net/docs/services/conversation/entities.html#defining-entities
  9. What are intents? Intents are purposes or goals expressed in

    a customer's input, such as answering a question or processing a bill payment. By recognizing the intent expressed in a customer's input, the Conversation service can choose the correct dialog flow for responding to it. Watson Intents https://console.bluemix.net/docs/services/conversation/intents.html#defining-intents
  10. What are dialogs? The dialog uses the intents and entities

    that are identified in the user's input, plus context from the application, to interact with the user and ultimately provide a useful response. Watson Dialogs https://console.bluemix.net/docs/services/conversation/dialog-overview.html#dialog-overvie w
  11. Watson Panel DEMO

  12. Getting started: https://ibm.biz/oop2018

  13. Watson API DEMO

  14. Documentation: Watson API explorer: https://watson-api-explorer.mybluemix.net/apis/conversation-v 1 Watson API reference: https://www.ibm.com/watson/developercloud/dialog/api/v1/

  15. Android & Kotlin Let’s build our app using a modern

    and cool language.
  16. Clean Architecture ▪ Independent of frameworks. ▪ Testable. ▪ Independent

    of UI. ▪ Independent of Database. ▪ Independent of any external agency.
  17. 1.

  18. 2.

  19. 3.

  20. 4.

  21. 5.

  22. Please show me the code! Getting our hands dirty Let’s

    download the repo and start diving into the code by compiling and building the sample app. Framework Let’s explore the already written code and dive deeper understanding clean architecture at code level. Writing the code We will write code for our use cases in our application by reusing components and writing tests..
  23. Github repo: https://github.com/android10/Workshop -Android-Chatbot Download or clone the repo: -

    git clone git@github.com:android10/Workshop-Android-Chatbot.git - ./gradlew clean assembleDebug (from working directory)
  24. References: Sample code: https://github.com/android10/Android-Cognitive-Samples Watson API explorer: https://watson-api-explorer.mybluemix.net/apis/conversation-v1 Watson API

    reference: https://www.ibm.com/watson/developercloud/dialog/api/v1/ Watson API documentation: https://www.ibm.com/watson/developercloud/conversation/api/v1/#apiexplorer Watson Conversation Java SDK: https://github.com/watson-developer-cloud/java-sdk/tree/develop/conversation
  25. Thanks! Any questions? You can find me at ▪ @fernando_cejas

    ▪ http://www.fernandocejas.co m