Technical Challenges of
      Designing Mobile Apps
               in an
Environment of Limited Connectivity
 Anurag Dwivedi & Pradeep Warrier
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
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
User expectations determined by usage
context
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
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?
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
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
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
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
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)
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.
Thank You!


             Contacts:


             Anurag Dwivedi – anurag@newrubric.com

             Pradeep Warrier – pradeep@newrubric.com

More Related Content

PPT
Human Factors and User Interface Design
PPT
User Interface Design in Software Engineering SE15
PDF
Hostel Management ERP
PPTX
golden rules of user interface design
PPTX
The Golden Rules by Theo Mandel - Software Engineering
PPTX
Direct manipulation - ppt
PPT
User interface-design
PPTX
Direct manipulation and virtual environments
Human Factors and User Interface Design
User Interface Design in Software Engineering SE15
Hostel Management ERP
golden rules of user interface design
The Golden Rules by Theo Mandel - Software Engineering
Direct manipulation - ppt
User interface-design
Direct manipulation and virtual environments

What's hot (18)

PPT
Chapter 2
PPTX
Chapter 3 - Variety of Dialogue
PPTX
Software engineering 18 user interface design
PPTX
User interface design
PPTX
Design process interaction design basics
PPT
USER INTERFACE DESIGN PPT
PPTX
5 applications bb
PPT
PPT
Chapter 12 user interface design
PDF
User Interface Design - Module 1 Introduction
PPTX
Module 1st USER INTERFACE DESIGN (15CS832) - VTU
PPTX
ICS3211 lecture 10
PDF
CV ADE NURHIDAYAT TERBARU KOMPLIT
PPTX
Software development planning and essentials
PPTX
ICS3211 lecture 04
Chapter 2
Chapter 3 - Variety of Dialogue
Software engineering 18 user interface design
User interface design
Design process interaction design basics
USER INTERFACE DESIGN PPT
5 applications bb
Chapter 12 user interface design
User Interface Design - Module 1 Introduction
Module 1st USER INTERFACE DESIGN (15CS832) - VTU
ICS3211 lecture 10
CV ADE NURHIDAYAT TERBARU KOMPLIT
Software development planning and essentials
ICS3211 lecture 04
Ad

Viewers also liked (17)

PPTX
Presentation on Android application
PDF
2013 State of Cloud Survey SMB Results
PDF
Intro to cloud computing — MegaCOMM 2013, Jerusalem
PDF
Breaking through the Clouds
PPTX
2013 Future of Cloud Computing - 3rd Annual Survey Results
PPTX
Android Project Presentation
PPTX
Penetrating the Cloud: Opportunities & Challenges for Businesses
PDF
Can we hack open source #cloud platforms to help reduce emissions?
PDF
Summer School Scale Cloud Across the Enterprise
PPTX
The Inevitable Cloud Outage
PPTX
Linthicum what is-the-true-future-of-cloud-computing
PPTX
Avoiding Cloud Outage
PDF
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
PPTX
Simplifying The Cloud Top 10 Questions By SMBs
PPTX
Delivering IaaS with Open Source Software
PPT
Introduction to Basic Computer Concepts Presentation
PPTX
cloud computing ppt
Presentation on Android application
2013 State of Cloud Survey SMB Results
Intro to cloud computing — MegaCOMM 2013, Jerusalem
Breaking through the Clouds
2013 Future of Cloud Computing - 3rd Annual Survey Results
Android Project Presentation
Penetrating the Cloud: Opportunities & Challenges for Businesses
Can we hack open source #cloud platforms to help reduce emissions?
Summer School Scale Cloud Across the Enterprise
The Inevitable Cloud Outage
Linthicum what is-the-true-future-of-cloud-computing
Avoiding Cloud Outage
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
Simplifying The Cloud Top 10 Questions By SMBs
Delivering IaaS with Open Source Software
Introduction to Basic Computer Concepts Presentation
cloud computing ppt
Ad

Similar to Mobile apps in environment of limited connectivity new rubric solutions (20)

PPTX
Evaluation of an Interactive Device : Microsoft Surface RT
PPTX
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
PPTX
PPTX
Online talent sourcing - a future essentia
PDF
Impact 2013 2963 - IBM Business Process Manager Top Practices
PPTX
Hardware and Software Considerations for Schools
PDF
What is User Centered Design?
PDF
Quality attributes in software architecture
PPTX
UNIT1.pptx
PPTX
Principles of responsible suppliers
PPTX
Usability in product development
PDF
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
PPTX
Usability Evaluation
PPT
Data warehouse and User interface
PDF
OOSE UNIT-1.pdf
PDF
Chapter 3 - Common Test Types and Test Process for Mobile Applications
PDF
Decision Matrix for IoT Product Development
PPTX
Software Engineering Unit 2 AKTU Complete
PDF
ICS3211 Week 4
PDF
Activity Monitoring Using Wearable Sensors and Smart Phone
Evaluation of an Interactive Device : Microsoft Surface RT
2015 Mastering SAP Tech - Enterprise Mobility - Testing Lessons Learned
Online talent sourcing - a future essentia
Impact 2013 2963 - IBM Business Process Manager Top Practices
Hardware and Software Considerations for Schools
What is User Centered Design?
Quality attributes in software architecture
UNIT1.pptx
Principles of responsible suppliers
Usability in product development
Monitoring and Instrumentation Strategies: Tips and Best Practices - AppSphere16
Usability Evaluation
Data warehouse and User interface
OOSE UNIT-1.pdf
Chapter 3 - Common Test Types and Test Process for Mobile Applications
Decision Matrix for IoT Product Development
Software Engineering Unit 2 AKTU Complete
ICS3211 Week 4
Activity Monitoring Using Wearable Sensors and Smart Phone

Recently uploaded (20)

PDF
August Patch Tuesday
PDF
WOOl fibre morphology and structure.pdf for textiles
PPT
Geologic Time for studying geology for geologist
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
O2C Customer Invoices to Receipt V15A.pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
DOCX
search engine optimization ppt fir known well about this
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
Modernising the Digital Integration Hub
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
A contest of sentiment analysis: k-nearest neighbor versus neural network
PPTX
observCloud-Native Containerability and monitoring.pptx
PDF
Getting Started with Data Integration: FME Form 101
PPTX
The various Industrial Revolutions .pptx
PDF
1 - Historical Antecedents, Social Consideration.pdf
August Patch Tuesday
WOOl fibre morphology and structure.pdf for textiles
Geologic Time for studying geology for geologist
Hindi spoken digit analysis for native and non-native speakers
A novel scalable deep ensemble learning framework for big data classification...
Microsoft Solutions Partner Drive Digital Transformation with D365.pdf
Module 1.ppt Iot fundamentals and Architecture
O2C Customer Invoices to Receipt V15A.pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
search engine optimization ppt fir known well about this
A review of recent deep learning applications in wood surface defect identifi...
Modernising the Digital Integration Hub
DP Operators-handbook-extract for the Mautical Institute
A contest of sentiment analysis: k-nearest neighbor versus neural network
observCloud-Native Containerability and monitoring.pptx
Getting Started with Data Integration: FME Form 101
The various Industrial Revolutions .pptx
1 - Historical Antecedents, Social Consideration.pdf

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
  • 4. User expectations determined 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.
  • 13. Thank You! Contacts: Anurag Dwivedi – anurag@newrubric.com Pradeep Warrier – pradeep@newrubric.com