Introduction:
There exist lot's of quality and useful applications on modern mobile devices that uses internet access to retrieve data and that are able to work with that data offline later:
Twitter, any blog clients, electronic news provider clients, rss clients and lots of others.
If device has permanent internet connection (wi-fi, 3G or whatever else) it's ok and user can start any application on demand, it connects to required internet sites/services/etc and retrieves data.
But what if device has no permanent connection (or connection is very expensive)?
- User moves to other country and roaming is extremely expensive or no roaming at all
- User is moving through the city with no permanent connection but with somewhere several free wi-fi hot-spots on his way
- lot's of other real cases
And what user will do if he finds free hot-spot? He should run EVERY application, wait for their initialization, GUI starting, retrieval process itself, data processing and lot's of other excessive stuff.
If we're at roaming then during such time lasting set of operations connection can be dropped, local operator (or home operator) quantization for 100kb or even 1Mb can apply - lot's of time and money is spending with no effect.
Solution:
Mobile device API - let's name it BunchData API (independently on device OS) can be design to provide the following capabilities:
From application point:
- if application supports BunchData API then it has it's normal GUI AND separate module that provides only network connection and data retrieval functionality in atomic manner. E.g. some system service calls this module of application, it reads required connection parameters, account list etc, connects to server(s) and retrieves data updates putting them to local storage. That's it for this module.
- OS provides infrastructure to run registered application services and perform correct error handling and logging
From user point:
- OS provides settings customization capabilities to manage registered BunchData API application (allow to be involved in process or disable), group applications into multiple sets e.g. my social apps (twitter, blog clients, email) or my shopping apps (ebay notifications) or my reader applications (magazine subscriptions, new books)
When user finds free wi-fi - he can press just ONE button that means Download all updates for all social networks I involved and then system will run related services according system preferences all at once or one by one (depends on QoS criteria) and in few moments user can go away from connection and read new information.
Moreover system can provide settings like - when free wi-fi found - run all social networks, shopping and reader subscription application sets and user can leave device in his pocket and don't even press a button.
Also such conception can save lot's of energy for mobile device in average cause no GUI, FX, sound and other overhead required to retrieve data for large of application set.
Most preferred area to include such framework to is mobile devices world.
iPhone OS devices, android device, new Windows Phone 7 system devices etc.