Stuck scrolling? We made reducing your screen time a Breeze

Sabrina Jain
Dartmouth CS98
Published in
8 min readMar 14, 2022
Breeze logo of a cartoon sailboat with a “B” on the sail on a soft blue gradient

Picture this: you’re a busy college student who just spent a long day in class, and you’re about to settle down in the library to do your homework. First, you decide to reward yourself with a 15 minute TikTok break. Two and a half hours later, you’ve learned several facts about black holes and how to Marie Kondo your dorm room in 3 easy steps (that you’ll never do), but your backpack remains unopened, the sun has set, and it’s time for dinner. Does this feel familiar?

Smartphone users of all ages understand the habit of mindlessly scrolling or playing games for an indecent amount of time. People who fall victim to this behavior, like the busy college kid, are often aware of the futility of these actions and wish they could spend their time more productively. For many, the first step to spending time more productively is spending less time on smartphones. This is where Breeze comes in.

Find Breeze on the Apple App Store.

Background

On average, Americans spend about five hours each day scrolling on their cell phones. iPhone users unlock their phones around 80 times per day. A poll from Common Sense Media found that over half of teens self-reported feeling addicted to their smartphones. To top it all off, this data is all from 2017 studies, meaning that these numbers are probably on the lower end of the spectrum for today.

There is no mistaking these numbers — society has a smartphone problem. Every week, the new apps and updates pushed to our phones have more advanced techniques to keep us coming back. Flashy notifications, smooth endless scrolling mechanisms, and sophisticated personalization algorithms have transformed apps from fun widgets into data-mining time sinks.

For many people, lost time is just the start of the issue. Studies have linked excessive cellphone usage to heightened levels of anxiety, depression, and alcohol use disorders, as well as difficulties with cognitive-emotion regulation and self-esteem. In many ways, smartphones and social media have become so advanced that they are no longer improving our lives at all — they are detracting from it.

This issue has gotten so bad that many people are relying on intervention-style techniques to curb their smartphone usage. These strategies range from leaving your phone in another room when doing homework to setting hard-and-fast daily time limits on certain apps, to letting a loved one change your Facebook password. As one might expect given Apple’s “there’s an app for that” slogan, there is also a growing market for apps that seek to help users gain more insight into and control over their screen time.

Existing Approaches

Many apps which encourage decreasing screen time already exist. Like Freedom, which blocks certain apps or websites that can be distracting, or OurPact, which allows parents to schedule screen time and app access on their children’s devices. Apple even has its own built-in screen time monitoring, which displays phone use data and offers features like time limits on apps or scheduled “downtime.”

At large, screen time reduction apps use techniques like locking users out of their phones or inducing shame by displaying phone use statistics. If you search apps to decrease screen time, the majority of what you find is geared towards parents decreasing their children’s screen time. But what about the market of teenagers and adults looking to decrease their own phone usage? Breeze wanted to try a different approach, one that uses positive reinforcement to encourage users to change their own habits, all while having fun!

Our Solution

We developed Breeze to reward users for making the decision to stop scrolling rather than punishing them for their phone use. After downloading Breeze, users select how often they want to be notified to take a break from their device. Each time this interval is reached, the user receives a push notification from Breeze which visually interrupts their scrolling. Clicking on the notification brings users to Breeze, where they play a calming and engaging game of sailing a boat along the ocean. The more often the user accepts the notification, the more progress they make in the game! Accepting notifications leads to unlocking new islands and advancing to higher levels faster. Thus, the more often users take a break from their phone, the more progress they will make on Breeze — a positive reinforcement cycle!

You can’t possibly expect to decrease excessive screen time with an iPhone game, right?

Actually, we can. The game is designed to be calming. It involves navigating a rowboat to another island, with floating obstacles and barriers to avoid.

Three pictures of different Breeze gameplay levels.

The boat is also controlled by tilting the phone, so a user needs to sit upright in order to play the game. Studies show that active video games (AVGs) have the potential to significantly decrease sedentary time and increase personal wellbeing. By encouraging users to sit upright and use their fine motor skills, Breeze acts as a gentle transition between mindless scrolling and more active movement.

Finally, Breeze is not an app that is meant to be opened from the Apple home page. Rather, users are only motivated to enter the app by clicking on the notification that appears when they hit their screen time limit. They can only unlock new islands and more difficult levels by clicking on the notification, not opening the app directly. And as shown above, after finishing the level, you are directed to stop playing and go back to the home page.

But this goal came with a major challenge — how can we accurately track a user’s screen time while the app is almost always in the background?

Collecting User Screen Time — Apple Screen Time API

On the iPhone, every third-party app runs in its own sandbox. That is, each third-party app only has access to its own data and cannot observe any other app or phone activity. Thankfully, Apple has provided us with a few APIs to work around this problem. One of these APIs is the new Screen Time API, which was introduced during WWDC21 as part of iOS15. Using this API, an app can launch a monitor which can observe device activity even when the app is in the background or is terminated. A user can then specify which individual apps to track, as well as set time limits and use shield blockers. Sounds great, right?

Unfortunately, Apple, with their emphasis on privacy, designed this API for a limited purpose: parental control apps. Specifically, an app can only launch a device activity monitor on a phone that is logged into a child iCloud account (a feature of Family Sharing). And before doing so, an adult who is part of the same Family Sharing plan needs to enter their login details to authorize screen time tracking.

At first, we gave in to these restrictions and designed our app using the Screen Time API. Consequently, only children (or an iPhone logged into a child iCloud account) would be able to use Breeze. Dissatisfied with this sacrifice in user accessibility,, we found a few alternatives that could be useful for all age groups.

Collecting User Screen Time — Background Updates

Fortunately, we do have access to one extremely useful iOS API: `isProtectedDataAvailable`. Basically, this will return “true” when the phone is unlocked and “false” when the phone is locked. So `isProtectedDataAvailable` will be true whenever you are using your phone. That means Breeze can at least track a user’s total screen time!

To do so, Breeze needed a way to check this variable even when the app is not open. iOS allows us to do so through a number of options for background updates — Bluetooth, background fetch/processing, remote notifications, etc. We tested the following background modes:

  1. Background fetch: iOS allows you to run short, recurring tasks while your app is in the background. However, there is no way to specify exactly when these tasks will run. In fact, there is no way to guarantee that these tasks will run at all. Sadly, iOS decided that our app was not important enough to prioritize our tasks. So much so that they never ran at all.
  2. Remote Notifications: With iOS, you can also send remote notifications to your app to trigger these short background tasks. We attempted to do so by sending silent push notifications from a Firebase server every fifteen minutes. Unfortunately, after all of the trouble it took to set up, we never got silent push notification to trigger a background task. Most likely because, à la background fetch, iOS did not think our app was of any priority.
  3. Locations Updates: iOS gives apps the ability to check your location when the app isn’t open, even when the app is terminated. And when it does, your app can run a short background task, presumably to do something with that location data. We got a little creative and instead chose to use location updates/visit checks to run a short task to determine whether `isProtectedDataAvailable` was true and, if so, update the user’s screen time. And this time, it actually worked!

Collecting User Screen Time — Unlock/Lock Detection

With only one functional background mode, Breeze still couldn’t check phone usage often enough to get an accurate reading of a user’s screen time. After spending some time researching, we finally found yet another option: Breeze can wake up whenever your phone locks or unlocks. That meant we could precisely track when a person started to use their phone (unlock) and when that usage session ended (lock). Doing this every time a phone unlocks or locks yields theoretically precise screen time estimates.

One small issue: If we are only checking total phone usage when a user starts or stops using their phone, how are we supposed to detect when a user reaches their time limit and send a notification while they are using their phone? To solve this problem, Breeze schedules a notification for your remaining time limit every time you unlock your phone. And if you don’t reach your time limit before locking your phone, that pending notification will simply be canceled. Problem solved!

Impact & Validation

In an ideal world, we would have been able to spend much more time on testing — months as opposed to weeks. Even with the fast-paced nature of the project schedule, we were able to collect two weeks of user data. We hope to do more long-term testing in the future to verify the effect that Breeze has on users’ screen time.

After testing with mostly college-age students, users who regularly accepted Breeze notifications saw a decrease in screen time. After using Breeze for one week, users saw on average a 5% reduction in screen time from the previous week. An anonymous user said “I was really surprised that doing the games made me put my phone down. Something about the ‘tiny success’ actually made me put it down!”

About the team

Shown left to right: Sabrina Jain, John Weingart, Katherine Taylor, Grant Dumanian, Laurel Dernbach

The Breeze Team consists of class of 2022 graduates at Dartmouth College studying Computer Science. We came together to work on this project as a part of our degree’s culminating experience, and are all passionate about reducing our individual screen time and want to share that intention with the world.

Ready to take a break?

Find us on the Apple App Store.

--

--

Sabrina Jain
Dartmouth CS98

Software developer @ Amazon based in SF. Dartmouth '22 (CS + Political Economy majors). Owner of doggo. History + IR nerd.