Synchronizing app data across devices via email
A method and system for synchronization data across applications installed on mobile and desktop devices and remote server uses a mail server. The data to be sent to applications is included in electronic message body or attachment and sent to a predefined email account. The email account is processed via listener applications according to a processing rule such as sender's email address, sender's domain, header information, or metadata. When an email matches the rule, an action is triggered that acquires data from attachment of email or body and updates local storage.
1 . A system comprising:
a first device comprising a first application instance and a first data storage, wherein the first device is coupled to a network;
a second device comprising a second application instance and a second data storage, wherein the second device is coupled to the network;
a mail server, coupled to the network,
wherein a first data change occurs at the first device in the first application instance,
information about the first data change is included in a first email and the first email is sent with the first data change addressed to a predefined email address to the mail server via the network;
the first email is received at the second device; and
a determination is made at the second device of a data type of the first data change.
2 . The system of claim 1 wherein the first email for the predefined email address with the first data change is received at the second device, and
a further determination is made whether to apply the first data change to the second application instance on the second device.
3 . The system of claim 2 wherein
if the determination is true and the data type is determined to be an updatable type, the second device is configured to
update the second application instance using the first data change.
4 . The system of claim 2 wherein
if the determination is true and the data type is determined to be a replaceable type, the second device is configured to
replace data of the second application instance using the first data change.
5 . The system of claim 2 wherein
when the data type is an updatable type,
the second device updates the second application instance using the first data change,
and when the data type is a replaceable type,
the second device replaces data of the second application instance using the first data change.
6 . The system of claim 1 wherein
after receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when empty, storing the first data change in the second data storage.
7 . The system of claim 1 wherein
after receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when not empty, determining whether a date of the first data change is newer than a data change already stored in the second data storage, wherein
when the first data change is newer, replacing the data change already stored in the second data storage with the first data change, and
when the first data change is not newer, not replacing the data change already stored in the second data storage with the first data change.
8 . The system of claim 1 wherein
after receiving the first email for the predefined email address with the first data change at the second device, checking if the second data storage is empty, and when not empty, determining whether a date of the first data change is newer than a data change already stored in the second data storage, wherein
when the first data change is newer by a predefined threshold, replacing the data change already stored in the second data storage with the first data change, and
when the first data change is not newer by the predefined threshold, not replacing the data change already stored in the second data storage with the first data change.
9 . The system of claim 2 wherein the determination whether to apply the first data change to the second application instance on the second device comprises:
comparing a date of a second data change already stored in the second data storage to a date of the first data change received at the mail server, wherein
when the date of the first data change is newer than the second data change already stored in the second data storage, replacing the data change already stored in the second data storage with the first data change downloaded from the mail server.
10 . The system of claim 9 wherein when the date of the second data change already stored in the second data storage is newer than the first data change, sending the second data change to the mail server via a second email from the second device to the predefined email address.
11 . The system of claim 1 wherein an attachment to the first email comprises the first data change.
12 . The system of claim 1 wherein a body portion of the first email comprises the first data change.
13 . The system of claim 1 wherein a subject line portion of the first email comprises the first data change.
14 . The system of claim 1 comprising:
automatically updating the first data storage at the first device with a current state of the first application instance according to a predefined schedule;
sending the current state stored in the first data storage by a second email for the predefined email address to the mail server;
receiving the second email at the second device with the current state; and
altering the second application instance based on the current state received via the second email.
15 . The system of claim 1 comprising:
determining if a number of emails stored at the mail server for the predefined email address with change information is greater than a predefined maximum number of emails; and
if the number of emails exceeds the predefined maximum number of emails, deleting emails with change information stored at the mail server for the predefined email address, wherein the oldest emails are deleted first.
16 . The system of claim 1 wherein the first and second application instances are time-tracking applications.
17 . The system of claim 1 wherein the first device is a mobile device and the second device is a desktop computer.
18 . The system of claim 1 wherein the first device uses a first operating system and the second device uses a second operating system, different from the first operating system.
19 . The system of claim 1 wherein a first plugin to the first application instance handles the including information about the first data change to a first email and sending the first email with the first data change addressed to a predefined email address to the mail server.
20 . The system of claim 19 wherein a second plugin to the second application instance handles the
at the second device, receiving the first email for the predefined email address with the first data change,
making a determination whether to apply the first data change to the second application instance on the second device, and
if the determination is true, altering the second application instance using the first data change.