Mobile Applications Success Factors
Building a great mobile application requires a good foundation of research, analysis and planning. A fantastic idea can go down the drain if not implemented and executed properly. According to an article published in the Guardian by author Richard Farris, presents the following guidelines to make a user-friendly and well designed mobile apps.
Start by getting to know your audience, quite literally. Go and meet them. Learn everything there is to know about the context in which they use their devices: where, when, how long they use them for and what they do on them. Don't assume anything and definitely don't count on them having the same usage patterns as you. It usually doesn't take much time, and if you're low on resources you can just ask people in the street.
Your findings will help to fine-tune both the architecture and the features of your application. It could even prompt you to change the platform on which you want to launch, especially if you're focusing on a particular demographic. For example, a smartphone user in South Korea will probably be using an Android device.
Most of today's mobile software development kits (SDKs) include a decent range of frameworks, packages and other tools intended to make integration with the operating system seamless.
They enable you to do things like access the user's location or retrieve a contact from their address book. It's a good idea to make sure that everyone involved in the conception of the product understands exactly what is possible. A good mobile developer should be able to explain these capabilities without too much difficulty. I often find that this technical enlightenment not only motivates people, but can really ignite creativity and thus boost innovation.
It is common for mobile SDKs to come packaged with a user-interface (UI) framework, aimed at helping developers achieve a look and feel consistent with the platform. These frameworks contain, among other things, common UI components. A component can be extended, allowing you to modify or add to its standard behaviours or design. For those of you who use iOS, you may have discovered the ability in some apps to pull down and release a view, refreshing the content. This is an excellent example of how the native "table view" component can be extended.
Innovation is important when creating a mobile app; it can earn you big kudos, but it's also important to recognise when innovation has a detrimental effect on user experience. There is no solid rule to abide by or boundary to stay within, but by ensuring that your designer knows the platform well and uses it regularly, you should be able to avoid any "over-innovation".
A mobile app should be beautiful, responsive and a pleasure to use. Spend time concentrating on the smallest features; there's a limited amount of screen space on mobile devices so use it in the best possible way. People will undoubtedly notice and appreciate your attention to detail, especially the early-adopters – a key group of users to please if you're building your first app.
Many startups and developers tend to choose iOS when launching the first version of their app. A common reason given for this is because developing on other platforms can be quite fragmented. If you want to make an iOS app, the developer knows exactly what hardware will be used to execute it and the capabilities it allows. Designers will be happy too, as the retina screen resolution (used on the iPhone 4 and above) is exactly double that of the normal one (used on the iPhone 3GS and below), thus enabling easy scaling of graphics.
Android is slightly different; there are many devices, screen resolutions and versions of the platform, usually making the development process a little longer. Huge credit is due to Google however, who provide great resources and are actively fighting to reduce this fragmentation.
Avoid the temptation to "copy" your application onto another platform. On the iPhone, the menu tends to be in a bar at the bottom of the screen, on Android it's usually summoned by a button on the device, and on the Windows Phone OS the user swipes horizontally to change the content. Respect the norms and, again, ensure that your designer knows the platform well.
If you only have a limited amount of time but want to deploy across different mobile platforms then you should consider something like PhoneGap, a framework for building cross-platform mobile applications using web technologies.
Always keep your primary objective in mind and focus only on core functionality for the first version of your application. Don't be afraid to throw out features you're not 100% confident with.
Not only can you launch sooner this way but by carefully monitoring metrics, gathering feedback and releasing frequent, relatively small updates, you can essentially let users mould your application. Following this common software development philosophy will give you a chance to pinpoint problem areas very precisely along the way.
After identifying bugs that need to be fixed you will probably want to decide on new features and functionality to build. This is often rather tricky. The designer, the developer and the project manager may each have conflicting views. Quite naturally a discussion ensues, but this can be both time-consuming, and when there's no solid framework in place to help reach a consensus, unproductive.
There's a great method that I find particularly useful when agreeing on priorities as a team. It's called the KJ Technique and allows groups to efficiently prioritise subjective data. One of the wonderful things about this approach is the separation of ideas and discussion. Members of the team first write their ideas on sticky notes and stick them to the wall – they see each others' ideas, think of more ideas and put more sticky notes on the wall. Eventually similar ideas are grouped together, the groups are named, voted upon and out come the priorities.
It's an excellent way to include and motivate everyone at this crucial decision-making point, and it's also quite fun.
Don't rush into it
Start by getting to know your audience, quite literally. Go and meet them. Learn everything there is to know about the context in which they use their devices: where, when, how long they use them for and what they do on them. Don't assume anything and definitely don't count on them having the same usage patterns as you. It usually doesn't take much time, and if you're low on resources you can just ask people in the street.
Your findings will help to fine-tune both the architecture and the features of your application. It could even prompt you to change the platform on which you want to launch, especially if you're focusing on a particular demographic. For example, a smartphone user in South Korea will probably be using an Android device.
Make the best of what you have
Most of today's mobile software development kits (SDKs) include a decent range of frameworks, packages and other tools intended to make integration with the operating system seamless.
They enable you to do things like access the user's location or retrieve a contact from their address book. It's a good idea to make sure that everyone involved in the conception of the product understands exactly what is possible. A good mobile developer should be able to explain these capabilities without too much difficulty. I often find that this technical enlightenment not only motivates people, but can really ignite creativity and thus boost innovation.
Watch out for over-innovation
It is common for mobile SDKs to come packaged with a user-interface (UI) framework, aimed at helping developers achieve a look and feel consistent with the platform. These frameworks contain, among other things, common UI components. A component can be extended, allowing you to modify or add to its standard behaviours or design. For those of you who use iOS, you may have discovered the ability in some apps to pull down and release a view, refreshing the content. This is an excellent example of how the native "table view" component can be extended.
Innovation is important when creating a mobile app; it can earn you big kudos, but it's also important to recognise when innovation has a detrimental effect on user experience. There is no solid rule to abide by or boundary to stay within, but by ensuring that your designer knows the platform well and uses it regularly, you should be able to avoid any "over-innovation".
Focus on the details
A mobile app should be beautiful, responsive and a pleasure to use. Spend time concentrating on the smallest features; there's a limited amount of screen space on mobile devices so use it in the best possible way. People will undoubtedly notice and appreciate your attention to detail, especially the early-adopters – a key group of users to please if you're building your first app.
Consider platform fragmentation
Many startups and developers tend to choose iOS when launching the first version of their app. A common reason given for this is because developing on other platforms can be quite fragmented. If you want to make an iOS app, the developer knows exactly what hardware will be used to execute it and the capabilities it allows. Designers will be happy too, as the retina screen resolution (used on the iPhone 4 and above) is exactly double that of the normal one (used on the iPhone 3GS and below), thus enabling easy scaling of graphics.
Android is slightly different; there are many devices, screen resolutions and versions of the platform, usually making the development process a little longer. Huge credit is due to Google however, who provide great resources and are actively fighting to reduce this fragmentation.
Don't take shortcuts
Avoid the temptation to "copy" your application onto another platform. On the iPhone, the menu tends to be in a bar at the bottom of the screen, on Android it's usually summoned by a button on the device, and on the Windows Phone OS the user swipes horizontally to change the content. Respect the norms and, again, ensure that your designer knows the platform well.
If you only have a limited amount of time but want to deploy across different mobile platforms then you should consider something like PhoneGap, a framework for building cross-platform mobile applications using web technologies.
Release early, release often
Always keep your primary objective in mind and focus only on core functionality for the first version of your application. Don't be afraid to throw out features you're not 100% confident with.
Not only can you launch sooner this way but by carefully monitoring metrics, gathering feedback and releasing frequent, relatively small updates, you can essentially let users mould your application. Following this common software development philosophy will give you a chance to pinpoint problem areas very precisely along the way.
Prioritise efficiently
After identifying bugs that need to be fixed you will probably want to decide on new features and functionality to build. This is often rather tricky. The designer, the developer and the project manager may each have conflicting views. Quite naturally a discussion ensues, but this can be both time-consuming, and when there's no solid framework in place to help reach a consensus, unproductive.
There's a great method that I find particularly useful when agreeing on priorities as a team. It's called the KJ Technique and allows groups to efficiently prioritise subjective data. One of the wonderful things about this approach is the separation of ideas and discussion. Members of the team first write their ideas on sticky notes and stick them to the wall – they see each others' ideas, think of more ideas and put more sticky notes on the wall. Eventually similar ideas are grouped together, the groups are named, voted upon and out come the priorities.
It's an excellent way to include and motivate everyone at this crucial decision-making point, and it's also quite fun.
Source...