Designing for connected-disconnected apps

The world of mobile apps is full of unique technical challenges.  Mobile apps live in a world where connectivity is not guaranteed. The best apps can operate when they are disconnected and are enhanced when they are connected.  They handle the notion of syncing data and caching it locally for disconnected operations.  Finally, I’d like to find an ORM (Object Request Mapper) since the data models I anticipate needing are relational in nature but I’d like to code the data model in an object-oriented manner.

The second aspect of the data model is that I believe that this model should be used on the client and also on the server.  This leads me to coding a common data model in Javascript and targeting using Node.js as the server-side technology.

Blossom uses the Sproutcore datastore framework.  This provides a strong infrastructure to meet the needs of a connected-disconnected app.  So, to follow the conventions of sproutcore, we will place all the Javascript classes for the data model into the ‘datastore’ folder in the application.  The app will have the reference to the store at {AppName}.store, again, following the conventions.

The following figure was originally on the SproutCore site, but listed as deprecated, so I’ve copied here to ensure it does not disappear.  The original image was here.  This figure shows some of the main parts of the application and where the datastore fits in the entire context of the application.

The sproutcore datastore supports database acccess via the datasource and also allows for loading initial data using the Fixtures.


About cwoloszynski

Passionate about mobile application development integrated with cloud-based services
This entry was posted in Software Development and tagged , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s