By Sarah Smith
At Orange Digital we don’t just build websites. We’ve built many mobile apps including internal business apps, B2B apps and apps suitable for the general public. After much deliberation about which app dev approach to take we tend to end up going with hybrid most often because that is most appropriate for agency work. By finding a balance between performance, access to native API and easy cross-platform migration and updates. But what’s good for us may not be good for you. I’m not an app developer, so this should be quite easy for most of you to understand. I’m going to take you through the thought process that led us to decide on our development style, and hopefully it helps you figure out which approach you want to take when developing your app.
Defining Your Project Requirements – User/Device/Operating System
Much like with the management of any project, defining your requirements is crucial to ensuring productive work is done. Identify your target user and which platform(s) they are most likely to engage your app in. Are they going to be most likely to use your app on the train on the way to work? On site? At home lying in bed? Identifying your key user and their atypical behaviour eliminates a lot of confusion right off the get go. By narrowing down the situations in which you can expect your app to be used, you can eliminate certain potential platforms you may need to support.
There are a number of devices you could consider having support for;
- Personal Computers and Laptops
- Wearable Computing (Google Glass, Watches)
Of course the most common ones for app dev are the smartphones and tablets. Defining your user and their likely way of getting the most out of your app allows you to make the next logical decision, which operating systems you need to support.
- iOS (Apple)
- Android (Google)
- Windows Phone or RT (Microsoft/Nokia)
- Blackberry OS
Peripherals & Features
Your app may synchronise with other functions or features of a device. Take Instagram for instance which utilises the camera function of the device, or Google Maps utilising the GPS function. It’s for that reason that you need to ensure that the device and operating system you end up choosing to distribute your app for, can actually handle the concept.
Peripherals & Features to consider before dev include;
- Screen Size
- Camera Resolution
- GPS accuracy
- OS Design
- Touch Controls and Behaviour
Now you’re probably starting to see why iOS is supported by almost every app ever developed. Because Apple don’t allow other manufacturers to use their operating system the devices that use it have consistent features and functionality. Android being available across such a wide variety of smartphones and tablets means that the functionality provided by the different device manufacturers is not always consistent so even though your app can run on all android devices sometimes it’s flawed.
So by now I hope you’ve noted what devices your app is most likely to be used by, the operating system that device uses and potential requirements from the device in question. You’re already well on the way to deciding how to develop your app.
By now you should have at least eliminated a lot of possibilities. If not then your idea might be just a little bit too big, or you may really have to develop it across a range of platforms. How do we continue to narrow down to find out how to develop it?
The question now becomes, should I offer support to all potential users of the app? Based on considerations above, you really should be left with a list of devices and operating systems that would be suitable for use with your app. Now is time to decide whether you need just one, two or all of the possibilities.
Left With Mobile Devices and OS?
I’m sure you were so I’m going to assume it. Generally speaking if you are developing a new app, you might want to test it before offering support to other platforms. This is one reason why iOS has more apps in it’s marketplace than Android, despite there being more Android devices and why it tends to get the release first. Because of the fact that the devices are consistent and as a snowball effect most developers are more well versed in using their dev kit, they’ll test the feasibility of their app on the App Store. If it gets a bit of traction, then give it support on Android.
This is where we decided that as an agency we couldn’t really do that. It’s easier for us just to work with a system that allows us to write apps that work on both systems off the bat because we make so many different kinds for so many purposes and businesses. That’s why we use Titanium.
Titanium is effectively a solution to having to write apps in multiple platform kits. Instead it parses the cross-platform code information into the native targeted platforms and deliver a balanced and efficient way to get performance and flexibility in time. There are other similar development tools you can read about here.
There are suggestions that using Titanium is somewhat unstable and glitchy but we’ve yet to encounter any problems we’ve been unable to fix using it. Of course if you have the budget, resources and skills at your disposal it’s almost certainly better to use native development kits to design your applications, just to ensure ongoing support, stability and security.
In the meantime Titanium is a good solution when you need to offer support cross platform and have limitations.