Syncing suggestion
Craig,
First off, I think you have an amazing program here. I use both the Mac version and the mobile version on my iPod touch. I actually didn’t have an account on this forum until a few minutes ago, although I’ve been following it for a while. I created this account because I was struck with an idea that I thought I would suggest to you for a future version of the mobile app.
In response to your call for opinion on the topic, the idea came from my use of NetNewsWire, which also has Mac and iPhone versions. The way they achieve synchronization is through a server called NewsGator that communicates with both versions and syncs updated stories as well as read/unread status so you never have to read the same story twice.
I don’t know if you have the know-how or the resources available to host a server, but if you do, you should consider this:
You could have iProcrastinate and iProcrastinate Mobile communicate with a server each time you open or close either program. This link would communicate the status of specific tasks, such as completed steps or tasks, added tasks, classes, or smart groups. Also, you could implement a feature where the user would choose a number of days after completion a given task stays in the database, and then after that time is up, the task would vanish from the server, and thus both programs as well. You could code a function that says that if a user manually deletes a task, class, or group, then that get sent back to the server and it gets deleted from the programs counterpart as well, resolving the issue of which device gets the master privileges (you could also implement the ‘prompt the user’ feature you mentioned earlier here if you find that more suitable). Ultimately, the idea is to implement a server to be in control of both programs, rather than have to decide which program controls the other.
By using this method, every time you close one version of the application, it sends the data to the server, and then next time you open the other version, it retrieves this data before presenting it to the user, so both programs are always up to date.
The only draw back I see with using this method, is that with Bonjour you can sync to the computer whether or not you have Internet if it is an AirPort enabled Mac. The server method would require access to the Internet. I can’t speak for everyone else, but I think this delivers a better enough service that I would sacrifice the ability to sync without Internet.
Just something to think about. Keep up the good work!
Craig,
First off, I think you have an amazing program here. I use both the Mac version and the mobile version on my iPod touch. I actually didn’t have an account on this forum until a few minutes ago, although I’ve been following it for a while. I created this account because I was struck with an idea that I thought I would suggest to you for a future version of the mobile app.
In response to your call for opinion on the topic, the idea came from my use of NetNewsWire, which also has Mac and iPhone versions. The way they achieve synchronization is through a server called NewsGator that communicates with both versions and syncs updated stories as well as read/unread status so you never have to read the same story twice.
I don’t know if you have the know-how or the resources available to host a server, but if you do, you should consider this:
You could have iProcrastinate and iProcrastinate Mobile communicate with a server each time you open or close either program. This link would communicate the status of specific tasks, such as completed steps or tasks, added tasks, classes, or smart groups. Also, you could implement a feature where the user would choose a number of days after completion a given task stays in the database, and then after that time is up, the task would vanish from the server, and thus both programs as well. You could code a function that says that if a user manually deletes a task, class, or group, then that get sent back to the server and it gets deleted from the programs counterpart as well, resolving the issue of which device gets the master privileges (you could also implement the ‘prompt the user’ feature you mentioned earlier here if you find that more suitable). Ultimately, the idea is to implement a server to be in control of both programs, rather than have to decide which program controls the other.
By using this method, every time you close one version of the application, it sends the data to the server, and then next time you open the other version, it retrieves this data before presenting it to the user, so both programs are always up to date.
The only draw back I see with using this method, is that with Bonjour you can sync to the computer whether or not you have Internet if it is an AirPort enabled Mac. The server method would require access to the Internet. I can’t speak for everyone else, but I think this delivers a better enough service that I would sacrifice the ability to sync without Internet.
Just something to think about. Keep up the good work!