CEO of New Rubric Solutions and Tech Head spoke at Droidcon 2011 on their experiences with Designing Mobile applications in an environment of limited connectivity
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Mobile apps in environment of limited connectivity new rubric solutions
1. Technical Challenges of
Designing Mobile Apps
in an
Environment of Limited Connectivity
Anurag Dwivedi & Pradeep Warrier
2. Objectives of today’s discussion
Share
• Scenarios which present the need for Offline functionality
• How we have thought about making these choices and issues to consider
3. Why Offline? Is connectivity really an issue?
• Is this even relevant –in an era of 3G?
Availability - Uninterrupted access – Only for the ads!
Cost – Is a real issue – particularly if large amounts of data involved
User experience - Expectations driven by usage context
5. Let us consider a potential application in
Education….
Consider you are a student with a tablet…
You are enrolled in a distance learning program
provided through the tablet
You use the “Distance Education” App for the following:
1. Study the content – View Material, sample questions and their answers
2. Ask questions and get answers – to clarify doubts that you may have
3. Take tests – corresponding to material studied
4. Get performance evaluation and suggestions on next steps:
Move on to the next topic
Revise existing content
Practice more problems
Provide or direct the student to new content that might be helpful
6. Online - Offline Apps - the critical choices
• What functionalities are to be provided in an offline mode?
• What data is on the device? How do we handle this data?
• How do you implement online-offline apps?
How do we ensure fast, accurate data synchronization?
How do we secure the data on the device?
How do we handle bug fixes, patches and enhancements?
7. Thinking about online/offline in the
context of user expectations …
Performance evaluation Ask questions
High
and feedback Important to keep
Simulated in mind that
INTERACTIVITY
Probably online*/ interactivity/Hybrid responsiveness
and interactivity
Simulated interactivity solution are just two
important
elements of user
experience and
? Study Content/ Take not the only
Tests factors….
Low Other considerations
more relevant Probably offline*
RESPONSIVENESS
Low High
* Ultimate decision would need to factor in other considerations besides these
8. What data to store on the device?
• Qualify the data for offline use
▫ Dynamic vs. Static
▫ Duration of data use
▫ Size of data
▫ Business sensitivity of data
• Affects the choice of technology
▫ Native vs. HTML5
▫ Storage on the device (local sql/ local files)
▫ Minimum requirements of device
9. How to Synchronize data between device and
server?
• Distribution of data to device
▫ Data filtering mechanism, based on feature/ user
requirements (e.g. test data may be different for different users)
• Conflict handling
▫ Feature specific resolution mechanism to handle conflicts, in
data that can be changed by multiple users
(e.g. HOD vs. teacher providing feedback)
• Data synchronization mechanism between device & server
▫ Order Preserving nature of synchronization on both the ends-
device & server (e.g. 1st test attempt vs. 2nd test attempt)
▫ Before synchronization, Record state of data on device (e.g.
avoid sending the same questions again, send only incremental
content)
• Configuring synchronisation
▫ User preferences
(e.g. when student is roaming or on a high cost network)
▫ Synchronisation sequence to manage peak load
10. Now that the data is on device, secure it!
• Device & data protection for exchange of content with server
▫ Authentication & Authorization check for both user &
device (e.g. student should not be able to use another device to
get data from server)
• Encryption of data storage on device
▫ Categorize the data and identify security needs for data
(e.g. test results vs. syllabus information)
Simple textual storage - sqlite or simple file
(e.g. for syllabus information)
Encrypted storage – for sensitive information
Can make use of same storage mechanism but content to be
encrypted
(e.g. for test results)
• Handling cases of misuse or loss of device:
▫ Detection of such a scenario – encourage users to report?
▫ Wiping out application and data – on multiple incorrect logins
11. And ……Application Life Cycle Events
• Upgrade needs to take into account
▫ Technical constraints (Ensure no loss of data, supporting multiple versions) and
▫ Operational constraints (no/minimal user discomfort, large user base)
• Handling of multiple version of app
▫ Not practical to upgrade all users at the same time
(e.g. some users may be on leave when we want to upgrade)
▫ Backend need to support the case of different clients having different version for
same underlying backend.
• Upgrade of self owned components versus standard framework components. (e.g.
how to proceed when Android releases some relevant change)
12. Resource Selection
• Server
▫ Hardware requirement for server – Better DB (as usual), though processing
requirements can be compromised compared to online case.
▫ Peak load can be lowered by synchronization strategy.
▫ In the on-demand cases, flattening of peak can help in making cost effective
choices.
• Device
▫ As more data processing is needed, will need good I/O capability.
▫ Needs good battery life.