RE: storing user data in a central server or on device, this feeling is what it must be like to feel old.
I remember developing applications for the pocket PC in the .NET Compact Framework 3.5 era. The advice from the Larry Roofs and Dan Ferguses of the world was simple: you can't assume you have network connections all the time, so get your data locally on the device, and sync it when the network returns.
All these years later, while the devices are much more powerful, the network is still not reliable enough to treat it as interchangeable with local storage. Why stream my music over Google Play Music when I know that the hand-off from one cell tower to another will consistently cause a few seconds delay in re-establishing a connection and thus my VPN will have to reconnect, and other knock-on effects?
Yes, use the cloud where appropriate, but if your app is useless without a data connection, it (IMHO) likely means that it could be replaced with a mobile website which at least operates under different user expectations.
I'm excited about CRDTs, once someone makes a robust-enough library for 'good enough' CRUD style abstractions for them (automerge may be this, but I'm a no-JS snob), that library will likely take off in usage, IMO.
I remember developing applications for the pocket PC in the .NET Compact Framework 3.5 era. The advice from the Larry Roofs and Dan Ferguses of the world was simple: you can't assume you have network connections all the time, so get your data locally on the device, and sync it when the network returns.
All these years later, while the devices are much more powerful, the network is still not reliable enough to treat it as interchangeable with local storage. Why stream my music over Google Play Music when I know that the hand-off from one cell tower to another will consistently cause a few seconds delay in re-establishing a connection and thus my VPN will have to reconnect, and other knock-on effects?
Yes, use the cloud where appropriate, but if your app is useless without a data connection, it (IMHO) likely means that it could be replaced with a mobile website which at least operates under different user expectations.
I'm excited about CRDTs, once someone makes a robust-enough library for 'good enough' CRUD style abstractions for them (automerge may be this, but I'm a no-JS snob), that library will likely take off in usage, IMO.