4 ms·
Lack of a refresh button is not the issue. The issue is that the app developer has never tested their app in real-world network scenarios. Switching between w
by illumin8 9y ago
Lack of a refresh button is not the issue. The issue is that the app developer has never tested their app in real-world network scenarios. Switching between wifi, 3g, 4g, lte, and no network access. Inserting random packet loss, jitter, and latency. There are a lot of tools that can automate this now. You can stick a WAN simulator in front of your integration testing environment and insert all types of crazy network issues into your tests. If developers did this more often, these "sync" bugs would be fixed.
- nmeofthestate 9y agoYes, the developer has never tested their app and if they would "just" make the difficult-to-implement code bullet proof, then there would be no need for a refresh button. facepalm (for the hard of thinking, I am sarcastically disagreeing)
- digi_owl 9y agoI fear i must invoke Poe here...
- jmkni 9y agoHow would you do this on an Android emulator? I'm guilty of not testing this sort of thing thoroughly.
- mikewhy 9y agomacOS has a Network Link Conditioner preference pane that allows you to simulate all sorts of awful network scenarios. It's at the system level so anything using the networking should be affected. Not sure about the others.
- jmkni 9y agoGood to know, thanks
- illumin8 9y agoAWS has a nice mobile device hub service that lets you test with different network profiles.
- TeMPOraL 9y agoSometimes you just can't reasonably test for everything. And sometimes it is not your fault. Operating systems have bugs too, and then there are bugs that are introduced by the presence of yet another application. The rule of thumb, I believe, should be this: whenever you're dealing with a shared resource which you do not own - like with files on disk, or data on the other side of the network - your application state is just a cache for that data, and you need to offer a way to manually force a refresh of the cache.
- CaptSpify 9y agoI used to work at a shop that ran a 1.5 mbps dsl line, and a ~5 year old, cheap, slow computer. If their code worked on that, it would work on any of our customer's machines. I wish devs would still test like that. Sure, your app works fine in downtown SF on the newest phone, but try using it in Nowherseville, TN, on a phone that is more than a couple years old. I bet a lot of user frustration comes from dealing with that.
- Too 9y agoThe issue here is not bugs in the syncing software, the issue is that you are not presenting an accurate view to the user. Loosing internet connection from your mobile network is not a bug, it's something expected. What you should do instead is to present to the user that you are in an unsynchronized state. I always add an internal watchdog for cloud sync and if time to last update goes above X seconds, you pop up a notification bar with a loading spinner that says "disconnected" and there you can add your refresh-button and a tooltip suggesting to turn on wifi. When downloading things, refresh is a quick hack, for uploading things the situation is worse, there you should absolutely not pretend that things are done when they are not. Some times i need to know that a file was uploaded 100% before i disconnect the network. Again, the solution is not to add a manual refresh button, here you should always show the sync-progress.