App specification is a detailed and consistent document about the app requirements that will align your development team and the owner’s vision – it helps to clearly understand what needs to be done.

If you do it properly, you’ll prevent any unpleasant surprises at the end.

Bear in mind that you can always modify the requirements as per your specific needs.


When writing a mobile app specification, you must make sure it’s clear, detailed and not ambiguous – it MUST be understandable and straight to the point.

Let’s go step by step on how to create a mobile app specification and what it should contain:




This section should include a short description about your company – your vision, nature of business, how long you’ve been operating and if you possess (or released) any prior software solution or an app.

Although you’d think these details aren’t important, actually they are.


Such information provides a picture about your company, the principles you want your solution to be based on (in case you have any previous solutions) and the nature of your business process.

A development partner can then gain more insight into your way of doing business and the vision you pursue and would match the desired solution to your actual business strategy.




App idea

You’ve come up with an idea for your app so you need to write it down – basic purpose and what type of problem it should solve.

Prior to any work, you should conduct a market research. It should evaluate your current customers, review your competitors, define target audience and so on.


Ask yourself: what is your app intended to achieve? What central pain point does it need to resolve?


Secondary research proposes using SWOT analysis.


Another way to analyze your product development can be setting SMART objectives:

  • Specific – Set real numbers e.g. ‘I want to generate more than 1000 downloads within a week after the app is released on App Store.’
  • Measurable – Make sure your goal is trackable. e.g. ‘I want new users to log in to my app at least once daily.’
  • Attainable – Give yourself a challenging goal but not impossible. E.g. ‘I want to reach a million downloads in a year
  • Realistic – Be honest with yourself and don’t forget about the hurdles you need to overcome e.g. ‘I want my MVP to be finalized in 2 months
  • Timely – Give yourself a deadline, don’t set unspecific goal like e.g. ‘I’ll finalize my app some day next year’.

Since the document will be used by your development partner to create more technical records, try to be as specific as possible. Try to include market research results, any calculations and analytics you may have, user feedback etc. as it will only help for your product to be developed exactly as you wish.




Target audience

Another important segment is defining your target audience – you should determine who needs your app and who are the people most likely to buy it – end users or businesses. Think about the following factors: age, location, gender, education, income, occupation etc.

Understanding your target audience will help you and your developers to get a better idea of the functional requirements of the app that need to be delivered.

Target audience defines the user experience and feature set to a great extent. For example, a social app would have sharing option as a core feature for an application aimed at teenagers, while an app for children would be simpler with large screen elements.


The best would be to outline a general description or a ‘user persona’ describing it in as many details as possible – age, occupation, app experience, hobbies etc. Once you do that, it will be much easier to outline the app features. For example, if you want to develop an app for tourists, you will definitely need a geolocation feature.

With this in mind, you can now develop an app based on how people will use it.




Technology Stack and Platforms

This is a part of technical documentation – you should decide whether you want to target Android, iOS users or both platforms as it greatly influences both, a budget scope and delivery time.

If you decide to move forward with native apps, it instantly means developing two applications. This approach requires more time and the cost but bear in mind that in the long run, native apps can save you money.

However, if you’d like lower cost and a shorter time of delivery, you can pick building a cross-platform app with some of the popular tools (e.g. React Native, PhoneGap etc.).


In case you need to specify which device the app will be supported with – whether it will be responsive or cross-platform etc., we provide you with a list of reference devices:

  • desktop browsers
  • mobile website (browser)
  • native mobile apps: Android, iOS, Windows
  • tablet
  • Smart TV: Android TV, Tizen OS (Samsung), Firefox OS (Panasonic), WebOS (LG)
  • Facebook applications
  • Virtual Reality: HTC Vive, Oculus Rift, Samsung Gear VR, Playstation VR
  • Kiosks


Always pay attention to screen orientation – for mobile and tablets, designs can appear different in portrait and landscape modes. If you have any doubts about it, conduct a usability test.




When considering technologies to use for developing a mobile app, keep in mind it can be a complicated task. If you have any certain preferences for the tools to be used, you should share it with your development company so they can arrange for the necessary software capacities.

This part is extremely important if you want to upgrade an existing product – in that case it’s a must to inform your developers as they need to use the same technology to ensure smooth integration.

In case you don’t have any idea on technologies you want to use, consult your development partner and they will surely advise you on the best possible solution for your app to function flawlessly along with the features you want to build.





This section describes the features you’d like to have in your app. The best way to do it is to imagine how the users will use your app and break it into individual screens or steps.

For example, some basic features may be:

  • Login – the most used feature in most applications – it can be login via user’s email or you can choose a social login through social networks which is very popular as it helps users to login without too much hassle.
  • Payment system – if you’re building an app with any kind of paid services, you will need a secure payment gateways like Stripe, Braintree or other popular ones.
  • Geolocation – the feature uses your location and it’s essential with apps for taxi or car sharing apps, rental platforms, social apps etc. In case your app requires geolocation to function properly, you’d need to implement it.
  • Push Notifications – you’d need to let know your developers if you want this feature in you app – push notifications must fit with the app goals so be careful with this feature.
  • Chat – this feature is very useful but only in the apps where chat is a necessary option like social apps, dating apps etc. You can have live chat or a comment based chat depending on the app requirements.
  • Monetization – if you plan to include some type of paid content or in-app ads, you would need this feature.


You can also prioritize the features and make clear which ones are more important than others with MoSCoW method marking them with Must, Should, Could and Won’t levels of priority.

Above is just a short list of features that you may wish to implement in your app – it’s crucial that you provide as much information as possible as it will help your development team to stay on the right track.


With a feature list, they can determine which integrations, APIs and other third party elements will be needed.




Admin Features

Most apps usually have an administrator to manage the application – you should outline how would like to control it: which options and permissions should be available.


Based on this outline, development team will create an admin panel featuring the specified options like:

  • Managing all users
  • Multi-level access system
  • Remote support and maintenance
  • Access to various app analytics





Image is worth a thousand words’

No matter how well you describe your idea of the app screen, an image will always be much better. A simple outline will give a better idea of the style, layout, user flow and position of elements on the screen.

A good development team will create wireframes but make sure you give them enough details. When you create a wireframe, you can better see the relationship between the features and outline the functionalities necessary for implementation.

If you want your developers not to misunderstand the main points on UI, you must be clear on your definitions of fidelity as it can represent different things to different people.

Below is a table listing the most common wireframe fidelity:



Timeline and budget

Timeline necessary for building a mobile app, as well as the cost, is a bit harder to estimate. However, there are some reference points to it – e.g. you may have a scheduled meeting with a product owner where you need to present an MVP or a prototype.

With money, it is mainly the same – if you have a limited budget, it means that you will have to build an MVP first and later use it for the basis for upgrades or building a full product. There are some rough calculations as per the complexity of the app, see below the table:



Acceptance Criteria

Acceptance criteria are the conditions that a mobile app must meet in order to be accepted by a user or the owner. You should outline the mandatory requirements for an app performance that you want to see in the final release.

Acceptance criteria will ensure that your development team defines the limits of a user story.

For example, you can put ‘mobile app page should load under 3 seconds’ etc.

You should create some test cases where the acceptance criteria can be measured as you will be able to see the conditions in which your app will be used and the performance level that should be achieved.




Contact persons and details

Although contact details seem trivial, effective communication between the client and development team is the key element for a successful cooperation.

Having all contact details at the start of the project ensures a healthy beginning of a relationship.

It would be helpful if you can identify the key people in charge of the project besides CEO or CTO role, such as:

  • Team leader – in case you’re outsourcing only a part of the project
  • Product Owner – a coordinator of the development process so that the product delivers the intended business value
  • Marketing manager – responsible for promotion of a product or an MVP



There are many ways to write a mobile app specification and ALL of them are correct. You can use one of the dozens of templates online or download our mobile app documentation template or you can create your own specification template for your own projects.

The most important thing is to provide as many details as possible about the project – the more comprehensive specification, the smoother the start of the project.

Bear in mind that there are no two projects alike, so each specification will have some differences along the way but the core is the same – explaining the idea thoroughly.

Hopefully, our guide gave you some ideas on how to create your own mobile app specification document.

Have a question for us or wish to share an idea?

We’re keen to hear more and happy to share our knowledge.