It’s not a fad, smart phones and tablets aren’t going away anytime soon. But the way we used to approach our projects has. If you’re designing an online service you now have many possible touch points. The web browser, once considered the only way, is just one of many and it may not even be ideal. When designing for mobile devices you’ll be faced with a whole boatload of considerations and decisions that didn’t exist before. Will we need a native app or a web app? What type of form factor will we use? What infrastructure does the platform (android, iOS, windows phone) provide? How do users on that platform typically behave? What does the user of an iOS device (i.e. more animation and polish) expect vs. the user of an Android device (i.e. more technical control)?
All of these decisions invite opportunities for missteps which can easily lead a team toward failure. Here are some important things to consider when approaching a mobile project:
1. Being specific is more important than keeping it simple.
What I mean by being specific is staying focused. If you’re building a native app for a smartphone, you need to consider your product. If you need to monetize it via app sales than you’d likely want to focus on the platforms or devices with access to a well organized store. More importantly, you’d want to focus on the devices that actually have users who typically purchase apps. So infrastructure and user behavior on said platforms is key. Prioritize which platforms are most important for your concept to succeed. Don’t make irrational decisions to deploy your application as a web application simply because it’s easier to launch on multiple devices. Likewise, don’t chose to build a native application over a web application just for the sake of being found in the app store. The complexity of the product (is the product a video editing suite or just a simple time entry solution), the revenue model (subscriptions, purchases, ad-driven, etc.), and user expectations for such a product (would people expect the product to naturally work offline? Do you expect frequent or infrequent engagement by the user?) are all things that must be taken into account. The bottom line is to know what platforms are most important for your product and why.
2. Focus on one platform at a time.
Don’t get carried away and try to develop an application for multiple platforms simultaneously. Prioritize and focus on the most important platform and learn your lessons early before spreading your resources too thin trying to target multiple device platforms. This is especially true for native apps. Users of android phones have different expectations than those on iOS. Focusing on one at a time allows you to craft a good product sooner and less expensively. Working on multiple platforms simultaneously can be risky. Not only does it take more resources, but supporting multiple platforms also means you’re more likely to focus on consistency rather than taking into account the nuances in expectations specific to users of each platform. This is even true of a web based application as the variation in device form factor and capabilities of the various devices will create a more hostile environment. You or your development team will eat time and money supporting issues on less popular devices that aren’t representative of your primary audience.
3. Don’t cut corners.
Remember, identify your best platforms and focus on each one. Don’t fall into the trap of using frameworks that make it easy to deploy a native app cross platform just for the sake of getting on to multiple platforms quickly. Rather, choose to use a framework if it provides the resources you need to create a great product on your target platform with the resources you have available. For instance, Unity3D might be an awesome option for the complex 3D rendering and physics overhead it eliminates from your project. Or consider frameworks like PhoneGap or Mono if: 1. your team is more capable of developing with web based technologies or C-Sharp AND 2. the experience you can provide with the framework meets your users expectations. Unity, PhoneGap, and Mono, are all cross platform frameworks, but you’d be using them for the wrong reason if you compromise the user experience just because it seems like a cheaper route to support multiple platforms.
Reach Shouldn’t Trump Experience
The real lesson is that any strategic decision that sacrifices the experience of the end product to save on cost should be reconsidered. Think about narrowing the scope of the product instead of creating shortcuts to do everything for less. While it might seem like you can have your cake and eat it too, if the cake is mediocre, not very good in taste, and has a funny texture on your end user’s mobile device, the chances of it being a success with them is going to be unlikely.