5 Steps for Creating a Successful Mobile App (Part 2)

The following is Part 2 of our article on the 5 Steps for Creating a Successful Mobile App. Click here to read Part 1.

3 – Building Your App

Native, Web or Hybrid

A key decision concerns whether your app will run natively, be web-based or be a hybrid of these two methods. It is possible that you will want to access the advantages of each approach by creating different app versions.

Native apps run directly on a chosen platform, such as iOS or Android. This approach generally provides the highest speed, reliability and direct access to every gadget and widget on a particular platform. The app is written in a particular language tied to the platform you choose, i.e. Swift or Objective-C for iOS or Java for an Android platform. There are cross-platform development environments, but that level of complexity and expense is not recommended for first-time app developers.

Web apps utilize HTML5, CSS3 and JavaScript. The app is executed via the platform’s web browser, so it is more limited in terms of accessing platform capabilities directly, though that situation is gradually improving. Overall performance, especially on resource-limited platforms is diminished. Of course, web-based apps are platform-agnostic, meaning more devices are available to your app.

A hybrid approach is essentially a web-based app that is packaged inside a platform-specific execution shell. Thus, it installs like a native app, may have access to device hardware via a framework such as PhoneGap, but its performance is on par with web-based apps.

There are many more pros and cons to each approach, but for first-time app developers, either the web-based or hybrid approaches make the most sense.

Who Will Code Your App?

If you have no coding experience with any language and are in a hurry, hiring a freelance coder is the best way to go, although it does not alleviate you from the task of writing detailed specifications. In fact, your specification needs to be exquisitely detailed if you expect someone else to interpret it and produce an app that comes close to what you had in mind. That goes double if the contract programmer’s native language is not the same as yours.

Even if you have prior coding experience, you may still want to contract the app code especially if you have more money than time. If you do not already know the particular language or languages that are germane to the platform you are targeting, it will likely take a few months or more to become proficient enough to develop a competitive app yourself.

Here are rough guidelines as to how many hours you can expect a contract programmer to put in to write your app:

  • Simplest app built with templates without backend communication: 100 to 200 hours
  • App requiring a database: 150 to 300 hours
  • Game app: over 400 hours

The nominal hourly rate for a developer can vary widely from $20 to $100 per hour with commensurate variance in their productivity.

If you stick to web-based apps and have the aptitude, patience and will to write your app yourself, there are plenty of online resources to help you with that. Treehouse or Codeacademy, for example, can teach you any relevant language online.

There is more to it than learning the language, however. You must set up a development environment in which to accomplish your work. If you learn HTML5, CSS3 and Javascript, you can leverage a cloud-based mobile app development framework to complete your app end-to-end. Here is a comprehensive list of the best ones: http://www.hongkiat.com/blog/cloud-ide-developers/.

Once you have written your app, you move on to the next, equally important, step of testing.

4 – Testing Your App

Test Early and Often

Testing your mobile app starts concurrently with writing the app. As soon as there is executable code, test it. Many Integrated Development Environments for mobile apps include some form of device emulator so you need not switch tools to test code as you go. The necessity of early testing is based on the principle that as your code becomes more complex, the more difficult and expensive it becomes to remove defects.

Types of Testing

Most testing falls into the categories of functional, performance, UI/UX and security.

Functional Testing

This is simply testing that everything works according to the specification you made before you started coding. You will ensure that all the menu items, widgets, display pages, calculations, formats and error handlers are accurate and do what you expect them to do.

Performance Testing

Performance testing relates to the speed and responsiveness of your app under different operating conditions. It includes tests that assess app performance under differing CPU capabilities, different amounts of memory, low power, varying platform and network loads as well as server loads if your app requires server interaction.

User Interface and User Experience Testing

UI/UX testing can become very complicated very quickly. First of all, you are looking for how the user interface responds on different screen sizes and in different orientations. Secondly, you want to validate the UI design by actually using the app. The app flow should be smooth, logical and flexible. If you find yourself in UI dead-ends that take more than a single click or gesture to escape from, you have a problem.

The most productive but potentially stressful way to test both UI and UX is to employ unbiased third parties as testers. Do not make the fatal mistake of letting app consumers do your UI/UX testing for you after product release. That is the surest way to entered the lowest-rated category in any app store.

Security Testing

Security is an area where many apps perform a face plant upon release. Most released apps have potential security gaps, but that does not mean that your app must succumb to mediocrity.
Follow these guidelines to raise your confidence level that your app is safe:

  • Always encrypt off-platform data transfers
  • Always encrypt stored data that may contain sensitive information even in log files
  • Identify all app points of entry and decide if any or all should require authentication
  • Do not assume that the server side of your app, if any, is secure. Verify it.
  • Use the best authentication practices and packages available.

If you are unsure of the security of your app, consider hiring a third-party specialist to evaluate it.

5 – Promoting Your App

There is no single path to obtaining widespread adoption of your mobile app. You must take a multi-pronged approach to its promotion:

  • Use as many channels as possible to promulgate the benefits of your app on social media, websites, news outlets, blogs, emails and in the app stores. Of course, if you have existing customers, be sure to contact them.
  • Utilize multiple entry points to the above using QR codes, SMS codes and URLs.
  • Leverage multimedia, especially video, to show how cool your app is in real life.
  • Customer reviews are your most valuable promotion tool. If you executed flawlessly in marketing, development and testing, you should have no worries about getting top ratings.
  • If your app is monetized, figure out ways to incentive downloads by providing free trial versions, purchase or subscription discounts, free premium services such as ad-free usage or raffles.
  • Take advantage of other app outlets besides Google Play and Apple’s App Store.
  • Participate in award contests so you can obtain bragging rights.
  • Display good customer support practices such as timely defect repair, answering questions promptly, responding politely to critical comments and thanking those who leave you high ratings.

If your GQ – geekiness quotient – is higher than most people you know, you may find that promotion does not come naturally. Like coding, it is something you can learn or hire out. There are a plethora of inexpensive, online freelancers who can help with promotion by formulating campaigns and producing eye-catching collateral.

Summary

Mobile app development holds much appeal for anyone who has a sound mix of creativity, engineering skill and a bit of craziness. It is a hyper-competitive environment, but one with the potential for phenomenal rewards.

As with any software development exercise, it requires that you pass through a number of steps in order to achieve success: Marketing, designing, prototyping, coding, testing and promotion.

These require a basket of different skills, some of which may be better acquired from others versus taking on everything by yourself. Additionally, if you are in this to make money, you need some sound business skills to ensure a profit.

Even though you have a great idea for a mobile app, always keep in mind that the people who download your app are the ultimate judges of your app’s value. Forming a customer-centric attitude and maintaining it throughout every step of creating your mobile app is difficult but is the most important skill of all.