Processing...
Δ
Sustainability is a broad concept encompassing various aspects of environmental responsibility, but today, we’ll focus on a critical area relevant to software development: the impact of global warming and greenhouse gasses. Specifically, we’ll address the role of carbon emissions, understanding that every activity emits carbon dioxide, but some have a significantly larger impact on our planet. In the realm of software development, the drive to reduce carbon emissions has become paramount, as digital solutions can either exacerbate or alleviate the environmental footprint.
For businesses, embracing sustainable app development is not just about being environmentally conscious, it’s also a strategic imperative. Companies face increasing pressure to lower their carbon footprint, not only from regulatory bodies but also from a growing base of eco-conscious consumers. Additionally, the inefficiencies of non-sustainable software can lead to higher operational costs and resource wastage. In this article, we’ll explore practical app development steps for building greener software, how to measure its impact, and the investment required to achieve these goals. By focusing on mobile app development services in terms of sustainability, we’ll illustrate the importance of mitigating carbon emissions at every level, ensuring both climate and business benefits.
The International Energy Agency (IEA) reports that, according to current policies, CO2 emissions from burning fossil fuels—the largest source of emissions—are expected to peak before 2025.
Although we aim for green energy, current technical and economic constraints still prevent us from completely eliminating high-CO2 sources. As a result, when we plug a device into an outlet, it may seem clean, but the electricity itself is not. There is a direct correlation between electricity generation and carbon emissions, making electricity a proxy for carbon in this context.
For years, software was overlooked as a significant factor in climate change, with energy consumption primarily attributed to hardware. Efforts focused on redesigning refrigerators, vehicles, washing machines, light bulbs, and microprocessors to consume less energy. While these improvements are crucial, they don’t happen in isolation. The industry has only recently recognized that software demand largely dictates commercial hardware development. Moreover, software orchestrates the actions of the hardware. Additionally, software controls hardware actions. For instance, a GPS navigation app on your smartphone continuously communicates with cell towers to determine your location. If the app updates your location too frequently or doesn’t stop tracking when unnecessary, this means that non-optimized code is causing excessive hardware utilization and, as a consequence, unjustifiable carbon emissions, which becomes a significant issue.
Software-related carbon emissions, which constitute 4-5% of global emissions, are on par with the combined emissions of aviation, shipping, and rail. Consequently, software plays a direct role in extreme weather events associated with global warming, especially when it comes to enterprise scale and enterprise mobile app development. In addition to carbon emissions, software has diverse environmental effects, encompassing water usage in manufacturing and server cooling, as well as land utilization for data centers. While there has been significant attention on the latter, it’s actually end-user devices like laptops, tablets and phones that have a more substantial impact on emissions (two times more emissions compared to data centers according to research). Moreover, these emissions are set to rise in future. That’s why monitoring and mitigating emissions associated with these devices (and with related software) will be essential for reaching net-zero goals.
Software developers are increasingly recognized as key players in the fight against climate change. A 2019 study underscored this trend, revealing that 40% of millennials chose employers based on sustainability initiatives, while 30% left jobs due to poor environmental performance. This demonstrates the growing influence of younger generations, who prioritize companies aligned with their values.
Beyond the ethical imperative, sustainable apps offer tangible business benefits. By optimizing resource consumption and reducing waste within software development, companies can lower operational costs and enhance efficiency. Additionally, a strong adherence to green app development can improve brand reputation, attract environmentally conscious customers, and attract talent easier.
Green software is energy-efficient software that provides the same value to you or your users while emitting fewer carbon emissions. Our goal is to maximize value extraction for every gram of CO2 we release into the atmosphere.
The Green Software Foundation, which brings together leading companies and developers committed to creating green software, identifies three key actions to effectively reduce software-related carbon emissions: energy efficiency, carbon awareness, and hardware efficiency.
These principles are independent of any specific tech stack and should be seen as a mindset for development of sustainable apps. Energy efficiency involves using the least amount of energy possible. Hardware efficiency focuses on using the least amount of embodied CO2. Carbon awareness entails doing more when electricity is cleaner and less when it is dirtier. Let’s delve into the principle of carbon awareness and its potential to reduce carbon emissions in mobile apps. By adopting these practices within green app development, businesses can contribute to a greener future while maintaining competitiveness. There can be different pitfalls, but these challenges can be easily overcome when you choose a mobile app development company with extensive experience and great team in this branch.
Electricity production differs by location and time, utilizing various sources with different carbon emissions. Renewable sources such as wind, solar, and hydro have minimal carbon emissions, whereas fossil fuels emit significantly more. Among fossil fuels, gas emits less CO2 than coal.
Carbon intensity measures CO2 emissions per kilowatt-hour (kWh) of electricity. Wind farms produce zero grams of CO2 equivalent per kWh, but grid connections mix low and high CO2 sources, leading to fluctuating CO2 intensity. The variability of renewable energy due to weather conditions increases carbon intensity on cloudy or windless days, as more power is generated from CO2-emitting sources.
Reducing electricity consumption in green app development is essential for lowering carbon intensity, particularly by decreasing fossil fuel usage. By prioritizing periods of low carbon intensity, we can promote investment in cleaner and renewable energy sources over high-carbon ones. For example, training a machine learning model during periods of lower carbon intensity, such as late evenings or windy nights, or shifting computations between hemispheres to take advantage of longer daylight hours in different seasons.
Major tech companies like Google are employing advanced modeling to shift demand in response to the importance of carbon awareness. Google’s Carbon Aware Data Centers, for instance, use day-ahead predictions to determine how heavily a specific grid will rely on carbon-intensive energy. This allows them to transfer computations across the globe, favoring locations with more carbon-free electricity. Similar real-time and predictive carbon intensity information can be obtained from existing services. At NIX, we rely on industry leaders for both real-time and forecasted carbon intensity data to build green apps.
While carbon awareness is crucial for environmental goals, it’s not directly applicable to mobile apps due to the limited control over users’ device charging times and locations. Instead, energy efficiency, the next principle, holds greater potential for achieving sustainable app development.
To achieve carbon efficiency, we must also focus on energy efficiency when building sustainable apps, as energy consumption directly correlates with carbon emissions. This involves minimizing the amount of energy used per unit of work performed. In data centers and cloud environments, energy efficiency is typically achieved through strategies such as maximizing server utilization and avoiding idle states. For efficient algorithms in sustainable apps, the key is to minimize unnecessary operations, renderings, and API calls. While some optimizations are handled by the system, developers are responsible for others. There is no one-size-fits-all solution, as each software application must be tailored to its specific use case, taking various factors into account. Nevertheless, there are certain patterns and practices in green app development that can significantly enhance the sustainability of mobile apps while also improving their usability, flexibility, and ease of maintenance.
Location tracking, a staple in modern apps, is a significant drain on device battery and overall energy consumption. Continuously scanning for satellite, Wi-Fi, and cell tower signals is power-intensive, and processing location data further exacerbates the issue. While essential for many applications, such as ride-sharing and delivery services, it’s crucial to optimize location tracking for efficiency. Additionally, the data generated by location tracking can be substantial, contributing to increased cloud storage and processing demands. Optimizing data collection and storage practices is essential to minimize the carbon footprint associated with location-based services. By carefully considering mobile app requirements to update frequency, accuracy, and power consumption, developers can significantly reduce the environmental impact of their apps.
Product owners often request constant location tracking, while our team always asks about the implications to provide the best green solution. Clients might ask for real-time location updates to trigger actions like sending discount coupons or identifying user location (home, office, etc.). While these use cases are valid, it’s essential to assess the trade-offs between user experience, battery consumption, and data privacy to determine the optimal tracking frequency and accuracy.
Constant location tracking is often overused. While geofencing offers efficient location-based triggers, we can further optimize green app development by tailoring tracking frequency and accuracy to specific use cases. For instance, tracking only significant location changes or activity-based triggers can significantly reduce power consumption and data usage without compromising functionality. This strategic approach ensures that location services enhance the user experience while minimizing environmental impact.
And it’s not the only way we can tweak such tracking and consume far fewer resources: for each particular business case we consider such things as reducing location accuracy, registering for significant-change updates only, tracking only if specific activity is happening (like a fitness session or automotive navigation), etc. This allows us to keep a balance between energy efficiency and business requirements.
Let us share a success story from our experience in creating a green app. A client approached us with a location-based social network app aimed at helping users find nearby friends for activities like grabbing a beer or going for a walk. The client had an existing codebase but was concerned about its quality, especially since the app was notorious for draining the battery excessively. We conducted a thorough discovery process to identify the root causes of this issue. Among various inefficiencies, we discovered that the app was unnecessarily updating the location with the highest possible accuracy and frequency. By simply adjusting these parameters to a more reasonable level, we managed to reduce the app’s battery consumption by half. This optimization not only improved user satisfaction but also showcased our expertise in enhancing app performance.
Similar strategies can be applied to other resource-intensive features in sustainable app development, such as image and video processing. Location tracking is one of the examples of how leveraging platform capabilities can achieve multiple goals: saving device battery and enhancing energy efficiency in mobile solutions, improving user experience by avoiding excessive battery drain and high mobile data charges, and reducing unnecessary data transmission, storage, and processing. This is accomplished by performing initial data processing at the source and utilizing edge computing to bring computation and storage closer to data origins. By understanding the specific needs of each green app and exploring alternative approaches, developers can create more efficient and sustainable apps.
Optimizing network operations is crucial for sustainable app development.Beyond device hardware, network efficiency significantly impacts battery life and overall performance. App’s energy consumption is influenced by several factors, including the higher energy use of cellular networks compared to Wi-Fi, retransmissions caused by weak signals, prolonged radio activity due to limited bandwidth, cellular network strength, data transfer size, frequency of connections all contribute to energy consumption, variations in power usage based on location and service provider, etc. By minimizing unnecessary data transfers, compressing content, and leveraging caching mechanisms, developers can extend battery life and reduce the app’s environmental footprint. Additionally, optimizing network requests for efficiency can improve app responsiveness and user experience.
In sustainable mobile app development understanding user behavior is key to effective network optimization. By analyzing user interactions and identifying patterns, developers can tailor network requests to specific use cases. For instance, deferring non-critical data transfers to periods of stronger network connectivity or when the device is charging can lead to reduced energy consumption. Ultimately, a holistic approach to network optimization, considering both technical and user-centric factors, is essential for creating truly sustainable mobile apps.
Optimization strategies for building sustainable apps can be divided into two categories: minimization and deferring. Minimization aims to reduce unnecessary operations, as demonstrated by the location tracking example, in which we cut down on waste traffic through a careful reassessment of requirements and system design. This approach is widely used in sustainable app development and involves caching, compressing transmitted data, and reducing media quality and file size. For example, video conferencing applications can adapt streaming quality dynamically, lowering video quality to prioritize audio during low bandwidth situations or when using cellular connections. This feature is also activated when the phone’s low power mode is on, ensuring uninterrupted audio communication, which is often more critical than high-quality video.
Another strategy for networking optimization in green apps is to defer network activities. First, consider batching transactions instead of performing incremental downloads, which keeps the antennas active and wastes energy. For instance, if your application displays advertisements, download multiple ads at once and display them gradually over time rather than fetching them individually as needed.
Another crucial tactic in green app development is to delay non-urgent network operations. iOS offers a feature called deferrable background sessions, which runs these tasks out-of-process, making your app more responsive and not requiring continuous operation. This functionality is optimized for efficiency, postponing tasks when bandwidth is low and auto-retrying URL sessions when errors occur, which is particularly useful for backups or synchronization tasks.
Lastly, emphasize limiting network activity to Wi-Fi, especially for large transfers. Avoid downloading an entire library of high-resolution images, audio, or video over a cellular connection unless explicitly requested by the user, as this can waste bandwidth and potentially result in carrier overage fees.
When managing servers, energy efficiency demands avoiding idle states because idle servers carry a carbon cost due to inefficient utilization. While personal devices can’t avoid being idle, the goal of green apps is to prevent unnecessary interruptions, as waking the system from an idle state consumes energy by activating the CPU and other components from their low-power modes.
Using timers to schedule recurring actions such as synchronization, downloads, and location updates causes the system to awaken, resulting in energy expenditure. Often, apps use timers without genuine necessity. If your app depends on timers, it’s crucial to evaluate their true necessity. A shift in mindset might be needed: instead of fixed time intervals, consider relying on triggered events, such as our geofencing example from the location tracking section.
For instance, if you have a streaming service app and want to pre-download a teaser for a new episode of a user’s favorite show, relying on timers is inefficient. Instead, it’s better to use push notifications from your server, ensuring a seamless experience without unnecessary energy use.
Green app development involves the effective use of push notifications. To minimize the strain on network hardware, it’s advisable to utilize local on-device notifications whenever possible. These notifications eliminate the need for constant network connectivity, thereby reducing energy consumption and enhancing device efficiency.
When remote notifications are necessary, they offer two priority levels: immediate delivery and deferred delivery until a more energy-efficient time. Immediate delivery should be reserved for truly urgent notifications that require instant user attention. For most other notifications, choosing the deferred delivery method is more sustainable. This approach in creating green apps aligns with energy-saving principles by sending notifications when the device is already active or charging, thereby conserving battery life and reducing unnecessary energy usage.
When designing sustainable apps, it’s essential to balance eye-catching design with energy efficiency. Standard windows and controls, optimized by system APIs for energy efficiency, are generally not a concern. However, for projects that aim to stand out visually, there are key considerations to ensure sustainability without compromising on aesthetics.
One critical optimization when creating sustainable apps is to avoid unnecessary drawing when the app or its content is concealed, cropped, or offscreen. For example, in a location-based social network app, we optimized a legacy codebase by rethinking the map screen. Initially, displaying hundreds of pins caused the phone to overheat and the map to become cluttered and hard to navigate. Implementing a clustering mechanism not only made the map more energy efficient but also improved user experience by simplifying the display.
Additionally, reducing the use of opacity—particularly in views with a translucent blur effect—can lead to reduced energy consumption, which is one of the main goals of green app development. When opacity is necessary, avoid applying it to frequently changing content, as it requires updates to both the background and translucent views, increasing energy usage. By carefully managing these design elements, developers can create visually appealing sustainable apps that are much more energy efficient, contributing to a more sustainable digital environment.
In green app development, we can consider the implementation of dark mode in apps as a tribute to trends or simply as a design. But in fact, it has a deeper meaning for saving smartphone resources since it reduces screen brightness.
According to Dodonut, transitioning from light mode to dark mode results in a 42% reduction in power consumption when the screen brightness is at 100% in devices with OLED displays. Adding a dark mode is a quick and low-cost way to save resources and, again, boost user experience.
Native apps offer a superior foundation for sustainable app development. Unlike cross platform apps development frameworks, native apps provide direct access to device hardware and operating system features, enabling developers to optimize performance and energy consumption precisely. This granular control allows for fine-tuning app behavior to minimize resource utilization and extend battery life.
Moreover, native apps excel in delivering exceptional user experiences. With direct access to device capabilities, developers can create highly responsive and engaging interfaces. This leads to increased user satisfaction and reduced app abandonment rates, ultimately contributing to a smaller environmental footprint. By avoiding unnecessary resource consumption and promoting user loyalty, native apps demonstrate a stronger commitment to sustainable app development.
Device manufacturing contributes significantly to overall carbon footprint. The production and disposal of electronic devices, particularly smartphones, generate substantial emissions. While some manufacturers prioritize sustainability, the industry as a whole faces challenges in reducing embodied carbon. To mitigate this, developers should focus on extending device lifespan through software optimization. By designing sustainable apps to function efficiently on older hardware models, we can reduce the demand for frequent device upgrades, thereby decreasing the overall environmental impact.
Devices produce carbon emissions throughout both their manufacturing and disposal phases. The total carbon footprint, termed “embodied carbon,” varies greatly amongst end-user devices. For some devices, the carbon emissions associated with manufacturing can surpass those created during actual usage, resulting in a much larger embodied carbon footprint than the emissions from the device’s energy consumption.
This is the case for end-user devices, like smartphones, where production, upstream transportation, and disposal processes account for around three-fourths of emissions. While some companies, like Apple, have made strides towards carbon neutrality with specific device models, this remains an exception rather than the norm. In this context, hardware efficiency equates to carbon efficiency, making it crucial to optimize the lifespan and performance of end-user devices. When hardware fails or struggles with current demands, it is often retired prematurely. Although hardware will naturally wear out over time, developers can create software that doesn’t strain these devices unnecessarily.
Smartphones generally have a refresh cycle of two years. As a standard practice, unless dictated otherwise by business needs, our mobile applications are designed to function smoothly on iPhones up to six years old and on around 95% of actively used Android devices. This approach usually doesn’t involve extra development costs. It allows us to use relatively recent frameworks without encouraging users to upgrade to newer models unnecessarily even for innovative Android and iPhone app ideas.
Measuring the impact of energy consumption and sustainability practices in green apps requires precise data and standardized methods. The Greenhouse Gas Protocol (GHG Protocol) is a widely recognized framework for measuring, managing, and reporting greenhouse gas emissions, classifying them into three scopes: direct emissions, indirect emissions from purchased energy, and all other indirect emissions, such as those from the supply chain, employee travel, and customer product use. To calculate overall software carbon emissions, detailed data on energy usage, carbon intensity, and the hardware on which the software runs is needed.
Collecting this data can be challenging, even for organizations with closed-source software products where usage can be monitored via telemetry or logs. For open-source software, which typically lacks such visibility, the challenge is even greater. Nonetheless, understanding total emissions is just one indicator. For a comprehensive assessment, green app developers need to focus on specific features and their impact. For example, measuring the energy consumption of a particular app feature can reveal its contribution to overall emissions, guiding optimizations for better energy efficiency and sustainability. Using tools and frameworks to monitor energy usage at the granular level can help engineers make informed decisions in the app development process to reduce the carbon footprint of their applications.
The Software Carbon Intensity (SCI) specification is a methodology developed by the Green Software Foundation Software meant to score a software product along a sustainability dimension. While the GHG protocol measures total emissions, the SCI determines emission rates. In automotive terminology, the SCI is similar to a miles-per-gallon measurement, whereas the GHG protocol is concerned with a car manufacturer’s entire carbon footprint and all of the cars produced each year. Your SCI score will drop if your application is more energy-efficient, hardware-efficient, or environmentally conscious. The only way to lower your SCI is to devote time or money to one of the three principles.
To calculate your SCI score, follow these steps:
For the same application, you can compute numerous SCI scores. The SCI score is useful for understanding how your application performs in terms of carbon emissions in various scenarios. Streaming green apps, for example, might select carbon per minute as a statistic. It may also compute the carbon footprint per user per day.
Every sustainable software practice contributes to lowering your SCI score in various ways. For instance, abstaining from tracking superfluous data affects SCI as follows:
Contrary to popular belief, sustainable app development often incurs minimal additional costs. In many cases, adopting sustainable practices leads to long-term savings. By prioritizing code quality, maintainability, and efficiency, developers can reduce technical debt and streamline future development efforts. This translates to lower maintenance costs and faster time-to-market for new features.
Initial investments in sustainable practices can yield significant returns. While there might be upfront costs for training, tool acquisition, or process refinement, these investments are quickly offset by long-term benefits. For instance, building a modular and scalable mobile app architecture from the outset reduces the likelihood of costly refactoring later in the project lifecycle.
Sustainability is increasingly seen as a competitive advantage. As consumers and investors become more environmentally conscious, businesses that demonstrate a commitment to sustainability can gain a competitive edge. Incorporating sustainable practices into software development aligns with broader corporate sustainability goals and can enhance brand reputation.
Attracting and retaining top talent is another key benefit of creating sustainable applications. Younger generations of developers are increasingly passionate about working for companies that prioritize environmental responsibility. By demonstrating a commitment to sustainability, organizations can attract and retain top talent, fostering a culture of innovation and high performance.
Sustainable app development is a cornerstone of responsible business practices. By prioritizing energy efficiency, reducing resource consumption, and extending device lifespan, we can create software that minimizes its environmental impact. This approach aligns with growing consumer expectations for ethical and sustainable products, while also driving business benefits such as cost reduction, improved performance, and enhanced brand reputation.
NIX is committed to building sustainable apps. With a deep understanding of the principles of green app development, our experienced team can help you create applications that are both environmentally friendly and user-centric. By leveraging our expertise in energy efficiency, resource optimization, and life cycle management, we can help your business achieve its sustainability goals while delivering exceptional software solutions.
The future of software development lies in sustainability. As mobile app technology continues to evolve, the need for responsible practices will only grow stronger. By embracing sustainable development principles, businesses can not only contribute to a healthier planet but also gain a competitive advantage, creating demanding applications. Here you can find an application development RFP template, which will be useful for choosing a vendor.
NIX is dedicated to leading the charge in this area and helping organizations build a more sustainable digital future with green apps. Contact us to discuss your needs in outsourced app development.
Be the first to get blog updates and NIX news!
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
SHARE THIS ARTICLE:
Schedule Meeting