Understanding The Need For Servers With Mobile Apps
January 24, 2011 Leave a Comment
I was looking into different task management solutions and recently started using iProcrastinate on my Mac. Let me say up front that I most definitely procrastinate. I’ve been writing the same book for several years and I rarely get my taxes done on time!
iProcrastinate looks good so far. It has the right level of functionality and the interface is intuitive enough. I grabbed the iPhone version and proceeded to sync. This was not so easy. My desktop Mac is on a LAN and I had to go wireless to sync even though my iPhone was docked. Say that again?
I soon realized though that this made sense for an application running on different devices when there is no central server. My systems needed a direct connection to communicate and that can only be done with devices on the same network if there is no other central means to establish the connection. I remembered that I did not have to complete a sign up process to get started, which in truth was a nice simplification. I would either have to connect my iPhone to my LAN (not sure that is even possible) or add my Mac to the wireless.
Let’s dive into the role of servers and the whole sync issue for a bit. For my devices, I have 3 ways to synchronize content:
File transfer – Files are transferred between the devices directly. Launch the iTunes application with your device connected and click the Apps tab after selecting the device. You see all the apps sharing files with your device at the bottom of the page.
Central server – A central server synchronizes all data and files between various systems. The master at this is DropBox. Install DropBox and watch how changes on one device are reflected on the others. Evernote.com is another good example. Record a voice memo on your iPhone and then listen to it on Evernote.com. Both of these examples use a file as the base transfer unit, but there is a lot more information being shared including accounts, meta-data, etc.
Direct sync – This is the third case best illustrated by iProcrastinate. You don’t need iTunes or a central server. The two devices, in my case my iPhone and desktop, set up a direct connection or socket after which information is transferred automatically. This is slightly better than straight file transfer as more than just files can be shared. It also has benefits over a central server including no need for an account or even an outside Internet connection to sync.
My favorite approach is the central server and not just because I am a server guy. I like to sync from anywhere whether I am in my office or traveling in Costa Rica. I really don’t mind creating an account although I hate it when my account information is shared with another service. A central server provides solid functionality including:
- Centralized backup of my content
- Support for multiple devices
- Anytime access to my data and information
- Security through account management
The primary reason developers don’t use a server is cost/effort. After all, file transfer comes for free if you use that approach. You don’t really have to do anything. Data sync requires development time. Once launched, however, there are no on-going costs or servers to support. The server represents a commitment to users to keep the application running in a secure hosted environment that must be available on a regular basis if it is to have any value.
In my opinion, the server architecture is the ideal approach for supporting solutions that require data sharing and synchronization. Server side languages and solutions are cheap enough and easy enough where a reasonable developer can develop a solution without too much effort or time. My favorite combination right now is Ruby on Rails hosted at Rackspace. In the end, there are other ways to support disjoint data, but none of them are as powerful and capable as a server-based solution.















