What Are The Best Tips And Practices For Creating Mobile Apps?
When learning programming or design, where do you start? It’s tough as a beginner, knowing that there’s much to learn in so little time. And when you’ve learned a new topic, how do you know whether you’ve truly mastered it? To shed some light on learning how to create mobile apps, I’ve set out 9 different places to go, people to meet and tactics to keep in mind.
Each of the 9 tips and best practices are valuable for anyone working in the mobile industry, beginner or veteran. Whether you want to learn programming, become better at design or are at the managerial side of things: these tips will help you, definitely.
1. Visit local Meetups or Hackathons, and learn from others
They’re active in any city: meetups. On any topic you can imagine: cooking, foreign languages, beer tasting, graphic design, board games and of course… coding! One of the more popular iPhone and OS X programming meetups is CocoaHeads, active in over 100 cities around the globe.
At a meetup you can meet other programmers and have an informal discussion or get-together about programming. Many of them also host “hackathons”, to work on your own project in a co-working environment, or to invent something new with other hackers (the good kind). Hackatons allow you to refine your skill, discover new methodologies and projects, and meet like-minded people.
2. Be mindful of usability and UI/UX design
It’s often said that programmers aren’t good designers. However, the fact that many people specialize in just one thing, doesn’t mean they only must do that one thing! Any person can learn anything, thanks to the flexibility of their brain.
A typical programmer is highly analytical, a good problem-solver and can think in abstract terms. Your typical designer is creative, an emotional thinker and has the ability to see the world through a user’s eye. Why not mix the two? As a programmer, be mindful of usability and UI/UX design. Pick up a course on graphic design on Udemy and train that pixel-perfect sense. As a designer, try out some programming and learn to see the world as a big connected system.
3. Define what your customer needs and work towards it in iterations
Back in the day, when I was still studying, we worked in group projects on many occasions. Often, we would apply the management method that’s known as “Waterfall Management”. Usually, immediately after getting the assignment, the coder in the group would start programming, the designer would create something visual and the others would start working on its business case. We would handle problems as they came along, with no clear goal or path before us.
That’s not a great approach to management. Properly managing a project means chopping up the work into small pieces, and delegating them to the appropriate people. You would start with the simple question: “What does our customer need?” and find an answer for it. Then, you’d create the first version of the product. A rudimentary form of it, version 1.0, and work from there.
Scrum, or agile development, made this iterative way of working popular. You define the scope of the project, and then continue working on each version of it in small phases.
4. Use the right tools for the job, even if you don’t know them
When you walk into a craftman’s workshop, what do you see? All kinds of tools and material, carefully laid out in an organized system. When the craftsman isn’t working, he keeps is shop clean and tidy.
The fact that the work of a developer or designer is solely virtual, doesn’t mean his or her workshop shouldn’t be kept neat and clean. And when working on a project, make sure you use the right tools for the job. Think about using a code versioning tool such as Git, and working with Photoshop (pixel-based) instead of Illustrator (vector-based). Fire up a virtual machine when working with complex back-end services, or use a product such as Parse when you don’t want to create a back-end yourself.
Scout around to discover new tools. There’s always something out there that makes your job easier. It’s said that Google employees get to spend 1/5th of their time on personal projects. Why doesn’t an indie developer do the same? Spend some time during the weekend to discover and try out new technology.
5. Create mockups and document flow diagrams
Planning a project well saves you a lot of time. You don’t just plan your time, but you plan the layout and visual aspect of the project as well. How is your customer going to use your product, and how can you support that?
By creating mockups you plan the visual layout of a product. Then, print the mockup on physical paper and cut out each and every app interface with scissors. Then, tap with your finger somewhere on the screen. What happens?
Document each of the interactions with the app in a flow diagram, and annotate it with text. This method is called “paper prototyping” and it’s one of the most effective I’ve used in my work. It may seem silly, but walking through an interface together with your co-workers, while performing all the user tasks, is a great way to visualize the workings a product.
6. Gather beta testers and test your work
Very often, your product isn’t used in the way you intended. Humans are weird sometimes, and although you designed your product with the utmost care, some users just don’t seem to get it. Right?
No, wrong. You don’t get it! You didn’t test your product with its actual customers or users, and because of that never confirmed the correctness of any design decision you took. Don’t worry, it’s never too late to test. Gather some friends and family (or hire a professional tester) and put your product in front of them. Don’t tell them anything, just see what they do. You might want to tape it on camera, or sit next to them to see what they do.
On many occasions, I saw a user do something that just made my jaw drop. Why are they clicking there and not there!? Testing your products really makes it a better product.
(Can’t decide on what to fix? Choose the quick fixes and the Super Obvious Fixes, or read “Don’t Make Me Think”.)
7. Don’t try to create a unique product
Creating a unique product is the bees knees, the pinnacle of perfection. When you create a unique product, customers will flock to you and throw money begging you to provide them your product. It’s what they say: be remarkable, and people will see you. Right?
Yes, see you. But have you ever bought a purple cow, because you saw one? Being unique and remarkable might get a potential customer in the door, but it won’t convince them your product is the best. They might as well get offended by its unique design and choose a more comfortable, mediocre product.
Don’t try to create a unique product. Invent something people can benefit from, something they want to use. Solve a problem, instead of desperately attempting to create something no one has ever seen before.
8. Benefit from App Store Optimization
Every day about 300 new apps get published in the App Store. Right now, all the stores together hold over 4 million apps. The majority of those apps does not have one single rating or review. Needless to say, the App Store is a full and crowded place. Each of those apps is begging for the user’s attention, and competing over the 1–10 second attention span a user has.
Applying App Store Optimization makes you stand out from that crowd. Many tactics can be used to speak to your potential customers in a clearer voice.
- Create an identifyiable icon for your app, something that stands out on their Home Screen.
- Present your app in it’s screenshots, showing a potential customer what they need it for. A customer must be able to answer this question from your screenshots: “What’s in it for me?”
- Write a compelling app description and do keyword research into the kind of words your users like, use and search for.
9. Know what you don’t know
The true key to mastery of any subject is acknowledging what you don’t know. That’s the only way to learn: find out what you don’t know, and then make it known. But how do you know, what you don’t know?
Discovery is key to learning, whether it’s learning a new toolset, a new word or a new concept. I have personally gotten much better at programming and marketing by teaching about it. It seems paradoxical, but it simply meant I had to revisit what I already knew. By doing that discovered new ways, new tools and new topics to learn. I could only do so by accepting that my knowledge was incomplete, and that there are many topics I know nothing about.
There’s this story about a monk and his apprentice. The apprentice is very eager to learn and complains to the monk he’s not teaching him fast enough. The monk asks the apprentice if he wants some tea, and the apprentice hands over his cup.
The monk pours tea into the cup. When the cup is full of tea, he doesn’t stop. The apprentice shouts: “Stop, you’re spilling the tea all over it!” Then, the monk stops and says: “The cup is as your mind. Before I can fill it, it has to be empty. Yours is filled with expectation, haste and fear. Empty it, so you can learn.”
Hi, I'm Reinder.
I help developers play with code.
Most Popular Content
- How To Launch Your App
- How To: Pass Data Between View Controllers In Swift (Extended)
- How To: Displaying Alerts With UIAlertController In Swift
- How To: Random Numbers in Swift 4
- How To: Build A Real-Time Chat App With Firebase And Swift
- Creating A Simple iOS Game With Swift In Xcode
Comments & Questions
Got a comment or question? Let me know! I read and respond to every one. Thanks!