31/10/2014

By Dr Andy Piper, CTO, Push Technology


You might already have a mobile or web application or you might be starting from scratch. Either way, once in the mobile and web application game you are constantly in a battle for improvement. Your business, no matter the industry or if it’s B2C or B2B, will benefit from a functionality-rich performance application. It might be gained revenue, increased productivity or improved brand loyalty.

Whatever the benefit to your organisation, the rewards are worth it. There are, however, some do’s and don’ts of application development. Whether you are part of the development team or responsible for the end-user experience, these 15 do’s and don’ts will help you when developing or improving your mobile application.

1. Do support real-time experiences
We live in the moment and we want our apps to as well. Modern apps require access to real-time events from backend services, such as an alert for a factory monitoring application, or flight information for airport ground staff, aircraft crew and passengers. Take advantage of the volume of data generated and respond to end users in near real-time by providing an integrated streaming data distribution server. Incorporate data distribution technologies within your app development cycle that intelligently assess data to only send the most up-to-date information instantly

2. Do ensure your app is highly responsive
When your end-user does something with your app, you want to respond, immediately and certainly not longer than four seconds (we lose attention in that space of time!). Delivering an exceptional user experience is all about interactivity and responsiveness of the app, the timeliness and relevance of the data it presents and the cost of the running the app. Provide a development platform that enables you to build apps that can cope with speed, engagement and relevance of data.

3. Do keep scale in mind. What happens if your app goes viral?
What happens if your app goes viral? What happens if suddenly on a Saturday your app goes from 10,000 users to 2 million? Can you handle this type of scale? And can you do it without adding expensive infrastructure? Furthermore, what about handling the scale of the Internet of Things (IoT)? Developing with data distribution at massive scale in mind, your existing infrastructure must have the ability to support millions of concurrent users and do so quickly without crashing. You need to ensure the app you’ve developed can cope with the vast amount of data that will be sent to it and the app infrastructure can also support all the connected devices – there could be millions of concurrent users/devices accessing your servers – to support the IoT or for when the marketing team launches a new successful viral campaign.

[b/]4. Don’t develop for one device and platform at a time[/b]
Use a development environment that allows developers to write an app once and deploy anywhere, whether for the browser, a hybrid mobile application or native applications for iOS, Android or Windows. Ensure that your development environment supports all push notification methods. This should include Apple iOS (APNS – Apple Push Notification Service), Android (GCM – Google Cloud Messaging), Windows notifications and even SMS.

5. Don’t waste time getting to market
You want the development team focused on how your organization will offer an engaging app experience and you want your business teams identifying ways to monetize this. The key is getting to market quickly so you don’t miss the app opportunity. Give your developers the tools to develop apps that can reach the market quickly. This should include tools that cover the entire lifecycle - development, testing, deploying, running, analysing - your app as well as the capability to ensure high performance and scale. You also don’t want to waste time developing new ways to handle speed, scale and data efficiency, when the technology already exists.

6. Don’t develop an app that cannot make use of device features
Ensure you are developing with all of the latest client device SDKs, so you can build apps that make use of device features such as GPS to enable functionality based on location to push out specific notifications. Without this functionality, you might as well just create a mobile website.

7. Don’t assume network pressures and constraints will be blamed on the mobile operator
It doesn’t matter if it is a network issue, if an end-user is trying to use your app, but if the connectivity is intermittent, you are to blame. Deliver users quality of service by ensuring that if connections are lost you are picking up exactly where the session left off upon reconnection. This capability should be incorporated into the development lifecycle so that data distributed is cached close to the end user ready for delivery. Just as important is not wasting bandwidth or infrastructure on this; you should efficiently send only the most up-to-date changed data.

8. Do ensure your application integrates to the corporate and back-end systems and cloud
You want your app to talk to all the existing data services you have in place otherwise you’ll be wasting money introducing new data silos. Make sure you use plugin adapters to provide access to services apps require such as SOAP or REST, SQL databases and JMS message buses.

9. Don’t ignore the insights you can gain from mobile customers
75% of mobile shoppers take action after receiving location-based messages[1]. Know what your users or customers are doing with your application. Make use of comprehensive analytics to allow you to see how an application is used, what type of device it’s running on, where it is being run and what the common usage flows are through the application. All of this information should be fed back to the developers to further streamline the application for usability lending itself to better retention of users and improving revenue-generating opportunities.

10. Do incorporate security measures for apps
For enterprise apps, with end-users accessing sensitive corporate information via a company-issued device or their own (BYOD), ensure that you are only allowing a single point at which apps can access business-critical backend services. This eliminates the need to open holes in the corporate firewall, helping to prevent exposure to the Internet. You’ll also want to include fully-encrypted on-device application storage to prevent unauthorized data access if the device is lost or stolen. You will also want to ensure all network traffic between the app and the server is encrypted and includes user authentication and authorization for access to sensitive information.

For both enterprise and consumer apps, the app world has the same vulnerabilities as the desktop world. Plan to include application verification to prevent Trojan horse applications from accessing services maliciously.

11. Don’t use templates that dictate your look and feel
You want to create a continuous brand experience whether in person, online or via your app. You should therefore look to replicate your brand on your app and should avoid using development frameworks and templates that dictate your look and feel of the user interface and the flow of the user experience. Instead, use a development environment built on top of open, standards-based technology such as Eclipse and Apache Cordova. Also, make sure it is flexible enough to allow the development team freedom to design for a high quality experience.

12. Do test your app across platforms and devices without wasting time
In the race to get to market, companies will sometimes reduce the amount of time available to properly test their app. This ultimately leads to lack of testing, poorly performing software and inevitable customer frustration and lack of confidence.

Accomplishing this task requires teams to undertake tedious and time-consuming manual test processes on every target platform and device. This typically involves creating a list of user actions and expected responses, codifying these test cases in spreadsheets or text documents, and laboriously (and manually) running the test scenarios on all target platforms and devices, one test and one device at a time.

This doesn’t support a fast time to market. Arm your development team with integrated, cross-platform mobile app testing capability. This should include the ability for developers or testers to simply press a button to record a sequence of actions on a mobile device. Once captured, it becomes the basis of an intelligent, resilient and code-less test case that can be played back on demand on any iOS or Android device within the same OS family – and even on simulated devices.

13. Don’t deploy your corporate app on a public app store
Why spend the money and time validating your app in Apple App Store, Google Play or Amazon Appstore when your end users are within your own organization? Set up your own Application Center so you can deploy your app to your end users on your own terms

14. Do develop for clustering and failover support
Make use of a development platform that can provide all the clustering and failover support to provide a highly available and reliable connection point for applications.

15. Don’t make the development environment too complex
You want your development team focused on competitive advantages so make sure you select a development platform that is easy to use. This can include capabilities such as a drag and drop development interface based on the industry standard Eclipse IDE, coupled with a large built-in library of common UI elements. This allows stunning UIs to be built easily.