Android and Beeminder and Tasker

Monday, December 2, 2013
By dreeves

a bee android thingy

We released a 2.x version of the Android App in the last couple weeks, and we’re so excited that we just cannot hide it! Things have improved immensely since we officially released our smartphone apps over a year ago and we figured that not only is this latest release [1] worthy of some considerable fanfare, but also that it would be a good idea to let people know what’s possible with it. Because it’s probably more than you think.

Improvements and Changelog

Most importantly, for those who’ve been using this since the 1.x days, the slowness and frustration and uncertainty about whether it was showing stale info or whether datapoints made it through is gone. Proper push syncing is implemented so changes usually show up in the app in real time, and when you submit datapoints via the app they show up red until they they make it to the server. Just make sure you get your device online once in a while.

We won’t bore you with the full list of tweaks and fixes but you can see the complete changelog in the app itself — under Settings → About Beeminder → ChangeLog. It’s pretty impressive. And all thanks to Uluç Saranlı, by the way, who has put in close to 700 hours on it at this point.

Aside: Uluç is my friend from grad school, now a professor of robotics, tied with David Yang for most brilliant programmer I’ve ever met, and we’re ridiculously lucky that he got excited enough about Beeminder to dive in with us by taking on the Android app. He’s helped with some of the trickiest graph plotting bits as well, not to mention the Mathematica to Python/Matplotlib port. Next, of course, is our robot drone army.

Tasker / Submission API

Possibly the most exciting thing about the Beeminder Android app now, for supernerds anyhow, is that it exposes a submission API to other apps. This is sweet if you want to build your own custom widnozzle to submit your nozz-whuts to Beeminder. We’ve open-sourced our Beeminder Android API library — still rough around the edges. Let us know if you want integrate Beeminder into your own app.

“Do things like automatically mind your sleep based on how long your phone’s display is off at night.”

Or if you use Tasker, you can already do this, no programming required. Tasker is like IFTTT for your Android. It exposes triggers and events that you can string together kind of like a recipe. It lets you plug in Beeminder as the event portion of a recipe, and so you can do things like automatically mind your sleep based on how long your phone’s display is off at night, or start a timer every time you launch Candy Crush Saga, and stop and submit the datapoint every time you quit the app. Beeminder actions currently appear under the “Plugin” section of Tasker’s task editing screen. Beeminder conditions are soon to arrive so you can trigger actions when your goals get within their panic time.

Apart from Tasker, we have an integration with one other Android app, namely, our own TagTime. Every time you answer a TagTime ping, it can send that to Beeminder.

Manual Data Entry

We need to figure out how to make this more discoverable but since you’re reading this we can now tell you: By swiping at the data entry box, you can use different methods to submit data to Beeminder.

Direct entry
This is the default at the bottom of the goal details view. Pro Tip: if you press the date or the value you enter them directly, instead of just using the + / – below them.
Tally entry
Swipe the data entry area right (see the narrow yellow rectangles?) and then tap the counter. Now you can increment the count by touching anywhere on the screen. I use this to do pushups by putting my phone on the floor and touching my nose to it on each pushup. Use the back button to submit the data.
Timer entry
Swipe the data entry area again. Tap to start the timer. Tap again to stop and submit the data. You could use this for tracking time sleeping to Pomodoros to planking. Pro Tip: you don’t have to stay in the app — if you leave the timer keeps running, use the notification item to get back to the timer and stop it. (Or of course set up a Tasker task to automatically stop it when you, say, leave the house, or put your phone down on its face or whatnot.)

The timer in particular is new, and it is useful for so many things! You can track time spent: sleeping, walking, working, cleaning, studying, running errands, and pretty much anything else you can think of.

Beeminder Android app screenshot of the timer data entry screen


You can add as many Beeminder widgets as you want to your home screen, showing you what color your goals are and how much more you need to do for each. When you add a widget to your screen, you can also set a default value for it, so that when pressing on it delivers you to the goal page, the default amount to be entered is pre-filled. We think the widgets are pretty great as a sort of personal dashboard, or ambient aweness of the state of your goals. Seeing a lot of red on your home screen should, rightly, induce some unease, and lots of green means party time.

Beeminder Android app screenshot of example widgets on the homescreen

Other Goodies You May Not Have Noticed

  • You can view the entire list of datapoints, edit, and delete them. Use the menu button (or three stacked dots) in the goal details view.
  • Long press on the goal in the gallery list to skip straight to settings or road dial. [2]
  • Toggle auto-comments in the app’s settings.
  • Log in to multiple accounts, inspect their goals, and create widgets for all of them in parallel.
  • Send feedback via the app, with diagnostic info (if you encounter a blatant bug and send feedback with diagnostic info included there’s a good chance we’ll be able to figure it out and fix it).

P.S. To our iPhone users: We hate to say it, but the Android app is currently far superior. Andy Brett says we can put his reputation on the line here and put him publicly on the hook to release a new version of the iPhone app by New Years.



[1] If version 1 of the Android app was Marvin the Paranoid Android, this one is like Data… or C3P0! Version 3 will be Optimus Prime, and version 4 will be Skynet.

[2] We’ll probably drop the road dial from the next version of the Android app. Holler if you use it a lot and would find it annoying to have to go to the website to dial your road!


Image credit:

Tags: , , , , , ,

  • pankajmore

    The timer auto-submits a 30 minute task as 0.5 , not 30. Every timer entry is scaled in number of hours. But my existing goals are in minutes. So, I have to edit my data point and multiply it by 60 to get the correct scaling. Is it possible to do it automatically?

  • Daniel Reeves

    There is now! Check out the new scalar-transform thing in advanced settings. Basically, you want to multiply all your datapoints by 1/60 = .0166666666667 to convert from Minutes to Hours. Then the Android timer will work as expected.

    If you really want to stay denominated in Minutes, let us know. If you’re not alone we also may want to just make this an option in Android app settings so you can choose how it submits the data.

  • pankajmore

    That’s gud enough! Thanks :)

  • pankajmore

    Except for some goals, minutes denomination is better. I am tracking the amount of time spent squatting. The data points are in the range 2-5 minutes. And its hour denomination is basically meaningless to my non-arithmetic mind :) The data points individually become quite meaningless and less motivating.

  • pankajmore

    After a scalar transform, the data points in the android app still show the old values. Maybe a bug!

  • saranli

    Forcing a sync on the goal detail page should refetch datapoints. Otherwise, signing out and logging back in within the app should definitely solve the issue. The unit change feature is still in its infancy and does not yet force the app to refetch the datapoints.

  • Burt Vilagi

    Playing around with the tasker plugin, but can’t figure out how to pass a variable from tasker to beeminder. For example, when I try to enter %task (after giving it a value in previous step) I cannot enter a % or text in the submit value field. Am I missing something?

  • David Butler

    When will the functionality of Beeminder 2.x version be available in ios 7 for the iPhone 5??

  • Matthew

    It’s New Years and I see no new iPhone app…

  • Daniel Reeves

    Andy should totally have beeminded that! Apologies to iPhone people, and thanks so much for the patience.

  • Daniel Reeves

    Right now we’re actually just trying to get a bugfix release out for iPhone, not trying to get feature parity with the Android version, awesome as that would be.

  • cg

    To be honest I’m not certain I fully understand what the road dial does.

  • Mike R

    Just rediscovering this feature, and the restriction to hours. It occurs to me that in the goal settings I have a place to enter the “units” for the Y-axis. Perhaps the app can read this and act accordingly if the units are “minutes”