An innovative new app getting attention for this Vancouver Island Grocer.

Independent grocers today are facing strong competition from big box stores such as Costco, Walmart and even Amazon with their purchase of Whole Foods.

To stay ahead, QF reached out to us to develop a new iOS and Android app.
Client Location

Vancouver Island, BC

Industry

Groceries/Retail

Client Since

2000

Button to download the Quality Foods app for iOS Button to download the Quality Foods app for Android

  • 50,000+ Products scanned using the app in the first months
  • 210% Increase in app sessions month over month from previous app
  • 100,000+ Push notifications sent in the first months
  • 4.5/5 App store rating

Vancouver Island based grocer Quality Foods (QF) is well-known in the industry as a leader in technology. We're proud to have been a part of this since our work began with them nearly twenty years ago.

We developed their online shopping platform which lead to their their first iPhone app in 2011 which eventually made its way to the Google Play store for Android phones.

However, since 2011, much has happened in the mobile app space. QF's app was aging, graphics were dated, speed was slow, and their competitors were making strides digitally. It was time for a new app.

Knowing this app would be an important asset for QF for years to come, we had to ensure it was planned properly and created using the most modern technologies.

Three example screenshots of the Quality Foods app

App Highlights

  • Content management system integration

    Deals, offers and promotions seen in the app are pulled dynamically from a CMS system we created to allow QF to manage their content.
  • In-store location detection

    Special app features are enabled when you're detected in a store. We built a custom location management utility to handle this (details below).
  • Communication with store checkouts

    Selecting a deal sends the info to the checkout via QF's internal web services which the app communicates with.
  • Push notifications

    An extensive push notification system sends automated pushes, and also gives QF the ability to schedule their own manual notifications.
  • Data and image caching

    All data calls and images are stored locally in the app once received and implement custom cache rules for refreshing data.
  • Camera based UPC scanning

    Throughout the app you can use use your phone's camera to scan product UPC codes.

Overview + Planning

We traveled to Vancouver Island for meetings to define the project scope.

When starting a large scale project like this one, it's important to confirm the exact app objectives with everyone involved. Larger companies mean more people in the room.

We began with meetings with key personnel from QF to discuss what's possible now, and what should be deemed a future upgrade.

Together, we prioritized a final scope of deliverables which would be defined as phase one.

  • Latest technologies

    It was critical that the app be built using the latest SDKs, both to ensure longevity of the app and to ensure it would be easier to implement new features when Apple or Google released them.
  • iOS and Android

    This app must be available on both iOS and Android devices and must be compiled into native apps.
  • Integration at the store checkouts for "My Daily Special"

    Store level integration at the checkouts was a must. A new feature called My Daily Special was outlined.
  • Fast loading

    Many grocery apps are slow - heavy graphics, network requirements. We had to ensure all data queries were optimized for speed, and all images were cached to only download once.
  • New features

    This app must do things no other grocer was doing. Together, we agreed upon a new feature called Ad Watch to go along side the new My Daily Special area.
  • Push notifications

    Push notifications aren't used much in the industry. We had to make a way for QF to have full control of their push scheduling and content.
Challenge:

Store Integration

Many features require detecting that the user is in the store. How do we achieve this accurately when considering poor GPS signals and/or wifi?

Keep scrolling to see the solution
Challenge:

Push Notifications

How do we handle push notifications and the high volume of pushes that this app will send?

Keep scrolling to see the solution

Wireframing

Each area of the app was thoroughly wireframed. Every feature, every button. This was to ensure all parties were on the same page as to exactly how the app would function before any programming took place.

Example of wireframes for Quality Foods app

Features

Technology - Client side

We had important decisions to make in the early stages regarding how to build this app efficiently.

  • Xamarin

    Xamarin was chosen as the development platform as it allowed us to save time and budget by having a common code-base between both iOS and Android versions.
  • MVC Architecture

    We ensured the code bases in both iOS and Android were developed using an MVC layered architecture, as best as possible.
  • Testflight and Google Play Beta Testing

    We knew we'd be testing with thousands of users. This meant ensuring the most advanced testing methods were implemented.

While we can develop apps natively in Swift & Java, we chose Xamarin for it's cross platform capabilities and use of the Visual Studio IDE, which saved our client considerable expenses in time savings.

25%

Total time/cost savings

Technology - Server side

Both the iOS and Android versions communicate to the same central web service, which relays information to the central database and QF's head office systems.

Performance is critical, as we have thousands of concurrent users.

  • AWS Servers

    New servers on Amazon Web Services EC2 (web) and RDS (database) were setup with CloudWatch alarm monitoring and auto-scaling.
  • Web Service / API

    A central .NET Core API Controller manages all communication from the app to the web server.
  • Token Security

    Every call in the app is encrypted to the web server, and is parameterized with short life span tokens.
Key Feature

My Daily Special

Customers can select any item to be on sale, just for them. Since getting customers to the store is the most important goal of all, this solves a common problem of favourite items being on sale at a competitor.

Play Video
Key Feature

Ad Watch

Have you ever been to a grocery store and an item you enjoy was on sale, and it was only pure luck that you came across it? Ad watch ensures customers get alerted when their favourite items are on sale via push notifications.

Play Video
Key Feature

My Deals

Many grocers now have app-based deals. We took it a step further by enabling a way for QF to create personalized deals that are tailored to customer shopping history data, which they analyze using Python.

Play Video

Problem Solving

We had problems with GPS locator timing, signal strength, 3rd party plugins, iOS and Android quirks, battery life...

...so we built our own custom location system.

To resolve all issues, we developed a custom location management system, one for each operating system.

The system is asynchronous to operate silently in the background with minimal battery use using a combination of low energy GPS acquisition, wifi detection, and fallback procedures when poor signals occur.

What happens when you send a push notification to thousands and thousands of users?

It means that many open the app at the exact same time.

Since QF's app is heavily reliant on the web service for up to date info from the database, that results in thousands of phones asking for data simultaneously.

We had to ensure the infrastructure could handle these large spikes in traffic - achieved through AWS servers, monitoring and burst capabilities.

Picture of many different users

Testing

Over 1100 employees were sent email invites to begin testing the iOS and Android apps with us.

The app featured a special feedback system which resulted in the smoothest transition to launching that we could have ever asked for, as all bugs were submitted with the help of QF staff long before the public received the app.

Successes

App Launch Day

The launch of the app happened without any issues, and a QF Facebook promotion was created for users to tell us what their favourite new feature was. This is a clever way to promote the app, as the posts were public for friends of those posting to see.

First creenshot of positive comments about the Quality Foods app on Facebook Second screenshot of positive comments about the Quality Foods app on Facebook
Get in Touch Enough about us, let's talk about you.
#225-21900 Westminster Hwy
Richmond, BC Canada V6V 0A8