App Development Lifecycle

Mobile Application Development Lifecycle

This article discusses the Mobile Application Development lifecycle.

Idea and Discovery Phase

Before a mobile app developer can begin working on an app design, the client and Application Architect will write a detailed plan and product specification. This specification will inform the developer of their requirements and presentation, functionality requirements, etc. of the app.

In order to design a product specification, the client and Architect will need to brainstorm ideas and research similar apps on the current app stores such as the Apple app store and Google Play. The ‘who, what, where, when and why’ questions will be answered in the plan. Once the initial concept of the app has been established, the developer will take them through the requirement analysis and technical analysis stages to ensure their app idea is feasible.

The Project Manager will create a Project Plan defining all the tasks, stages and milestones of the project. In some projects a Project Initiation Document will also be created, this defines the project so that at future points in the lifecycle everybody is clear about the original goals, objectives, price, etc

Requirement Analysis

During the requirement analysis phase the developer and client will establish the goal of the app. This is what the app will achieve, what it does and how it will benefit the user. They will also establish the target audience, as knowing who the app is aimed at will affect how the app is priced and marketed. It is also important to choose the right platform for the mobile app. iOS and Android are the most popular, however Windows is still widely used. The developer will work with the client to choose the best device and operating system and consider its level of functionality which may include maps, Near Field Communication and social media integration. The requirement analysis will also involve seeing whether the app can be developed within the client’s budget, taking into consideration development costs, marketing costs, testing costs, overheads like project management/admin and distribution costs.

Requirement Analysis

Monetisation

Clients have mobile apps developed with the intention of making profit. Therefore it is essential to consider the various different monetisation methods for mobile apps. Some clients may opt for a free-add supported app (shows adds to user whilst they use the app) or a freemium (where basic features are free but advanced features are charged for). Alternatively an option is to choose an upfront paid app.

Subscription model is another popular method use to monetise an app. The user simply opts in to subscribe to an app and are billed periodically (often monthly) to have access to the app and/or in some cases extra functionality over and above the basic version.

In app purchase is another popular monetisation method. This allows users to purchase extras such as game/virtual currency, extra lives/turns or playing time, the ability to play with special game characters, access to otherwise restricted areas/levels, etc. In app purchases are an excellent way to derive sales from the user’s enjoyment of the app.

Payment and billing methods and delivery systems also need to be considered if the client is planning on selling products through their mobile app.

Milestones

Milestones are the stages that divide up the development process of a mobile app. Establishing milestones allows for better structuring of tasks and working time. They can also help to facilitate better communication with the client, allowing the client to see and test the app after each milestone is completed. Using milestones will give both the developer and client a better idea of the timescale involved in creating the mobile app, as well as the costs and level of difficult involved. The average time of the app development process for Android and iOS is eighteen weeks.

Requirements analysis other considerations

Internationalisation should be considered during the requirement analysis. If the client wants their app to have a global audience, the developer will need to localise the app for different languages and ensure it can display different currencies. They will also need to make sure the app displays the correct data and time for different countries and that buttons and navigational elements can accommodate languages that use longer words.

App size is also of key importance. Developers should aim to minimize the size of the app as much as possible. Users do not want to have to wait ages for an app to download, nor do they want to have to connect to Wi-Fi because the size of the app is over their carrier limit. Smaller apps that do not take up much memory are also likely to remain on a device for longer, as users tend to delete larger apps to free up space.

Other considerations should include offline availability and landscape mode compatibility. Enabling offline usage can resolve data conflicts. It will need to be considered whether landscape mode is important as if so, the app will need to be designed in a way that allows it to adjust to fit the new screen dimensions.

Wireframes and prototypes

The next step is to create a wireframe which will show the client how the mobile app will operate. Mock up software is used to create a wireframe. Keep in mind that the wireframe should concentrate on the functionality of the app and not its aesthetics. At this stage it is not about colours and typefaces, it is about the user experience and how the user will achieve what the client wants them to achieve using the app. All user interactions required for the app should be documented at this stage. The wireframes can be linked together to form a prototype for the app. The wireframe is the foundation for providing a successful mobile application development and should be able to establish where the idea is functional and feasible.

Prototyping

app prototype development

Technical analysis

Some of the areas that need to be considered during the technical analysis stage are:

  • Scalability (inbuilt room for app to grow)
  • High Availability (designed with low down-time in mind)
  • Maintainability (easy for future developers)
  • Modular approach
  • Performance
  • Portability (e.g. various mobile platforms – Google Android, Windows Mobile)
  • Usability (developed with the end-user in mind)
  • Version Control

The technical analysis will determine which data management software needs to be used to store the data. Having a database like SQLite (recommended) prevents data from being lost if the app is closed. It will also display results even when there is no internet connection and makes it easier for the developer to manage application data. At this stage it should be determined whether the mobile app is best suited to being a static or dynamic application. This will be based on the answer to whether the app needs to receive and send data to an external server.

App Development Technical Analysis

Third party integration

Third party tools also known as BaaS providers can be used to help manage all aspects of mobile apps including data storage, push notifications, social integration, hosting and analytics. Some of the most popular BaaS providers including Parse, StackMob and Kinvey each of which has similar features, yet different pricing plans.

Security

If there are flaws in the design, development, deployment, upgrades or maintenance of a mobile app, its vulnerabilities may be exposed to threats. App developers are aware of these threats and will incorporate security measures into the mobile app development. This may involve writing a security policy which users must agree to, requiring them to sign up for user accounts and managing authentication and access control.

Future considerations

Mobile App developers must be forward thinkers as how the application is initially designed will affect its ability to succeed. Various factors must be taken into consideration such as developments in technology. Requirement and functional analysis are very important and should be given time and consideration. They are vital stages as most of the decisions that are made later on in the app development process are based on the decisions that are made during the analysis. Poor planning will result in greater problems later on.

Project documentation

It is the responsibility of the mobile app developer to create a Technical Specification which explains how the app was created and how it can be manipulated and extended to provide different levels of functionality. The developer will also need to develop a User Manual for the app which will explain how to get started, how to use the app and how to make the most of the app. Troubleshooting sections / FAQ’s within the User Manual are also essential and provide users with information about what to do if they come across a bug. Some apps also include documentation on how the settings can be customised and managed. Writing these project documents can prevent users from having to contact customer support.

Design

The design stage will involve creating the graphical user interface by converting the wireframes into clean and attractive user interfaces. User interfaces need to be easy to use and of high quality design, as this is what will make it stand out in the app store. The design will incorporate the company’s branding and will be designed with different mobile screen resolutions in mind.  The client will be shown the design so tweaks can be carried out if and where necessary.

Mobile Design

Software Development

Software development should run parallel with testing so that errors and bugs can be caught early and fixed. At this stage the developer will write and maintain the source code which makes up the back end of the mobile app. Each platform has its own software development kit. The native programming language will vary depending on what platform the app is being created for. Android uses Java, iOS uses Objective-C and Windows Mobile uses C++.

Software Development

Testing

Testing is an essential stage during the mobile app development process that must be taken seriously. Carrying out testing will examine the apps functionality, usability and consistency, whilst also exposing any issues so they can be fixed before the product is distributed. There are many different types of tests that are carried out during this stage. Frequently a Test Plan will be created to ensure that all tests required are undertaken, this is highly recommended but not a level of formality which every project will dictate and/or have the budget for.

Manual testing

Manual testing can either be carried out on real devices or via simulation. The idea of manual testing is to expose how the app reacts to certain situations, for example, the device receiving an incoming call, an email alert or displaying that it has low battery. This can be carried out by the developer on an actual device, or an emulator can be downloaded. Each platform (iOS, Android, Blackberry and Windows) has its own emulator which can be downloaded from their websites. Using emulators can make testing easier, particularly if an app is being created for various different device types, screen sizes and operating systems.

Mobile testing in progress

Automated testing

Automated testing is used in software development as it is efficient and effective. It does not have the same limitations as manual testing and is a critical part of mobile app development. Automated testing is designed to ensure your app can work across the intended devices and that your script remains intact. It is recommended that developers automate the most tedious manual tests and the cases with the most predictable results. Unit testing can be carried out using a tool like Sauce Labs. Functional testing can be carried out using Soasta or eggplant. The latter can also be used to carry out testing on integration.

Alpha and Beta testing

The Alpha testing stage usually exclusively involves development staff, although on occasions other staff may be invited (e.g. a Technical Project Manager). Typically at the Alpha testing stage the software is at a much less mature stage of development and is prone to crashing and data loss. Once all functionality features have been implemented and alpha tested the development is classed as “feature complete”.

The beta testing stage typically commences when all functionality is “feature complete”. The beta testing team will comprise of mobile app developers, technical testers, project management and end-user staff (for apps this is sometimes Company employees and/or private individuals (e.g. for game apps)).  Software in the beta stage will still not be perfect and is prone to errors, performance issues, crashes and also exposes areas of missed functionality from the original Technical Specification.

A B Testing marketing experiment

Apps need to be tested by real people using real devices; different app developments have higher/lower levels of testing formality. Areas of higher risk, e.g. viruses, payments, etc. need particular emphasis on testing to avoid hacking threats, etc.

Distribution also known as Release

This stage will involve determining what countries the app is released to and what categories it fits into on each of the app stores it will be uploaded to. The various distribution channels include the Apple Store, Blackberry World, Google Play, Firefox Market Place, Nokia Store, Samsung Apps, and Windows Phone Store.

App Release

Evaluation

User feedback is essential to the client in obtaining a better understanding of how consumers are interacting with their app. In order to do this the developer will need to install app analytics software. Analytics is not just about the number of downloads, but how, when, where and who is using the app. The analytics can tell the client what channels their users are coming from, their activation percentage, their retention percentage and whether they are getting any referrals. App analytics software is set-up during the testing stage.

Here is a list of some of the most popular analytics software:

  • Apsalar (iOS, Android)
  • Flurry (iOS, Android, Windows Phone, Blackberry Java ME)
  • Mipanel (iOS, Android)
  • Google Mobile Analytics (IOS, Android)
  • Locayltics (iOS, Android, Windows Phone, Blackberry, HTML5)
  • Countly (iOS, Android, Windows Phone, Blackberry)

An analytics provider is chosen that caters for the future needs of the client and their app. For example, if they extend their app for a different platform, the analytics provider needs to be able to offer data for it. If the client has chosen a free-add app you may want to consider choosing a vendor that has partnerships with ad networks.

By tracking the apps performance, you have the option to make adjustments if necessary. It can also inform you whether or not additional support is necessary. Along with checking the analytics, the apps ratings and user feedback are also monitored. Users should be encouraged to leave feedback via push notifications, as this can gain further interest in the app.

Feedback

Updates

The development process does not finish when the app has been distributed. Updates are always essential. This stage involves adding new functionality to the app and updating its current functionality. Any bugs discovered are fixed on an on-going basis and the app is then updated in line with the latest operating system releases. Apps need to remain relevant, resistant to viruses and user friendly in the ever changing world of technology.

Marketing and Advertising

Market and advertising should work in parallel with every stage of mobile app development. They are both central to the process. It is essential that the app is marketed in a way that makes it stand out from the thousands of other apps in the app stores. Social media advertising is one of the best ways to promote mobile apps. Some companies also like to offer free demos to bait users, many of which end up paying for the full version of the app. If the client has the budget, the developer may want to recommend that they sent out demos and press releases to media companies and tech bloggers, as this can raise their apps profile significantly.

Marketing and Advertising

Once the app is developed you will need to market the app effectively

It is worth keeping mind that there is not a one size fits all approach to marketing mobile apps. Therefore  clients need to be encouraged to keep their options open and explore multiple advertising channels in order to achieve maximum visibility.