2 steps forward, 1 step back
I managed to implement basic tagging support in my database backend and was just about to finalize one of my last automatic integration tests (these are programmatic tests that simulate various actions such as various ways to tag / untag / change order of tags, etc.) when I realized that some of my basic assumptions on how tag ordering works was wrong.
I wont bore you to death with the technical details but suffice it to say that I will need to rework portions of my tag ordering logic to accomodate my new findings.
So from an overall status perspective it looks like this
- new database: ✅
- downward sync: ✅
- upward sync (minus task ordering in context): ✅
- task tag support: ✅
- tag ordering in tasks: ✅
- task ordering in tags: in progress
- custom alarms: ○
- automatic database cleanups: ○
- inbox: ✅
- project/folder list: ✅
- context list: ✅
- Forecast view: ✅
- widgets: ○
- search: ○
- tags popup for task editor: ○
- order tasks within tag screen: ○
- task reordering within project: ○
- complete UI overhaul: ○
- dark mode: ○
So as you can see there is still a bunch more work open. I apologize for the long wait but reverse engineering two years of work by Omni is no small task.
I will post updates again once I have finished one of these tasks. So stay tuned.
I havent posted on my blog in ages since I mostly used G+ to post my updates. With G+ loosing much of its momentum, I guess I will focus more on my blog again.
Anyway I have been busy working on FocusGTD3 which will fully support OmniFocus3. First and foremost: TAGS
In addition I have finished rewriting the database backend as well as the complete sync engine (now even more accurately matching OmniFocus‘ logic).
So currently I am working on supporting multiple tags and sync these back and forth
The UI is still very basic but I hope that I will have enough time to polish that up as well.
Since Android 6.0 is out finally it seems that a lot of people are using FocusGTD with it. Unfortunately the HTTP stack that I am using (apache-http-client) seems to have problems with the latest OS update.
Due to this fact and since google is deprecating apache-http-client, I decided to move over to okhttp.
Unfortunately, this means that I have to rewrite most of the networking code including the WEBDAV stack.
As part of this re-write, I have already released a bit of code as open source
So if you are one of the users using Android 6, rest assured that I am actively working on this, however the complexity is quite high so it will take a bit longer.
After a lot of work and tremendous help from some of the testers the application is shaping up reasonably. The app still looks pretty crappy from a visual perspective but I believe that the synching should be pretty reliable at this point and it should not destroy your data on your Mac.
Therefore, I have added the next set of testers. All persons who got invited will receive an invite to the google community (Focus GTD alpha Testers). Please review the very first posts in this community on how to download the app.
So whats the status?
- Synchronization via Webdav (mostly tested with OmniSync-Server)
- Creating, Editing, Deleting tasks
- Viewing task notes
- Browse by project, folder, context
What does not yet work
- Editing of projects, contexts, notes
- Deleting projects, contexts
- Nested contexts
- Configurable default reminder time (it will always assume that the default reminder time should be tomorrow 9am)
- Standalone operation (the app still requires that you have Omnifocus on the Mac which will clean up the sync files now and then)
My synching is very slow. Especially the very first sync.
This could happen in case you have outdated clients (or you have uninstalled Omnifocus or FocusGTD from a few devices and now Omnifocus does not dare to delete older files since it wants to retain them for these clients. Go to Omnifocus Sync preferences and unregister all clients that you are no longer actively using.
This allows Omnifocus to delete all old files and create a new more recent snapshot. In practice this often means that FocusGTD has only to parse 20 files instead of 400.
I would like to participate and make suggestions and/or follow the progress of the project
If you are a registered tester I can give you access to the trello.com project that I am using. There you can get a realtime view of what is happening. This is also very useful if you want to report bugs. Let me know your email address and I can invite you to trello. Otherwise if that is too much involvement for your taste you can also leave a comment here on this post and I will try to incorporate them as soon as I can.
Why the heck is it taking so long?
Synchronization is a very complex topic. Also Omni uses a somewhat unusual approach to synchronization which makes it even more laborious (on the other hand it seems to work pretty ok for their apps except for the fact that its not very fast). Also I do have a day job since the revenue from FocusGTD is still not paying my bills, so my available time is limited. I considered outsourcing some of the development but this would be a bit early (also I think that the group of potential customers is somewhat limited).
A short status update
I have been working for quite some time on supporting nested tasks and statistics (4 tasks remaining, 2 overdue, …). This turned out to be more complicated than initially anticipated. Basically it opens up a can of worms, but the first version with support for this is out and in the hand of testers. There is still quite some work ahead of me but I will gradually include more testers as the app becomes more robust (and more feature complete).
The first alpha version of Focus GTD, the only android GTD application which is compatible to OmniFocus has been released to some brave testers. There are still a lot of core features missing but once the app has been stabilized enough, I will open it up to a larger group of people.
I know, I know, it has been a LONG time without any updates. However, I have been quite busy implementing the application and making the synching process more robust. Right now I am nearly at a point where some daredevils might be able to try and play around with the application.
What is it?
A GTD application that can sync with OmniFocus for Mac and iOS. It is in no way connected to OmniGroup (although I did ask if they were ok with it).
- Editing existing tasks
- moving tasks to other contexts, projects
- checking off tasks
- creating new tasks
- synchronizing changes to the server (it should work with any web dav, but only tested on omni-sync Server).
What does not work?
- deleting tasks (there is a DEBUG option but this will not get synched to the server, its just a means to correct any misbehaviour of the app)
- a lot of the UI doesnt work, there are a bunch of action items which don’t do anything
- creating folders, contexts
- task detail editing (such as reminders, repeats, ..)
- UI is still terrible, its just stitched together really since I have been working on getting the backend of the code to work reasonably, if anyone has graphical skills, I am all ears :), the navigation will most likely change, right now its oriented on the iphone version, but I think on Android it can be made better.
- the app cannot be used without omnifocus at the moment (it relies on an initial sync state to exist)
- the app wont compact sync files on the server, it relies on desktop omnifocus to do this job
Should I consider becoming an alpha tester?
- do you know how to back up a webdav share?
- do you mind if your data might get lost?
- do you mind having weird elements show up in your omnifocus at unexpected places?
- do you mind the app crashing?
If you answered one of these questions with „yes“, then this might not be a good time for you yet.
For the remaining persons (i.e. the daredevils out there) I will probably allow approx 10 testers into an „alpha program“, who can participate in the development of the application and might get their feature requests and improvement suggestions implemented.
If you are really serious about signing up you have to agree to the following
- I won’t be responsible for anything bad happening to your phone nor your data
- You are doing this on your own free will
- You will not get any payment for testing (sorry, but I dont even know whether I can make back my invested time.
I don’t care. Where do I sign?
If you really agree with all the caveats and you swear that you will not sue me for data loss or anything else bad happening to your phone or OmniFocus data, then you can leave your Google Plus Email on this form
I will then invite you to the alpha testers community and add you to the list of testers who will be able to download the app from google play (so I guess your G+ mail also needs to be registered with Google Play to work).
When will I get the build?
That depends, I guess I will still need the remainder of this week to clean up the most pressing issues, but I would expect to launch the very first version by the weekend.
I have now more than 12 registered Testers. So for the first iteration this will be enough, so I wont invite any more testers until the app is further along. However, you can still keep on registering and in case I have the need for more testers I will add the first ones on the list. Note that in order to register you need to provide an Email address that is a valid Google+ account.
Yay, finally, I am able to create properly formed upload files which means that the app can now at least upload checked tasks and OmniFocus for Mac properly recognizes them. It took far more time than I had initially expected, but finally this part is done. This does not mean that its completely done but at least the basics are in place.
The next steps is going to implement the basic UI for the application, and eventually I need to make it pretty. So there is still some time until I have something to show in public but this was a very important and complex step and therefore an important milestone.
Some progress update for my Android GTD app. I have spent the past couple of weekends (and countless hours) on trying to get the synchronization with OmniFocus to work. I am having some limited success in that the down synch is quite stable now, but the upload is still very much broken. I think I am not far off but right now OmniFocus for Mac is not properly digesting my uploaded changes.
Will keep you posted.
I started working on an Android GTD App that will be compatible/similar to OmniFocus for iPhone. The ultimate goal is that it will behave roughly like the todays iPhone version of the app.
Note that this app is in no way connected with OmniGroup at all. It is solely my personal endeavor. I am planning to sell this application on the Google Play Store once it is ready. I have checked with Omni and they didn’t seem to have anything against that approach.
However, until the app is anywhere near there it will be a long way to go still.
This whole project stemmed from an experiment that I embarked on when I got my Nexus 4. While still a die hard iPhone user, I tried to get by with just the Nexus 4 for a couple of weeks. And I really started to miss OmniFocus.
Dont get me wrong, there are *tons* of great todo applications for Android out there, but I haven’t found any that had an even remotely as capable Mac OS desktop client like OmniFocus (if you happen to know one then I would be very interested).
I am not sure what to call the apps current status. Its so far before alpha that I dont know of any term. In fact all it really does right now is download and parse all the sync data that is on a defined WebDAV share (i.e. OmniSync Server).
You can browse the synched data on the phone but there aren’t really any screens for the task details yet.
There are 2 major things that I plan to work on next:
- Synching back to the server (this will take a couple of weeks due to my limited time I can devote to the project)
- Improve the screens to show and edit the tasks in the database.
- Made it clear that the App is neither called OmniFocus for Android nor affiliated with OmniGroup