So let’s just put it out there.  I want to build great apps and I know you want to build great apps.  We both know that apps that don’t always work and aren’t always fast just aren’t great.  They just aren’t.

I’ve spent my last 18 months at Couchbase talking to tons of developers and customers about exactly what it means to build apps that always work and are always fast.  Most recently I’ve been talking about this in the context of User Experience (UX) since that is the new hotness that everyone likes to talk about.  Delightful User Interface (UI), delightful interaction design, delightful this, and delightful that.  It’s actually quite simple: for a great UX, build apps that look great, behave as expected, are always fast, and just work – all the time.

One of the key UX problems that most apps run into is availability.  Sounds like a network problem, right?  Sort of.  Actually while the network is the cause of an app not being available, it is not the problem. The problem is where the app’s data is located.  Data location dictates app reliance on the network.  If an app has to run to the cloud every time it needs to read or write any little piece of data, then it’s going to have problems. If the network isn’t available, the app can’t get to the cloud and isn’t going to work.  If the network is slow then getting data from the cloud will be slow and the app will be slow.

So how should your app work?  We built this infographic to talk about it in a little more interesting way.  Check it out:

 lets_build_apps_that_work

So the answer is…Local and remote data + sync.

We aren’t the only ones doing this (but I think we are doing it best). Although many may try to lay claim as the best database/platform for mobile, they fail to meet the minimum requirements to even be in the game.

Ok…let’s do it.  Your users are going to love it – on the go, in the air, underground, in a crowd, on the job, or anywhere else.

Learn more at https://www.couchbase.com/developers/mobile/

P.S. Writing apps this way always results in TONS less code.  You write against a local database with all the concerns of networking and distributed computing being handled by the database.  Most of the time you won’t ever need to touch a network connection (how great is that!).  You will mostly be writing code to handle UI and UX concerns and the rest of the concerns are pushed down to the data layer.

Author

Posted by Wayne Carter

Wayne Carter is Vice President, Engineering at Couchbase, where he is responsible for leading the vision, strategy, and development for the company's mobile, IoT, and edge computing solutions. Before joining Couchbase, Wayne worked as a leader, architect, and engineer at Oracle and Siebel Systems.

5 Comments

  1. Hey Wayne,

    I\’m totally on-board with the \’robust-ness\’ sentiments in this article, but I must admit that I found unit testing with Couchbase a little troublesome at first. I think because the Database and Manager classes are \’final\’ some mocking frameworks don\’t mock them very well. Also \’Robolectric\’ the popular Android simulation API also struggled to start Activities that included Couchbase lite.

    However, I\’ve worked though these issues now, but to help others in the same position I\’ve published a blog article and GitHub repository of code that helps. The blog article is here: https://benwilcock.wordpress.c… and the GitHub repository with all the code to support it is here: https://github.com/benwilcock/

    Keep up the awesome work on Couchbase Lite, your team\’s efforts are much appreciated!

  2. Thanks Ben! I love your work!! Will make sure we share it w/ the rest of our community.

  3. Hi Wayne,

    I\’m sold, but how do i start? I have an android app that uses at Restful Python + PostgreSQL backend, would i need to move that over to Couchbase Server? There doesn\’t seem to be much info on how to handle that?

    1. James Nocentini March 19, 2015 at 1:12 pm

      Hi Samuel,

      To have the best support for offline you would need to migrate to Sync Gateway and Couchbase Lite together.
      You can import the current dataset to SG using the admin rest api http://developer.couchbase.com

      Feel free to reach out to us on the forum https://forums.couchbase.com/c

  4. PROVAB TECHNOSOFT October 1, 2015 at 12:15 pm

    Thank you for sharing this article. Have shared the link in my social networks.

Leave a reply