Create an Android calorie-counter app


Built for those familiar with JavaScript and Node.js that are interested in creating a mobile app that interacts with the camera on a mobile device, this developer journey makes use of the Watson Node.js SDK for visual recognition processing. Captured food images are identified and processed so that nutritional information can be generated and displayed.


In this developer pattern, we will create two apps, both using Node.js. The server app will run on IBM Cloud® and will interact with the Watson Visual Recognition service. The Android mobile app, built upon the Cordova mobile framework, will capture food images on the mobile device camera and send them to the server to be identified. Nutritional data about the food item will then be acquired from the Nutritionix API service and displayed back to the user’s mobile device.

When you have completed this pattern, you will understand how to:

  • Create Node.js apps that capture and process food images using Watson services.
  • Use the Cordova mobile framework to build and deploy an Android app to your mobile device.
  • Identify food items from captured images using Watson Visual Recognition.
  • Use Nutritionix APIs to gather nutrition data about food items.



  1. User interacts with the mobile app and captures an image.
  2. The image is passed to the server application, which uses the Watson Visual Recognition Service to analyze the images and Nutritionix API to provide nutritional information.
  3. Data is returned to the Android mobile app for display.


Ready to put this code pattern to use? Complete details on how to get started running and using this application are in the README.