The Mobile App Trends Series is sponsored by Sourcebits, a leading product developer for mobile platforms. Sourcebits offers design and development services for iOS, Android, Mobile and Web platforms. Follow Sourcebits on Twitter for recent news and updates.

For mobile app developers, building an app rarely takes place in a vacuum, as most users expect their apps to interface and work with various Internet services.

Building a mobile app increasingly means building an app that can interface with its own server or set of network services.

For mobile app developers, picking and choosing a server or cloud solution for things like storage, push notifications, user information and analytics can be a struggle.

Fortunately, a new wave of companies and services are stepping in to help developers make the best choices.


Yay Cloud


With AWS, Amazon has really led the way toward making cloud services and distributed computing and storage solutions affordable and easily accessible.

Thousands upon thousands of application developers — mobile, web and desktop — use Amazon for storage, to run processes and to store or query data.

Amazon and its competitors have APIs and toolkits designed to make integrating their services with an existing app backend a snap.

AWS SDK — Amazon offers an AWS SDK for Android and an AWS SDK for iOS. These SDKs offer libraries, code samples and documentation to help app developers leverage Amazon’s AWS services, including EC2, S3 and Amazon SimpleDB within their own apps.

Windows Azure — Microsoft is pushing its Windows Azure cloud as mobile-dev friendly. The company has released official SDKs and APIs for iOS, Android and Windows Phone.

Google offers Android developers the ability to link their apps to Google App Engine, using the Google Plugin for Eclipse.


Cloud Backend Solutions


In addition to self-selecting cloud services from various providers, a number of startup platforms offer easy access to a variety of cloud services and backends, but without a lot of overhead hassle.

This space is often called Backend as a Service [BaaS] or Platform as a Service [PaaS] and it is heating up fast.

Most of these companies will work directly with the major cloud providers, like Amazon, RackSpace and Windows Azure, but will abstract the process so the developer doesn’t need to mess with a lot of settings, accounts or configurations.

Some of the players in this space include:

Parse — Parse recently closed its Series A funding round and is used by Band of the Day, Hipmunk and Yobongo. It works with iOS and Android and can connect with Heroku. You can also use Parse in cross-platform apps like Appcelerator and Sencha.

StackMob — StackMob is currently in private beta and has an SDK for iOS, Android, Java and custom server side code. Like Parse, StackMob can integrate with Heroku. It also offers server-side integration with Facebook and Twitter.

Kinvey — Kinvey was one of the earliest players in the space and it dubs its solution, Backend as a Service. Kinvey uses AWS, RackSpace Cloud and Windows Azure to offer up its backend tools, along with its own APIs that developers can drop into their own apps.

CloudMine — Cloudmine supports Ruby, Python, PHP and Java.

Buddy Platform — Buddy Platform is kind of a hybrid between developer platforms like Appcelerator and backend platforms. It has APIs for access to features like user management, geo-location data, photos and album information and user messaging.


Your Tips


Have you used off-the-shelf or infrastructure as a service tools in your mobile app? What should developers watch for? Let us know.


Series Supported by Sourcebits


The Mobile App Trends Series is sponsored by Sourcebits, a leading developer of applications and games for all major mobile platforms. Sourcebits has engineered over 200 apps to date, with plenty more to come. Sourcebits offers design and development services for iPhone, Android and more. Please feel free to get in touch with us to find out how we can help your app stand apart in a crowded marketplace. Follow Sourcebits on Twitter and Facebook for recent news and updates.

Image courtesy of Flickr, KEXINO

More About: AWS, cloud computing, cloudmine, features, kinvey, mashable, Mobile App Trends Series, mobile developers, mobile development, parse, stackmob, Web Development

For more Dev & Design coverage:





The Mobile App Trends Series is supported by Sourcebits, a leading product developer for mobile platforms. Sourcebits offers design and development services for iOS, Android, Mobile and Web platforms. Follow Sourcebits on Twitter for recent news and updates.

From Facebook to Google to BlackBerry to that little startup you haven’t heard of (yet), everyone experiences downtime, crashes, bugs and other issues from time to time.

It’s how you handle downtime that counts.

There are two fronts in the battle of the bugs — in-app communication and community management. Here’s a look at both sides, with some best practices and examples.


In-App Communication


Users love their apps. When an app faces a problem, many users are eager to do their part to help get things up and running again. That’s why it’s key to make it as easy as possible for those users to get in touch.

In-App Help Section

Every app should have an “about” or “help” section with instructions for getting in touch. It can be a form for users to fill out or something as simple as listing a support email address. You can’t go wrong setting up support@yourapp.com.

App Store Notes

You should list your support email address or support URL in your app store listing and encourage user feedback. This also provides users an alternative to the ratings section where they can vent their complaints.

In-App Alerts

Though it takes a bit of work to build into an app, there’s no better way to notify your users than with an alert that pops up inside the app. It’s also a great way to notify users of phone or carrier settings that hinder the app’s functionality (as opposed to a bug). For example, Foursquare built a proprietary in-app alert system that notifies users to server downtime, and reminds them when the app isn’t working because their phone lacks a signal or because GPS permissions have been disabled.


Community Management


In-app communication channels are key, but they tend to be one-way and a bit unfulfilling for users. Your most dedicated fans want a full explanation and accounting of downtime and bugs. Your power users want to have a conversation, not just and alert.

Be Easy to Find

Make the “support” button easy to find on your website. Be sure to include links to any other platforms you’re offering support on, like Twitter, your blog, etc.

Nurture Your Power Users

Your super users — the ones who use your app all the time and maybe even rely on it — are your eyes and ears on the front lines. They’re going to be among the first to report bugs, crashes and other issues. They might be a bit overzealous and make lots of feature requests, but don’t treat their love of your app lightly.

When they email you, reply promptly and personally. If they notice a minor bug, knowing that they’ll receive a personal response from a real human being can make it worth their while. Venmo, the peer-to-peer payment platform, does a great job of this, and even lets you report the bug as a payment request to their co-founders, netting you a couple bucks if the bug report turns out to be legit.

Setting Expectations

Regardless of the platform by which you communicate with users, it’s important to set realistic expectations. Honestly explain to users what’s going on and let them know that you’re aware of and working to fix the issue. Promise that you’ll update them as you know more and, if you are confident about a timeline, give an estimate. However, avoid promising when things will be restored.

Train Your Team

Your customer service tactics may come naturally to you, but that doesn’t mean your team is on the same page. Don’t underestimate the value of running them through a training session where you cover message, tone, technique, talking points and standards for responding personally and quickly to users.

Open Social Media Channels

Use your Twitter account to broadcast alerts and messages about what’s going on with your app. Your tweets should include a short acknowledgment and description of the issue with a link to your blog, where there should be a fuller explanation.

Customer Support Systems

When you’re receiving five or ten support emails a day, which is typical for a small startup’s app, handling the workload requires little more than setting up a Gmail filter. But as the volume increases, you’ll need to turn to a ticket-based support system. Foursquare uses Zendesk, but other popular options include Get Satisfaction and the beautifully designed HappyFox.

Video Responses

Blogs, tweets, and email alerts are nice, but a heartfelt video from the CEO is a great way to reach out to users and apologize for downtime or serious bugs in an application. Traditionally, videos are used to apologize after serious downtime, like BlackBerry’s recent boondoggle.

Offer the Full Story

Your users really care about your product. And a certain subset of users care really, really care. For the sake of those power users, it’s often helpful to write up a detailed debriefing of what went wrong, how you fixed it and what you and your team are doing to make sure that problem doesn’t come up again. Such transparency will be appreciated by your users and can go a long way toward helping you earn the trust of your users.

Cute Characters

There’s a trend among tech startups to have a cute character break the downtime news to users. Twitter famously has its Fail Whale, which has inspired t-shirts, Halloween costumes and more. According to Chrysanthe Tenentes, community manager at Foursquare, her company created the Pouty Princess as part of its prioritization to “communicate really well as a company.”

Full-Time Status Updates

If you have many users relying on your service, it may be appropriate to open up a Twitter account and blog dedicated to covering server status 24/7. Many services use subdomains like status.yourapp.com for such purposes. But when something major happens, it’s important to mention it on your main blog, where more average users will be able to find it.


Tools of the Trade


Handling a problem when it creeps up is important, but here are a few tips for stopping issues in their tracks, before they become a problem for your users.

Bug & Crash Reporting: BugSense and Flurry are services that can be integrated into your apps and seamlessly provide you with near real-time crash data. Using this kind of service should be a standard part of any developer’s process.

Server Ping: Server ping options like Pingdom allow you to monitor your server in real-time and even receive a text message if it goes down.

Apple Expedited Review: Android apps can easily be updated by the user, but iOS app updates must be reviewed and approved by Apple before they’re ready to deploy through iTunes. That can be a problem if developers need to make an urgent fix. For such emergency situations, Apple has created an Expedited App Review request form.


Special thanks to Chrysanthe Tenentes and Mari Sheibley from Foursquare, Chris Fei from MeetMoi, Paulo Ribeiro from HumanSpot’s Nostalgiqa, and Jason Schwartz from Matchbook for their insights.


Series Supported by Sourcebits


The Mobile App Trends Series is sponsored by Sourcebits, a leading developer of applications and games for all major mobile platforms. Sourcebits has engineered over 200 apps to date, with plenty more to come. Sourcebits offers design and development services for iPhone, Android and more. Please feel free to get in touch with us to find out how we can help your app stand apart in a crowded marketplace. Follow Sourcebits on Twitter and Facebook for recent news and updates.

More About: crash, features, mashable, Mobile App Trends Series, mobile apps

For more Dev & Design coverage:





The Mobile App Trends Series is supported by Sourcebits, a leading product developer for mobile platforms. Sourcebits offers design and development services for iOS, Android, Mobile and Web platforms. Follow Sourcebits on Twitter for recent news and updates.

You’re done. After months of slaving away over Xcode or Eclipse, you have finally finished your mobile app and submitted it to the App Store or Android Market. Within minutes of releasing the app, you see reviewers complaining about a bug or requesting a new feature. Whoops.

Figuring out how and when to update a mobile app is a crucial part of the mobile app development process. Mobile apps are very different from traditional desktop software apps. Let’s look at some of the most common reasons to update an app and how to handle the inevitable “upgrade” question.


Update Stages


When it comes to software versioning, or assigning a version number to a certain piece of software as it exists in a unique state, the most common number scheme is to assign a major version number, like 1, followed by a point release for minor updates, and sometimes followed by a second-point release for a revision or bug fix.

In the software world, version numbers typically follow a major.minor.revision pattern. For example, the current version of Twitter for iPhone is 3.3.6. The “3″ indicates that it is the third major release. The second “3″ indicates that it is the third minor revision of that release and the “6″ indicates that it is the sixth revision, or bug fix, to that minor release.

These numbers indicate what type of update an app has received.

The Bug Fix

The most frequent types of app updates are bug fixes. Bug fixes are typically covered in “revision” or “bug fix” releases. Bug fixes don’t change the structure or feature set of an app. Instead, these updates make sure that the app is working as designed.

No matter how much beta or user testing a developer does before releasing an app, there are always going to be problems, bugs and issues that only show up after the app is used more broadly.

Bug fixes are a way to keep the integrity and structure of the app intact, while making sure that it doesn’t crash and performs more optimally.

Google‘s update policy with the Android Market allows developers to push out updates whenever they want. With Amazon, Apple and Microsoft, however, updates have to go through the same approval process as submitting an app to an app repository in the first place.

Apple has a policy in place with the App Store that allows developers to fast-track an important or crucial bug or security fix without having to wait as long as with a regular update. Still, these instances are reserved for situations in which an app is either crashing consistently or is potentially insecure.

Because it takes time for even bug fixes to get approved, many developers try to lump several updates and bug fixes together in one release. This limits the number of new downloads for the user and prevents the developer from having to wait through multiple approval queues.

Developers should triage bug fixes based on factors like how many users are affected (or how many have complained) and the severity of a problem.

Adding or Removing Features and Updating UI

Adding or removing features from an app is a more significant update than a bug fix. For example, when Facebook released version 3.5 of its iPhone app, it rolled in new privacy updates, refined the user interface and added the ability to share external links from within the app.

It’s common for developers to use designations like “.5″ as a major milestone for a release. In other words, a 3.5 update is often seen as more significant than the 3.1 update.

Adding and removing features is an important part of the app development process. When it comes time to add a feature, it’s important to look at the feedback you are getting from your users. If enough users are requesting a feature, it’s a good idea to look into what would be required to add that feature.

Just as important as adding features is removing functionality. It isn’t uncommon for developers to go into the app creation process with one feature in mind, only to find that users don’t like or use the feature, or that it doesn’t work as expected.

Sometimes, features have to be removed for performance, stability or even compliance reasons. When making the decision to remove a feature, keep in mind what impact removing that feature will have on your users. If a feature is causing undue strain, performance problems or it’s not being used, dropping it is often worthwhile.

Marco Arment’s popular Instapaper app for iPhone and iPad has undergone some significant changes over the years. Arment is not afraid to remove features that aren’t used by enough of his users or that cause undue server strain.


Major Updates


A major version number update indicates that the app has some significant changes to its features, UI or both. This is the big release for an application.

Earlier this week, Instagram released version 2.0 of its popular iPhone app. The new version added a significant number of new features, including live filters, tilt-shift in camera, higher resolution photos and enhanced filter options.


Major Update or a Whole New App?


The big question for lots of mobile developers is when to issue a major update — as in a new version number — and when to release a whole new app.

With traditional software, developers can charge for software and offer special upgrade pricing. For example, when I bought Adobe Creative Suite CS5.5, I was able to get a discount directly from Adobe because I owned an earlier version of Creative Suite.

Likewise, when my favorite lightweight image editor Acorn was updated to version 3.0, its developer was able to offer it as a whole new version and charge for it accordingly.

This isn’t the case with most mobile app stores. Apple doesn’t allow developers to offer upgrade app pricing. In other words, if I want to update my iPhone app to version 2.0, I have to either give everyone who purchased 1.0 or higher a free upgrade or release a brand new version of the app.

Both strategies have their pros and cons, and it’s important for developers who charge for their mobile apps to take both scenarios into account.

Pros and Cons of Releasing an App Update

  • Pro: Existing users will be happy that they don’t have to pay.
  • Pro: Promoting the app and the update won’t require changing any links to the App Store.
  • Con: The development costs for the new version need to come from brand new customers.
  • Con: Users are forced to update the app (unless they explicitly choose not to).

Pros and Cons of Releasing a New App

  • Pro: The developer can get paid for their work.
  • Pro: Users are not forced to upgrade the app. They can continue to use the old version indefinitely.
  • Con: Users might revolt or be disinterested in buying a new version.
  • Con: Migrating settings might be difficult or untenable.
  • Con: Promoting the app and letting new users know about the upgrade might be difficult.

Most mobile app developers do not release a new version of their app and instead update the existing version. However, some developers have managed to release a new version of the app and have done so successfully. Before selling to Twitter, Loren Brichter released Tweetie 2 for iPhone as a brand new app, and thus a paid upgrade. Some users did complain about the charge, but Brichter held his ground and the app was a massive success.

A common workaround that many developers have successfully used is to offer their app for free for a limited time, in order to allow existing users to upgrade for free, and then to start charging the usual sales price. Some developers also offer the app at a discount for the first few days both to promote a new release and as a gesture of good-will towards existing users.


In-App Purchase as an Update Tool


For developers of games and other types of extensible apps, a common upgrade approach is to release new level packs via in-app purchase.

PlayFirst, Inc’s Dash series of games frequently releases updates both to the main application, as well as additional level add-on packs. This is an easy way for the developer to extend the game without forcing customers to buy and download a new version.

Likewise, music apps and document and utility managers can offer add-ons that add support for new features.

Keep in mind, the in-app purchase approach doesn’t work with all apps. It’s a very different type of business model, but for game developers, can often be the best way to approach extending a game.


Your Thoughts


When do you update your apps? Are you in favor of releasing free major updates or releasing a brand new version of an app. Let us know.


Series Supported by Sourcebits


The Mobile App Trends Series is sponsored by Sourcebits, a leading developer of applications and games for all major mobile platforms. Sourcebits has engineered over 200 apps to date, with plenty more to come. Sourcebits offers design and development services for iPhone, Android and more. Please feel free to get in touch with us to find out how we can help your app stand apart in a crowded marketplace. Follow Sourcebits on Twitter and Facebook for recent news and updates.

More About: features, mashable, Mobile App Trends Series, mobile apps

For more Dev & Design coverage:


The Mobile App Trends Series is sponsored by Sourcebits, a leading product developer for mobile platforms. Sourcebits offers design and development services for iOS, Android, Mobile and Web platforms. Follow Sourcebits on Twitter for recent news and updates.

As the mobile application space continues to explode, developers are increasingly using HTML5, JavaScript and CSS3 to aid in the creation of web apps and native mobile apps. This process is especially useful when dealing with cross-platform development or when working with content that already exists in some form on the web.

We’re going to take a look at how some of the best HTML5-centric, cross-platform mobile frameworks are being used to help developers deliver native app experiences on a variety of devices.


Why HTML5


Given the hype and buzz surrounding HTML5, it would be easy to believe that it is a technology that will do your laundry, mow the lawn and make you dinner. In truth, HTML5 isn’t the second coming, and it isn’t an officially ratified standard — yet. The spec continues to edge closer to completion, however, and when combined with JavaScript and CSS3, HTML5 can do some really incredible things.

This is particularly true for mobile devices. A de facto requirement for any modern mobile operating system is the inclusion of a modern HTML5-compliant web browser. The leading modern mobile platforms — iOS and Android — both use WebKit as their bases. Likewise, BlackBerry and HP/Palm are also using WebKit and Microsoft is going to release a mobile version of Internet Explorer 9 for Windows Phone 7.

What this means is that out of the box, modern smartphones and tablets support the bells and whistles that make HTML5 so special. It also means that developers can feel free to use those technologies when creating their applications and not have to worry that the device itself won’t support a particular function.

It also means that developers that choose to create HTML5 web apps for the desktop — like for the Google Chrome Web Store — can often use the same code when crafting an app for the iPad or for other tablets.

Earlier this month, leading iOS developer ScrollMotion released its first simultaneous e-book for the iPad and Chrome Web Store.

Because ScrollMotion has built its underlying app platform in HTML5, porting the content to a non-iOS device, like the Chrome browser, required very little work.


Platforms


Choosing what mobile platforms to support continues to be a vexing problem for developers both big and small. Supporting one platform can be difficult enough, but now developers not only have multiple operating systems to consider, but multiple device types as well. iPhone and iPad apps can be packaged together, but both require separate experiences and views.

Likewise, Android developers that want to target the upcoming wave of Honeycomb tablets will need to create variations of their apps for the different device types. Add in the BlackBerry PlayBook, HP’s TouchPad and the future devices from Nokia and Microsoft, and it’s not difficult for even a large development team to become overwhelmed.

Fortunately, this problem has created a microcosm of cross-platform mobile development tools. We’ve covered a number of these platforms and frameworks in the past, but we want to highlight a few that specifically target HTML5 and JavaScript.

Appcelerator Titanium

Appcelerator’s Titanium platform was designed from the offset to help web developers create mobile and tablet applications with ease. Over the last year, the platform has seen tremendous growth, and new features and devices are added at a fast pace.

Appcelerator recently acquired Aptana, which should ensure that the tools for building its apps continue to improve and evolve over time.

Some of the apps that have been built with Appcelerator include GetGlue for iPhone, iPad and Android and ScoutMob’s excellent iPhone app.

PhoneGap

PhoneGap is an HTML5 app platform that lets developers build native apps using HTML5, CSS3 and JavaScript. What really sets PhoneGap apart is that it lets developers create a full-functioning mobile web app but place that app in a native wrapper, so that it can use native device APIs and get submitted to the App Store or Android Market.

In essence, it enables mobile developers to cre
ate an app just as if they were targeting the mobile browser but with the benefit of being able to get into the App Store.

PhoneGap Build is a new service (still in beta) that lets developers quickly and easily create app-store ready versions of their apps for various platforms. It does all the work of compiling the code for various platforms and gives the developer a final build suitable for submission to the app market of their choice.

Ars Technica used PhoneGap to build its iPad app. This is a great example of using web standards to deliver an app that presents existing content in a customized view and experience. Clint Ecker’s post about how the app was built is worth a read.

Rhodes

Rhodes is a Ruby-based framework designed to help developers create native apps for a wide range of devices and platforms. The reason we included Rhodes in this roundup — despite being a Ruby tool — is that it uses HTML, CSS and JavaScript in its views. That means that HTML can be used for the interface aspect of the app — even if Ruby is what is powering the work on the backend.

Unify Project

The Unify Project is a set of tools designed to make it easier for developers to create smartphone apps using HTML5, CSS3 and JavaScript. Sponsored by Deutsche Telekom, Unify is published under a dual open source license (MIT and Apache version 2.0) and it uses PhoneGap, Adobe Air, Sass and the quooxdoo JavaScript framework.


Additional Tools


Using various mobile web frameworks alongside an HTML5 platform is a common approach to mobile app development.

Developer Pete Freitag recently gave a presentation on building mobile apps using jQuery Mobile and PhoneGap. Freitag made the slides available on his website and the presentation offers a nice overview of how to use two emerging web frameworks together.

Feitag’s tracking and reimbursement app Mileage Pad was built using PhoneGap and jQuery Mobile.

Other web frameworks that can be used alongside PhoneGap or Rhodes include Sencha Touch and SproutCore.


Or Just Make an HTML5 App


Of course, an increasingly viable option for mobile developers is to just use HTML5 to create a mobile web app.

As HTML5 gets better and browser support of HTML5 improves, the differences between running an HTML5 app in a native wrapper, a la PhoneGap, and accessing an HTML5 web app from an app shortcut on your home screen is going to continue to disappear.

Lots of companies — including Facebook — are looking at HTML5 as the future platform for their apps that target next generation devices.

Earlier this month, 37signals decided to forego building a platform-specific mobile app for its Basecamp product and instead created Basecamp Mobile. This decision initially drew some criticism, with members of the developer community questioning the company’s decision to just use HTML5.

With the recent Readability kerfuffle, it’s possible that more developers will start considering a mobile web approach for their applications. Readability’s Rich Ziade and Dan Benjamin discuss the issue in length, including what it means for mobile developers, on “The Daily Edition.”


The Future is Bright


Whether it’s through a framework, via an application wrapper or as the basis for a mobile web app, HTML5 is going to continue to be an important driving force for mobile application development.

In fact, as the technology evolves, we wouldn’t be surprised to see more HTML5 elements popping up in native desktop applications as well.

Are you using HTML5 when building mobile apps? Let us know.


Series Supported by Sourcebits


The Mobile App Trends Series is sponsored by Sourcebits, a leading developer of applications and games for all major mobile platforms. Sourcebits has engineered over 200 apps to date, with plenty more to come. Sourcebits offers design and development services for iPhone, Android and more. Please feel free to get in touch with us to find out how we can help your app stand apart in a crowded marketplace. Follow Sourcebits on Twitter and Facebook for recent news and updates.


More Dev & Design Resources from Mashable:


7 Hot Trends in Mobile App Design
How the WordPress SEO Plugin Can Help Your Blog [INTERVIEW]
5 Website Features You Can Easily Offload to Reduce Costs
This Is Why You Always Pay Your Web Designer
Learning Ruby: Expert Advice for Advanced Developers

Image courtesy of iStockphoto, a_Taiga

More About: appcelerator, css3, HTML5, javascript, jquery mobile, Mobile App Trends Series, phonegap, rhodes, sencha touch

For more Dev & Design coverage: