For my intensive proactive medical plan and self-study of my health, I have chosen to use MyFitnessPal. I chose this app based upon the research conducted by Consumer Reports. I appreciate that it has a large database, and also its Android app includes a UPC look-up which makes data entry quicker, and thus reduces one barrier to data entry. Although, I wish they had a paid app that did not have all the advertisements.
I also do not like that it does not have a built-in data export feature, and the web page that a user created to Export MyFitnessPal data to CSV only includes each day’s summary, which I don’t feel is detailed enough for me to be able to do the forms of analysis I would like. So this has led me to attempt to see if I could get the data more directly. The Android app stores both the master database of all foods and the personal database of what I have consumed in an SQLite database, but most of the relevant information is encoded in a field that just contains hexadecimal digits, and I was not able to easily find a way to decode it. Thus I will probably invest my time in programming a “scraper” that can go through the log of what I have consumed, and then automatically go to the website of MyFitnessPal’s Food Database, and look-up what I ate, retrieving the full nutritional information that I can use in my analysis. This will be a good project for me, as I know that for my doctoral thesis, I will also need to use a scraper to get some of the data that I need for it.