DevTeam.Space Product Development Blog

Explore our in-depth product development tutorials and new technology announcements published by our software development experts

All articles

How To Build A Pollution App

Rapid industrialization has massively increased pollution in many parts of the world.

Given that pollution is now regularly reaching harmful levels for humans, people are increasingly seeking ways to avoid it.

Concerned citizens are now using apps to track air quality, and such apps are set to become as popular as map and banking apps in the near future.

If you are an entrepreneur planning to cash in, read this guide on how to build a pollution app.

Contents

The market for pollution apps, and examples
Desired features in a pollution app
Developing a pollution app
Have a great pollution app idea?

The market for pollution apps, and examples

Pollution apps fall within the “Weather” category, and this is quite a popular category of apps. As of June 2018, this was the 16th most popular category of apps on Google Play. Read more about this in “Market reach of the most popular Android app categories worldwide as of June 2018”.

There are several well-known pollution apps, e.g., AirVisual. This app offers the following features:

  • It’s available on the web, Android, and iOS.
  • The app lets users see the air quality in their city, using established metrics like “Air Quality Index” (AQI).
  • AirVisual also offers recommendations to deal with high pollution situations.
  • Users get alerts when the AQI fluctuates, moreover, they can compare other cities with their own city.
  • The app features an easy-to-use “User Interface” (UI).

You can read “The 7 best apps and sites to check air quality anywhere” for more examples of pollution apps.

Desired features in a pollution app

Consider offering the following features in your pollution app:

  • The app should access reliable measurement of metrics like AQI and show the pollution level to users.
  • It should have a map integration to show pollution levels based on users’ current location.
  • App users should be able to search for other cities and get pollution data as well.
  • The app should offer recommendations for handling a polluted environment, e.g., what type of mask to wear etc.
  • A user-friendly UI is important.
  • A pollution app should feature push notifications.

Optionally, you can offer in-app purchases. Plan on offering your app on the web, Android, and iOS.

Developing a pollution app

The steps to create a pollution app are as follows:

1. Agree on the project methodology and scope

I recommend that you develop a web app, an Android app, and an iOS app, with the features I have mentioned above. Target one geography to start with. Web and mobile apps are customer-facing tools, and we call them “Systems of Engagement” (SoEs).

Agile is the best methodology for such development projects, where you create a “Minimum Viable Product” first. After which, you enhance it based on market feedback. To understand why Agile is best, please see our guide “Waterfall vs Agile: which methodology is right for your project”.

2. Formulate a development approach

To launch your app quickly, you need an effective development approach. I recommend the following:

  • Use a “Platform as a Service” platform for web app development, which frees you up from infrastructure management.
  • Take the advantage of a “Mobile Backend as a Service” platform for your mobile app development, so that you don’t need to manage the mobile backend.
  • Use “Application Programming Interfaces” (APIs) and “Software Development Kits” (SDKs) to implement core features. These features are pollution data collection, map integration, push notification, online payment, and in-app purchase.
  • Design and develop in a way so that you can easily launch your app in other geographies in the future. Use best practices such as keeping your code and content separate. Such guidelines fall under the ambit of “App Internationalization”. You can read more about this in “The ultimate guide to mobile app internationalization”.

3. Onboard a development team

A successful development team for this type of project would consist of the following roles:

  • Business analysts (BAs);
  • UI designers;
  • Web developers, with Node.js skill;
  • Android developers, with expertise in Kotlin;
  • iOS developers, with experience in Swift;
  • Testers;
  • A project manager (PM).

I recommend that you use the scrum technique, which is popular in the agile software development world. The PM performs the role of a “scrum master”, and forms small, cross-functional “scrum teams”. These teams work on iterations, which are called “sprints” in scrum parlance. Read more about scrum in “How to build a scrum development team?”.

4. Get a PaaS account

Expedite the web app development by signing up with a PaaS provider. You will get the following advantages:

  • PaaS includes the cloud infrastructure, networking, storage, operating system, middleware, and runtime environment.
  • You will find it easy to integrate database, DevOps, and 3rd party APIs with your app.
  • PaaS providers offer “Application Performance Monitoring” (APM) and auto-scaling solutions, which help in scaling your app.

There are several reputed PaaS providers, which I detailed in “10 top PaaS providers for 2019”. You can sign-up with AWS Elastic Beanstalk, i.e., the PaaS offering from AWS.

5. Find an MBaaS provider

Developing and managing the backend of a mobile app takes time, however, using an MBaaS platform can expedite your project. There are several benefits, i.e.:

  • MBaaS providers manage cloud infrastructure, persistent storage, networking, etc.
  • You can implement user management, security features, and easily push notifications when you use an MBaaS platform.
  • The large amount of different mobile platforms and devices makes mobile app development complex, however, MBaaS platforms simplify this aspect.
  • 3rd party API integration and scaling become easier with an MBaaS platform.

I have explained these advantages in “How to choose the best mobile backend as a service (MBaaS)?“. I suggest you use AWS Amplify, which is the MBaaS offering from AWS, furthermore, you can use your existing AWS account.

6. Sign-up for a pollution monitoring API

The app needs to display pollution data, therefore, I recommend that you use an API solution for this. You can choose either of the following two options:

AirVisual API

AirVisual, the company behind the famous pollution app provides its data via their AirVisual API. Note the following relevant facts about this API:

  • It provides historical, real-time, and forecast AQI and pollution data.
  • The company has a large network of ground-based IoT sensors to collect data from a large number of locations.
  • They validate the data quality using “Artificial Intelligence” (AI) and “Machine Learning” (ML).

Contact them to get their price plans, and to get started with their API.

RadGreen/IBM API

RadGreen, an Israel-based start-up offers its environmental monitoring API in partnership with IBM. The following facts are relevant with respect to their solution:

  • RadGreen has an IoT-based solution that uses sensors to monitor pollution and collect data.
  • They store and process this data on their cloud infrastructure.
  • The company has partnered with IBM, and they sell their data via IBM API Connect.

You can read this IBM documentation in order to get started with the RadGreen/IBM pollution monitoring solution.

7. Get a mapping solution

A pollution app needs to integrate with a mapping solution. I recommend that you use Google Maps. This platform offers several features and advantages, as follows:

Read “Google Maps platform documentation” for more information. You can check out their pricing plans here.

8. Procure a bulk SMS solution

The mobile app will require push notifications, therefore, you should use a bulk SMS solution to engage the app users. Twilio is a good solution for this, and you can use it by following these simple steps:

  • Sign-up for the “Programmable SMS” offering from Twilio.
  • You can find their extensive documentation here, moreover, further information is available here.
  • Check out their pricing plans here.

9. Sign-up for a payment gateway solution

Whether your users upgrade to a premium version or use the optional in-app purchase feature, you need a payment gateway integration. Stripe is a good choice and offers the following advantages:

You can find their pricing plans here.

10. Get an eCommerce API for the in-app purchase feature

You need an eCommerce solution for the in-app purchase feature. I recommend that you use BigCommerce for this. Note the following:

  • The BigCommerce API helps with common eCommerce features like cart, checkout, etc.
  • You can read their documentation here.

Check out their pricing plans here.

11. Get a test automation enabler for the web and mobile app testing

While you will likely use open-source test automation tools for web and mobile app testing, you will need to test using a wide range of browsers and mobile devices. You need a solution for that, and Experitest is a robust choice. You get the following advantages:

  • You can use their cloud-based “Mobile device & browser lab”, and access a wide range of devices and browsers.
  • Their “Grid Execution – web & mobile” enables you to achieve test automation and parallel testing.
  • You can get excellent test reports and analytics from their “SeeTest reporter”.
  • They have integration with popular open-source test automation frameworks.

12. Code, test, and deploy the web app

Use Node.js to code the web app, since it offers the following advantages:

  • An open-source runtime environment, Node.js supports event-driven asynchronous programming, which is good for scalability.
  • Many developers know JavaScript, therefore, they find it easy to work with Node.js.
  • A large and vibrant developer community has created thousands of open-source shared tools and frameworks for Node.js. This improves the productivity of programmers. For this project, I recommend that you use js, a lightweight and performant framework.

Proceed with web app development, as follows:

13. Design the mobile app UI

You need to design a simple yet elegant UI, therefore, check out these guides:

14. Develop, test, and publish the Android app

I recommend that you use Kotlin, the modern language for Android development. It offers several advantages, e.g.:

  • It’s a lightweight language, therefore your app will be fast and performant.
  • Most developers know Java, and Kotlin is quite like Java.
  • Kotlin has a concise syntax, which reduces the coding effort.
  • The language handles common errors like null pointer exception very well.

Code, test, and publish the app as follows:

  • Use Android Studio, the popular IDE for Android development.
  • Integrate pollution tracking, mapping, bulk SMS, payment gateway, and eCommerce APIs/SDKs in your code.
  • Use Espresso for Android UI testing, along with Experitest mobile device lab.
  • Publish the app to Google Play, following this guide.

15. iOS app development

Use Swift, the language of choice for iOS developers, for coding your iOS app. It offers several advantages, e.g.:

  • Apps coded in Swift are fast and performant, moreover, the code is easier to read.
  • The language offers powerful features that help in reducing the coding effort, furthermore, it facilitates bug-free coding.

Develop, test, and deploy the app as follows:

  • Code the app using Xcode, which is the popular IDE supported by Apple.
  • Integrate pollution tracking, Google maps, Twilio programmable SMS, Stripe, and BigCommerce APIs/SDKs.
  • Test your app using XCTest, and Experitest mobile device lab on the cloud.
  • Use this guide to publish the app to the Apple app store.

16. Manage the project using an appropriate PM tool

An agile project using the scrum technique involves the following activities:

  • Sprint planning meetings: The team estimates and prioritizes the requirements, and schedules them in sprints.
  • Daily stand-up meetings: The scrum master collects the project status in these meetings.
  • Sprint review meetings: The team demonstrates that the app is working, and then the project stakeholders approve the sprint.

Use Jira, a robust PM tool to manage these activities.

Have a great pollution app idea?

Platform, tools, frameworks, and guidelines are essential for development, however, a pollution app development project can be a complex one.

If you don’t have all the required expertise then you might need to take professional help from a reputed software development company. Read “How to find the best software development company?” before you do so.