For Guidance (+91) 7550 227 228 (WhatsApp Only)

Get Latest CSE Projects in your Email

Data Synchronization Patterns in Mobile Application Design


As Internet-enabled devices become more prevalent in the form of smartphones and tablets, the need for mobile application development patterns grows in importance.  Different technologies, such as Nokia’s Symbian, Apple’s iOS, Google’s Android, and Microsoft’s Windows Mobile, have arisen and will continue evolving to provide platforms for developing mobile device applications.

These technologies build on years of experience developing flexible, open-ended frameworks and platforms, and the developers of these technologies have provided many resources for application developers.

While best practices have been documented for nearly every component, such as the guidelines for Android Design i and the iOS App Programming Guideii, a comprehensive pattern collection or pattern language for mobile application development has not yet been produced. This gap exacerbates the difficulty of solving problems or conveying solutions effectively in this domain.


The patterns presented here are documented using a variant of the Gang of Four and POSA pattern forms to reflect the types of patterns covered in this document.  The following are the sections in our modified pattern form.

Pattern Name
State the intent of the pattern
State the problem(s) that this pattern works to solve
Constraints of the specific contexts that would elicit the use of this pattern
Visual Explanation
A diagram or graphical representation explaining the pattern and a description of the interaction between the different elements of the pattern
Explain how this pattern solves the problem considering the constraints of the context
Anything resulting from the use of the pattern aside from solving the given problem
Examples/Known Uses
Explained examples of the problem and/or known uses of the pattern


Data synchronization mechanism patterns address the question: “when should an application  synchronize data between a device and a remote system (such as a cloud server)?”  This problem is common —yet often overlooked —in mobile application design, but there is no one-size-fits-all  solution. Instead, mobile application developers must consider the constraints of many factors,  including network availability, data freshness requirements, and user interface design.

  • Synchronous Data Synchronization
  • Asynchronous Data Synchronization


Data Storage and Availability patterns address the questions: “how much data should be stored?” and “how much data should be available without further transfer of data?”  This question arises in both the design of mobile applications Data Synchronization Patterns in Mobile Application Design: Page and the design of remote systems with which they interact. Often, mobile application projects have constraints (such as net work speed/bandwidth or capacity) both remotely and locally.  Likewise, the capacity of local storage is often limited relative to the whole dataset needed for a computation.

  • Partial Storage
  • Complete Storage


Data Transfer patterns address the problem of transfer quantity in set reconciliation: “how can we  synchronize between sets of data such that the amount of data transmitted is minimized?”  As discussed above, network bandwidth is often a concern of mobile applications, so developers should  write their applications to minimize resources to accomplish the task of synchronizing  data.

Some  types of data (such as records with a timestamp to keep track of changes) lend themselves to more efficient methods of reconciliation than others, while other types of data (such as files  containing compound  documents) have less efficient methods of reconciliation without becoming overly complex.

  • Full Transfer
  • Timestamp Transfer
  • Mathematical Transfer

Source: Vanderbilt University
Authors: Zach Mccormick | Douglas C. Schmidt

Download Project

For Free CSE Project Downloads:
Enter your email address:
( Its Free 100% )

Leave a Comment

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>