Latest posts by Doug Watkins (see all)
- CodeFights and Re-Learning About Bit Manipulation - October 20, 2016
- Firebase Account Creation Failure Without an Error - October 13, 2016
- Using Kickstarter to Vet an Idea - June 1, 2016
Everyone wants to know what they need to do to make a quality phone app, though this can apply to other software as well. There are thousands of new apps added to the app store every day. What can you do to get noticed in such a sea of options?
First, let me tell you what this page is not about. I am not going into the marketing/advertising/App Store Optimization of making a quality phone app, and these are all necessary things to get noticed. I am focusing more on the development and design aspects of your app. I myself am just getting really started with the marketing part of the process – something I thought was less necessary than it really is – so I can not as of yet inform you of these critical steps. BUT! I am working on it and will post some information on the subject once I’ve increased my downloads. I’ll post about each step and what my results were – that is a major reason for this blog actually.
The following can be used as a checklist:
[list icon=”check-square-o” font_size=”16″ icon_color=”00ff00″ columns=”1″ bottom_margin=”10″]
- Have a great idea
- Simplify the User Interface/Maximize the User Experience
- Quality Content
- Quality Code
- Quality Imagery
If you can look at the above list and say “Got It!” to all of these things, you are well on your way to making some money, or at least getting your app in front of a lot of people. If not, I’ll go through each option and give you some tips to help you create a quality app.
One other major point that applies to all of these steps, something I learned, you get out of it what you put into it. My high school auto shop teacher taught me this while we did body work on his pickup. Take your time, get it right. Of course after spending a year fixing his truck and doing all the body work to get it perfect, he decided to paint it neon pink – because he had a bunch of that for free – and did the paint job in about 10 minutes. The absolute WORST paint job I’ve ever seen, overspray, drips, and everything else you could do to make it look like crap, he did. Ruined a car in 10 minutes – but thats a story for another time.
The take away here is that these things take time. There is no magic bullet, or quick fix when it comes to quality, thats why quality is so desirable, it says to the recipient “Hey, this person really cares about this, they took a lot of time to make sure they got it right. Sounds like something I want to use.” And guess what, they would be right. Personally I feel that anything worth doing is worth doing right, so take the time to plan out your app, and these 5 parts of that process, before you start pounding out code or creating artwork. The results will certainly be better than if you don’t.
One last thing before we get into it, don’t skip any of these steps. Skipping a step will almost certainly lead to crappy quality, and thus angry customers or no customers. That truck looked better covered in Bondo than it did after a slipshod paint job. Up until then people saw that and said “He really wants that truck to look good”, after the paint job the best responses were “He must have been drunk when he painted that”, all because he skipped the last step of doing a quality paint job – even the color could have been overlooked if he had done a decent job with the paint.
Have a Great Idea
Step one, and the one step I can’t really help you with very much, is to have a great idea – not OK, passable, or even a good idea. If you come up with something that is mediocre – you will get, at best, mediocre results. If you want to make an app that NOBODY will use, then … well … nobody will use it. Before you take the time to do everything else, ask around. See if the people you know will actually use such an app.
It’s ok to develop a phone app for a small audience, just understand that you will only every be used by people in the audience you develop for, so make sure you really want to get in front of a small group before you say yes to such an app.
If people you know do like the app idea, refine it as much as possible. Get peoples opinions on what should be in the app. If multiple people request a certain feature, you should seriously consider adding it – along with this goes learning what your platform is capable of, Apple limits what a developer can access, so many things that are possible on Android are impossible on Apple.
Once you have a refined idea, sit down and write up your requirements – which features you will need to implement. Also write down a list of cool features you want to look into and see if they fit in your scheme. Lastly, think about your goals for your phone app.
An example is with My Food Storage – which I wrote. I wanted the user to be able to add an item in less than 10 seconds, this was an important metric for me, which meant that in the long run, I needed to do some serious trimming to my features. I wrote the app, had it almost finished, and then had my family test it.
I realized I was at closer to a minute to add a food item, unacceptable since most people have hundreds of items to add. So I had to go back and cut away many features, I had to decide what was truly important and what was nice, and keep only important things.
You couldn’t learn something and immediately put it into action. I’ve used codecademy.com before, and you learn and code at the same time. Plus from personal experience, I don’t actually learn programming concepts until I’ve actually used them, sometimes not until I’ve used it several times.
This ended up being incredibly simple, and yet within 24 hours of releasing it – with no marketing – I had received multiple emails from people thanking me for making the app. I haven’t even published the real reason I made it in the first place – a set of tutorials that you could read and then instantly put that knowledge into action, without any network connectivity or a computer in front of you.
My analytics on the app is weird, so I’ll be replacing it, but from my ads being displayed, I know people are using that app a lot. Some people are finding a real use, because I saw an opening and an opportunity. I saw an app that was performing, and made – at least in my opinion – a better version of the app.
Coming up with great ideas that fill a real need for users is the first, and possibly most important, factor in creating a quality app.
For more information on coming up with great app ideas, see this post.
Simplify the User Interface/Maximize the User Experience
UI and UX go hand in hand, developing one is developing the other – though not always in a positive way, but they both impact each other. UI is probably the biggest design decisions you will make. The code/features design decisions are probably the only bigger ones.
The reason functionality is higher is because those requirements are needed before you can design your interface. The reason UI is second is because this is what your users see and interact with – the interactions being the UX part – and so if your UI is poorly designed your users will feel it. Proper UI design also ensures all features are accessible. What use is adding a feature, and its required code and testing, if you can’t even get to that feature!
UI is the controls and visuals you put on the screen, the UX is what the user feels/thinks/loves/hates/connects with while looking at and using your UI. A simple UI generally improves the UX. Think about an app with 100 different options in the menu. That would be extremely overwhelming. Now picture the same options shown as 5 options – this would be like having sub menus for instance. The user opens the menu and only 5 things to choose – no more users deleting your app because it is too complex.
It doesn’t stop here though, because simplifying won’t necessarily do it. Your UI needs to be simple, but also intuitive. People need to pick up your app and within 10 seconds, know how to use its basic functionality – which should be 80% or so of your app. If they can’t figure out the basics without help, you need to simplify.
There are always edge cases – cases which are unlikely but possible – with this. You don’t need to worry about edge cases – such as 90 year old grandmas – being able to do this with your app, you include help, tutorials, and FAQ’s for them to get up to speed.
I personally use my parents as my test for the intuitiveness/simplicity of my designs. If my parents can figure it out on their own, then the majority of people can do the same. Understand that my parents aren’t stupid, or technologically slow, but programmers they are not, and so they don’t have my understanding of technology either. I guarantee you know somebody that would be perfect for you to use as a usability tester.
There can be uses of your app that people won’t just know they can do, and that is ok too, as long as the core use of your app isn’t lost to those who don’t know these secrets. Something like Apple’s mail app, you can swipe right to mark an item as read. I didn’t know this for over a year, but I still knew how to use the app’s core features.
That being said, I would include a place somewhere – maybe on your website – where people can go and see all the cool, quick access features that aren’t obvious. Include the obvious ones too so that your edge case users can find all the help and instruction they can want, without needing to email you for help.
The take-away here is to make sure that people can open your app for the first time, and very quickly understand how to use it.
What you put into your app has to be top notch quality itself. How can you expect to have a quality app if any area of your app is not high quality? Going back to the beginning, you get out what you put in. The quality of your content will sometimes be determined by the quality of your idea. But sometimes you will do something like my Coder app, which has content that I have created – namely tutorials in this case – which are added to the app.
I spent a large amount of time researching what information was important to include in my tutorials, changing the ordering of information – sometimes it didn’t make enough sense because you needed to know something else before getting to a certain piece of information – and working on the pacing of the tutorials. You also need to take the time to do your research and fact checking, make sure that what you put into your app is something that people will want, and will want over and over again.
I tried to avoid really long tutorials – meaning I had a set amount of content to cover, but didn’t want an individual tutorial to be too long. I wanted it to be as easy to read as possible, but I still needed the information to be there and be quality information.
This means you need to have adequately researched your content – it needs to be correct – and take the time to create flow in your content, and between your content and other areas of your app. Make sure people can get to what they want in a way that makes sense. Your content should be in line with your apps goals and intentions – this is images, words, and functionality – don’t put obscure references to something that has no bearing on the app.
An example from My Food Storage app could be: Adding a link to purchase a baseball bat on Amazon when the user pulls up their grocery list. This has no bearing on my app – if I really needed to add some sort of affiliate link there, adding a link to something like a crockpot or a grocery delivery service would make sense, and could add value to my app for my users. Everything in your app should be adding value to your users, and value they would expect and want.
All of your users should understand your content, don’t use slang unless the target audience expects it – such as an app for teenagers. Don’t use euphemisms or cultural references – again unless your audience expects it – as this can be confusing, especially for someone who is from a different country or culture. An example would be saying “You hit it out of the park” because this is a distinctly American phrase, and someone from a different country might have no clue what you mean.
Spell things correctly. Use proper grammar. This effort is sometimes missed, and can lead to instant uninstalls – because it makes you look like an idiot. This one thing can make you look stupid faster than anything else, so take the time to not only run spell checks on your content, but proof read everything else afterwards – they’re, there, and their are not the same words and will make you look extra stupid because you don’t seem to know how to use the english language properly.
Dont steal information or content – images, videos, articles, ANYTHING! Apple can reject your app for doing such, and even if it gets by them, you lose trust with your users. If you use open source stuff, or content with permission of the owner, don’t forget to attribute properly. Some people don’t care for attribution, but some care mightily. Don’t upset your sources by forgetting to attribute them to the information – somewhere in your app.
This can be harder for some people to spot or know if their code is quality. The first item here is make sure it runs. Go through all possible uses of your app, anything anyone can think of to do, and test for it. Get your app in front of as many test users as possible. Make sure that when you sign your name to it and submit to Apple that you have tested as many possible uses as you can think of.
Don’t EVER let your users beta test your app – by this I mean, don’t just put it in the store and let your paying customers be the ones to find your bugs. If you have a beta run you want to do, this is different – just don’t do it in the store.
We all have bugs in our code – even projects that look bug free have bugs, they just haven’t been found yet. There are so many variables in what could cause a bug that you could never write bug free code, but take all reasonable steps to get rid of as many bugs as possible. I read somewhere once upon a time that if you can get your app in front of something like 6 people you will find 80% of bugs – I don’t remember where that information came from to quote it directly, only that I learned it while doing my Senior project – a software engineering class at uni. So make sure you have several people help you test. Not only will you find more bugs, but you can also test the UX of your app while at it. The more you can test your code, the better its quality will be.
Also do other things like commenting your code, so that you understand what is going on when you come back. Removing old code you commented out to test something with. Formatting your code properly. Using proper indentations and naming conventions. Be consistent throughout your projects in your naming conventions. Learn the proper way to use the tools you have.
One thing that can help with code quality is to find open source projects that perform part of what your app is. You can’t just take an open source project and label it as your own and post it straight into the store, but an example from my My Food Storage app is the barcode scanner I used.
I don’t have the skills, actually experience would be a better word, in image processing to make my own barcode scanner. So I found an open source project and included it in my project – which required some customizing of their code on my part – and then added the entire license definition and links to the open source documentation within my project. I made sure everyone knew that I used a specific piece of code for that, plus I didn’t have to worry about writing and testing that – other than making sure it worked within my app.
If you can code in pairs, this helps code quality go up significantly. If you can’t, but can have a friend look over your code – after comments are thoroughly implemented – then you can likewise increase your codes quality. More eyes see more bugs.
Another development convention that can increase code quality is learning to use OOP and OOD principles – if you don’t know what those are, google them and begin to learn because these are must knows in the mobile app development world. Specifically I am thinking of code hiding, and using classes properly. If you can create a class that performs a set of functions, and you can test that class completely, you can use it in other projects and know that it works. Also, you can know that the code within it works right. Test each function on its own, then you know you can trust its output.
Being able to test each function on its own goes a long way toward high quality code, because you leave out the possibility of weird edge cases causing code failure. Hiding properties and some methods inside of a class also keep code cleaner, making sure that another class can’t try and do something stupid with your code. You may think you don’t need to hide code from yourself, but doing so creates cleaner code that is less likely to introduce bugs.
Part of this is under the quality/simple UI, but you will have all sorts of images to use – buttons, backgrounds, thumbnails, etc. – and these all need to be as high of a quality as you can manage. This doesn’t mean you need to hire a graphic designer, but if you can afford one then you should.
Imagery helps to inform the user – it can even cross language barriers – and thus is super important. When people look at something for the first time, their eyes first go to images. After they absorb the image a bit, then they will start to look for words. So if your image can tell the users what they need to do, then your app will be that much more intuitive, and users will be that much happier.
Learn to use Gimp and Inkscape to create your own graphics. Or if you have the money, invest in Photoshop and Illustrator, there are more opportunities to learn these than the free options. Either way they need to look good.
Don’t settle for almost good because you are tired or frustrated with your tools. Take a break and come back after you are less stressed. Along with images used inside the app, your app icon is incredibly important. It should be simple, and tell people what your app is about. It doesn’t need to tell this on its own, but between the title and the icon users should understand your app’s purpose.
Sometimes you can find images that work for you project on the internet. Just make sure you don’t just google something and grab images, this is stealing most of the time. You can use Google to find free images. Know what the license is for any image you choose to use, and that you follow the license terms. Some images require attribution – telling people where you got the image – and some require that you don’t edit the image at all. Find the license information for any image you want to use, and follow their terms strictly, or you could be in trouble.
Also, something that is important for phone apps is to only use appropriately sized images. Don’t scale images in a phone app, it will be noticeable and does not look quality. No matter which way to scale the image it will look pixelated. We are well past the 80’s and their associated 8 bit images. That being said, you can create games with the 8 bit image style, as long as it is a choice and you still make sure your images are appropriately sized.
Trust me when I say that this is an extremely important step. It can take a good looking image and make it look like crap. On iPhone you can name your images appropriately and the app can select the appropriate size based on which device is running the app.
Your app’s icon is another super important piece of imagery. Users need to see your icon and have an understanding of what your app is about. Your icon needs to make sense. It should also be the highest resolution you can make it. Vector images are really best for creating an icon, since they scale perfectly within the editor to create pixel perfect icons. Your icon also needs to be unique. It should stand out on all kinds of backgrounds.
Generally, simpler is better when it comes to icons – games are about the only thing that can get away with really busy icons. Apples icons are a great idea place for icons. They are simple, usually one or two colors, and you understand what the app is about just by looking at the icon.
In the end, my final test is “How does this look?” Will users see this and say, “Hey, I like this.”? If not, you still need to refine, or go a different direction.
Go and Do
Now you have an understanding of what are 5 crucial areas necessary to making a quality phone app, so go and make something awesome. I’ll be posting later with some advice for marketing your app and getting it in front of people – both things I did on accident without understanding and things I have learned since that are important.
What other tips do you have for others reading this about improving the quality of your tablet and phone apps? Comment below to let me know if I need to update my post.
If you have any questions for me about this post, or anything else related to app development, please post a comment down below or send me a tweet @iOSDoug. I look forward to hearing from you guys.
If you like what you see and want to keep updated, as well as be informed about when I release new freebies, sign up for my newsletter below for more tips and advice on growing an app business.