Tuesday, April 16, 2013

Habits question

I've got an interesting question/problem, answer to which would affect how the app will be implemented in one of its part. It's about recurring actions and goals.

The great idea is to add a motivational  feedback to the Goal page. The one that would show you how many actions you have already completed in addition to the total actions count shown there already.

When there are non-recurring actions - no problem, we just count the number of done vs. total and show. But, what should we do when a recurring action is done today, but not the next time its occurrence must appear?

There are two solutions:
1. the simplest - ignore the recurrence, count all actions as simple, non-recurring
2. take recurrence into account. This is not so straightforward to implement.

One might think that the right way would be to go with the second solution. But! There's one nuance - suppose there's an everyday action. The action is done yesterday, but not today. How should the indicator behave? Show 100% for yesterday, but 75% for today (numbers are just for example) ? Isn't this behavior confusing?

Upd.: Another similar issue: when you click a goal as 'reached', all its actions should be set as done. But what should we do with recurring actions? Stop recurrence, delete recurrence?

Any advice?

Monday, March 25, 2013

Habits backup to/from file: small but powerful update.

What have changed:

1. Backup/Restore menu 'Rename/Delete' has been renamed to 'Manage'

2. On the newly renamed 'Manage' page you can now share the backup file by pressing on the backup name and on the 'Share' button on the dialog that follows. Programs that accept files as a sharing item will appear in a choose-dialog. Usually, these are programs like Dropbox. When you choose any of them, the file will be sent.

If a file is sent to Dropbox, it will be synced across all the devices you have your dropbox account activated on.

3. On the 'Restore' page there's a big button with the label 'Restore from file system'. Pressing on it will launch a third-party app that can provide you with a file. This can be any program like Dropbox, file explorer, etc. Using this functionality you can restore to a file backed up in step 2 on another device! This way, you can copy all your stuff from one device to another! 

So, it's quite a small, but very powerful update :). This was  proposed by users long ago and I actually don't know why we hadn't implemented it. Now it's here and we hope you'll like it. The only drawback is you can't copy images that you might have linked your roles to, but that's something to think about.

Thursday, March 21, 2013

Habits. Notes sync.

Notes sync resembles that of the My Mission - it follows the same approach that all the sync actions are ordered by you, no auto-background note moving/saving that might lead to results not really expected.

When you press the sync button on the Notes page, it will lead you to a 3-paged/tabbed sync page (called Google Notes Sync). Here you can load the notes saved locally (left tab), those saved on google (right tab). The middle tab is used for merging - process of defining what notes have been changed on either side and what should be done with that.



On Google tasks notes are saved under the list 'Notes'. All the tasks under this list accounted as notes. When you press Load on the Google tab on the Google Notes Sync, these notes will be loaded to the tab. You can view any particular note on any tab - click on an item in the list and it will lead you to the Note page.

After loading the google notes (if they exist), you can run the merge - the program will step through all the notes and try to find out which of the notes have been changed.

A note might be in any of the several states: local new - new note on the device, not synced to the google. The action for such note might be - to sync it with google (i.e., copy it there), do nothing or delete it. Similarly, a note might be a new one coming from google. Same set of actions can be used for such note.



A note may be modified after being synced previously. For example, modified on google. In this case you can copy updated note from google to local storage, restore google note with the local version, or do nothing :).

Convenience filters on the top of the page: you can view only those notes that have been changed in any form - press the Updated text button. You can view only those In sync. Or, you can see them All.

Finally, a note may be modified both locally and on web. The app doesn't try to be too smart, so it doesn't really do the merge or anything. It just sygnals you the situation and let's you take the action.

Pressing on the Apply button will do the sync operation - save new local notes to google, update local storage with new items from google.

Monday, March 18, 2013

Habits. My Mission sync.

Let us describe the new functionality we've just rolled out, after several months of "silence" :). The main parts are sync of the 'My Mission' and of the 'Notes' sections with Google tasks. First, will talk about Mission syncing.

If you're reading this, you probably know that google provides a small but neat easy-to-use online todo list integrated into their mail and calendar. They provide an interface for third-party apps to integrate with, which means they let other apps to sync users' lists to local devices and back. We've started our work in that direction, posting the results recently.

Google tasks represent a list of list of items. You can create lists, give them names, then add tasks to those lists. For 'My Mission' storing we've chosen the list called surprisingly :) 'My Mission'. Within this list we search for the task called, again, 'My Mission'. We use this task to sync your local mission statement with.

Starting from current version of the app, when you enter the mission page, you'll see an additional button in the form of two half-round arrows:

Pressing on this button will lead you to the sync page.

The sync page consists of 2 horizontally scrolling pages (tabs), one for the statement stored locally, the other for the statement stored in the Google task mentioned above.






















You can load both separately. You can Edit both in place and save them separately - one locally, the other to Google task. As we think, this is a very simple but at same time very powerful.

First, you have two places where you can have the statements. You can compare one to another, use different text in similar meaning. You can edit them separately and save them to different places, or you can completely replace one with the other.

But, the most important thing about all this is that You are in control of what needs to be saved and where. The app doesn't decide for you which version is actual and which should be saved (some other apps did that automagically in the background, often leaving me without valuable information).

Upd.: we are getting error reports, thank you, they'll definitely help to fix the issues.

Upd. 2: Uploaded the fix for the FC when trying to save local Mission statement to google when there's no list 'My Mission' on google. Thanks for the reports!