Gentlemen’s Set for a Mobile Project

Gentlemen’s Set for a Mobile Project

This article is about things you cannot do without in the process of mobile application development. Below you will find an overview of required tools and approaches which will save your time for strategic tasks and help you not to get stuck in a tiresome daily routine.

In the development process and in providing support to any project, you have to deal with the same global tasks:

  • Ensure an acceptable quality of the product
  • Maintain a high pace of development
  • Ensure operability of applications on most mobile devices
  • Analyze and log user actions in applications

To solve these tasks, there are relevant processes and procedures, but an important role is played by the tools that can help you solve problems. Consider the following ones.

Ensure an acceptable quality of product:

This task can be solved by:

  • Implementing the Continuous Integration procedure;
  • Bug tracking with crash catchers;
  • Instant response to changes – distributing applications to testers and users.

Continuous Integration:

  • Always “fresh” builds – the project’s current state;
  • In case of integration and unit tests – understanding what was “neutralized”, when, and by whom; without tiresome rebuilds in the journey from commit to commit in the version control.

I think it’s better to use a cloud-based CI solution integrated with your version control system. Thus you can save a lot of time on its iteration. Most version control providers offer out-of-the-box solutions and bundles.

Gentlemen’s Set for a Mobile Project.jpg


Crash Catchers and Build Distributors

In the world of mobile app development you can find a huge number of tools to catch errors and bugs in mobile applications and report them to the developers. Neither testers nor users will have to waste time to log and reproduce a bug – a bug report will be generated and sent out automatically. Crash catching is not a rare function; you can find such functionality in both analytics collection libraries and in more complex services described below.

Maintain a high pace of development

It is very important to ensure that the team is completely involved in the development process. All people who work on an application release should get access to its latest version. For that, you can use various services to distribute private builds – just integrate one of them into your project:

  1. https://get.fabric.io/
  2. https://www.hockeyapp.net/
  3. https://developer.apple.com/testflight/

Ensure operability of applications on most mobile devices

The market offers a huge amount of mobile phones for many countries in the world, which may use different Android versions. And sometimes it is necessary to test an application on different devices: with larger or smaller screens, new or old OS version, etc. To do that, you don’t need to buy a lot of mobile devices – you can use some of the following services:

  1. https://aws.amazon.com/device-farm/device-list/
  2. https://firebase.google.com/docs/test-lab/
  3. https://www.xamarin.com/test-cloud
  4. https://www.perfectomobile.com/
  5. https://cloud.testdroid.com
  6. https://testobject.com/pricing

Analyze and log user actions in applications

Sometimes, the crash catcher will not be able to find an error in an application, then you can use analytic services to log the user’s actions through your own subsystem – the history of the user’s actions or events in the application, and send it to a server. This approach can save a lot of time for debugging and troubleshooting.

I can say that I have seen all the above-mentioned approaches applied only in a few projects. And they were projects with the highest pace of development and level of quality. Let innovations into your project, and you will have much more time to improve the product, not to maintain its life cycle.

Ivan Alyakskin 
Software Consultant