This article is an overview of the environmental issues surrounding the development of smartphone applications. For those who are interested and those working in this field like me, I will develop in the following articles some examples of good practices to reduce your carbon footprint during your projects :) Don't hesitate to share your ideas with me and those you already implement in the comments!
What global footprint?
The impact of global digital technology on the environment is no longer negligible. In 2019, it represents that of a 7th continent whose greenhouse gas (GHG) emissions amount to 1,400 million tons, or 3.8% of global emissions. To give you an example, this corresponds to twice as many emissions as a country the size of France.
Our dear smartphones come as no great surprise to the prosperous inhabitants of the 7th continent. In 2019, smartphones will account for 6 to 19% of the global impact of digital technology.
It is all the more worrying if we look more closely at its evolution.
Between 2010 and 2019, the impact of digital technology has doubled. GHG emissions from computers, phones and data centres are expected to rise from 3.8% of global emissions in 2019 to more than 14% in 2040. By 2020, the carbon footprint of smartphones will exceed the individual contribution of desktops, laptops and monitors.
App Annie's report The State of Mobile 2020 is clear; the average time we spend on our smartphones has increased by 35% (25% in France) over the last two years, reaching 3h40 per day in 2019! This increase can be explained by :
The diversity of applications that accompany our daily lives. 204 billion mobile applications downloaded in 2019, an increase of 45% since 2016 (excluding re-installations and updates)!
It is time for every player in the digital sector to take stock of their impact on the planet, set clear goals and a plan to achieve them.
If 60% of a smartphone's total GHG emissions are due to its manufacturing, it's up to us developers to do our part and analyse - and try to minimise - the remaining 40%.
It's up to us to develop applications that :
don't make our users switch phones because our updates make them obsolete,
don't make them sit in front of their phones for hours,
and don't store huge amounts of useless data!
In other words, our goal is to make apps which satisfy our users needs, and nothing more.
Yes, our responsibilities are great, let's take them on. To do this, let's understand the lifecycle of a mobile application as well as the impact of each of its stages.
What stakes? At what stages in the development of the app?
Before a mobile app is used by billions of users (3.5 billion smartphones in 2019!), every developer agrees that a lot of work is planned beforehand.
The cycle of a mobile project is generally divided into two phases: a design phase and a development phase. This cycle can be very short, iterative and adaptive if you use an agile methodology, or represent the complete application cycle for more classical methodologies (such as cascading or V methods).
// Design phase
The energy impact of an application can be reduced during the Design phase, before any code has been written!
The functionality with the lowest environmental impact is the one that has not been designed.
There is nothing more frustrating than opening an application full of content which nobody reads. Even worse, auto-play videos that no one watches but, as seen previously, have significant impact.
During this phase, it is important to understand which users you are addressing. But also, which frustration points you want to address and how. Once these needs have been identified, they can be translated into app functionalities.
The simplest functionalities are often the most intuitive for users.
You can be convinced by the users themselves, by organising user tests as much as possible. This also helps to calm down those little bursts of artistic madness that we have as developers. When we think we have designed the best app in 2020 but... nobody understands how to use it.
The principle of maximising the value of a product by minimising losses during the Design phase is at the heart of Lean UX methodology. Unintentionally, this fast, collaborative and iterative product design approach also has a positive impact on the environment.
// Development phase
During the development phase, it is necessary to include the environmental weight of each functionality to be developed in our decision-making. As F.Bordage states in "Eco-design web: the 115 good practices" the following technical resources to focus on are:
Processor: the reduction of CPU requirements makes it possible to extend the lifetime of smartphones as well as to reduce their energy requirements.
The number of processor cycles should be reduced as much as possible. In particular, we should consider the very energy-consuming element that we don't always think about, our updates. This is especially pertinent if our app size is large and if the number of users is important (which I wish for you ;)).
RAM: Minimising RAM usage makes it possible to lengthen the active lifetime of smartphones.
Indeed, when you run out of memory, your phone slows down, its battery drains faster and its usage is limited. By only storing useful data and being conscious of the space it occupies on our mobile phones through our apps, we can save a ton of memory and make our phones more performant.
Network: the bandwidth needed to run the application has an impact on performance (the lower the bandwidth, the faster the interactions) and the ecological footprint. Consider managing your app's behaviour offline to reduce its dependency and network load. The ADEME (French Environment and Energy Management Agency) points out that 28% of the GHG emissions from digital technology are due to network infrastructure.
Remote data storage: Minimising the data stored remotely reduces the energy consumed by the data centres, and has the added benefit of reducing load time for users.
One last point that I find important to mention: the backward compatibility of our applications.
Systematically limiting the compatibility of our apps to the latest android and iOS versions, for performance or dependency reasons, obviously plays a role in the underutilisation and wastage of our smartphones.
"This app is not compatible with any of your devices" = a thrown away phone (if it can't install the latest software version). How very sad.
The choice of operating system (and OS version) compatibility with our mobile app is one of the many choices we make when releasing and updating our apps. The impact is huge, which is why I'll start this series of best practices articles focusing on this topic.
Next months article ⇒ "How to manage our app updates in a eco-responsible way?" 🚀