CCleaner started as a computer utility capable of cleaning up your machine from any digital junk and unnecessary files, aiming to ‘freshen it up’ and making it feel as new. Piriform, the company developing CCleaner eventually decided to expand into mobile apps. Novoda, the agency I am part of, took on this challenge, and I briefly joined the project to provide the onboarding experience of the Android app.  

CCleaner for Android was a freemium app, i.e. it offered additional features and removed ads through a one-time in-app purchase (the ‘Pro’ version). My role as a product designer was to create an onboarding flow which would inform new users about the benefits of the Pro version and aim to effectively promote the additional features to increase the number of in-app purchases.

User testing is key


Early on in my involvement, I decided that the onboarding flow would need to be user-tested thoroughly in order for us to have high confidence that it would work in production. Due to the small size of the flow and no previous knowledge of the app required, I thought it would be best to evaluate the efficiency of the onboarding through quick and dirty guerrilla user testing.


I began by setting up a high-level plan of the journey. I would start with sketching out and designing a variation of the flow on Sketch, constructing a clickable prototype out of it on InVision, and then, with the help of a note-taker, testing it very quickly with people we managed to stop on the street. Repeat until the onboarding flow reaches an acceptable level of quality to go into production.

I had a pretty good idea of what this onboarding flow was going to look like, so I moved quickly from wireframing to interface design in Sketch, and then immediately to prototyping on InVision. What I called the ‘preliminary’ phase would be a 5-people test with colleagues around the office, which would be useful to iron out inconsistencies and bring to the surface seemingly obvious mistakes.


It’s amazing how user testing can reveal things you wouldn’t had thought about on your own. My assumptions were quickly challenged, and I discovered flaws in the flow that could’ve proven disastrous had it gone into production. In short, a UI paradigm I had used led potentials purchasers to think there were multiple payment plans instead of just one. More flaws were ironed out and soon the flow was remade and re-prototyped, ready to be tested out in the wild.

With a note-taker by my side, we went out in the city and asked people to use the prototype that we put on a test phone and express their opinions. The target users were people that reflected the user base CCleaner already had, in terms of age and tech-savviness, but the most important factor was that they had to be unfamiliar with the Android app, as the onboarding flow targeted people that installed the app for the first time.


Test, test, and test again!


On our first run, we tested at a park nearby with about 8 people, asked them open-ended questions about their experience with the prototype, such as if they thought it was easy to use and understand, why they made certain decisions, what they thought about paying for apps, etc. After gathering insights from this phase, I continued refining the flow into the right direction, and we repeated the test again with people around Euston, near the Piriform offices.

After three rounds of guerrilla user testing, I came to the conclusion that the flow was ready to go into production. The final onboarding experience ended up being notably different from the initial concept. It was made shorter, stripped of screens that would confuse or irritate users, and simplified in terms of UI design. Developers were quite happy to see that this new flow would be easy to implement. I’m always amazed how at the end of all user testing sessions, the final design ends up being so easy and simple that one can’t help but think ‘how did I not think about this from the very beginning?’. That is the power of user testing!



A few months later, the new onboarding experience was implemented in the app and made it to production and the general public. Within the first 30 days of its release, we noticed a staggering 32.3% increase of in-app purchases and Piriform was really happy with the success.

I briefly joined the project at a later time to design an animation for the ‘Advanced Cleaning’ feature which needed to block the interface for a certain amount of time. In the process, I fell in love with Lottie, an animation tool by Airbnb. More on that in the AutoScout24 case study.

This project helped me a lot to understand the value that user testing can bring to a product. It’s not just good to test possible solutions for a problem, but necessary to confidently say that time and energy has been spent into something that, aside from achieving business goals, ultimately makes people happy.