Interesting enough, i just wrote an app in B4A that has its original roots from my Palm pilot oh so many years ago. (it was a time + billing applicaiton). I used the Palm for about 9 years. Then in 2000 I switched over to a windows phone. And used a web based app I wrote. When I stumbled upon B4A, I decided to re-write the application and now I am back to how "very" much the original Palm setup with a sync data option.
So, changes made on desktop part go to Android, and changes made android make their way up to the Desktop.
It works VERY well.
How did I do the sync? Well, I needed "some" service running on the desktop. There are more ways to do this then flavors of ice cream, but given that I am VERY good with MS-Access, and I am VERY good with SQL server? Well, that "service" i connect to on my desktop is a copy of SQLEXPRESS running. So, for the database front end I still use Access, but I simply migrated the data tables to SQL server. So, now, to sync data from Andriod, it simply DIRECT connects to the SQL server running on my desktop. This means I don't need a web site, don't need the cloud, and everything is 100% local.
I also built a data forms binder. So, now i can in B4A drop 10 or say even 15 controls onto a view. Then my code shuffles the data from the table to the form, and back again (I don't even have to generate the form (view) members - the code simply loops the controls in the view and does all of the sql updates for me. So, I can make a form like this - drag + drop - go crazy - takes 5 minutes:
Say this:
With 4 lines of code, it loads up and becomes this:
So, most intersting:
I wrote this to work like my Palm.
I wrote this to sync with my desktop.
I use sqllite on Android, but did use sql server on the laptop..
I am somewhat hesitant to share my "auto matic data binder" code. (the code that automatic fills out the forms I create in B4A, since it based on views and not the newer B4A pages.
However, if you are interested. I will post my data binder and sync code. (both sync code, and data binder code uses many of the same routines).
It not clear which database you are using for your desktop side of things. But, given the memory and ram on computers today, then running SQL express is not all that heavy of a application. And if you using vb.net to write stuff, you often will have setup + installed SQL express edition, or perhaps you use ms-access (JET/ACE) as the database.
But regardless, the sync routines would be of interest, and I am willing to post the routines. The sync system requires you to add ONE extra column to the sqlLite database (two columns if you have a PK + FK). You have to add the two columns to EACH table you have. This approach thus keeps the autonumbers 100% independent between desktop and Android. Each table also needs a LastUpdate column. I did in fact setup sqlIte triggers to always update the LastUpdate column. Interesting enough, next time i write such a sync routine, I will use a transaction table, but for my first "go" at a sqlLite sync routine to my desktop, what I did was "ok" of a design - not perfect, but the results were VERY good indeed. I had searched the internet for 10+ years looking for a approach to sync of data that would "mostly" seamless handle the autonumbers (PK) and foreign key (FK) issues when syncing data using surrogate keys (autonumbers). I was a post here in B4A and suggestion that finally cinched this deal. (a brilliant idea - one that was the result of 10 years of looking for a solution on the internet - and it was a simple idea).
Unfortantly, I can't remember the name of who suggested this idea - but it was a nice idea.
So, the data binder routines - no doubt you could use.
The sync routines? Well, they are only much of use if you wiling to run + adopt SQL EXPRESS on your desktop.
But the resulting setup does not need the cloud or any web connection to run.
I quite busy, but I can pull out the code I have for above to work - I think I can do that in less of 30 minutes of my time - so I will do so if you are interested and willing to run SQL express on your desktop. But then again, I not waste the 30 minutes of time to do this if you not interested in running SQL express here.
Regards,
Albert D. Kallal
Edmonton, Alberta Canada