Get in touch
iPhone shape
TrapTap

TrapTap

The World's Simplest Traffic Indicator with a successful Kickstarter campaign
TrapTap

Idea

The project happened because of the unique problem that all four TrapTap creators had: there was no simple, cheap and legal way to avoid the speeding tickets. So, they created a distraction-free device that sits on a vehicle's dash. It maps areas with speed traps, school zones and red light cameras by using GPS and warns you of potential driving hazards.

TrapTap uses Bluetooth Low-energy (BLE) to connect with the free app on your smartphone and its mapping software.

Project Overview

To customize the alerts settings and check the statistics users should synchronize TrapTap with our app. The app collects and shows the average speed, travel distance and a number of hazards passed.

TrapTap App - Your profile

It’s incredibly easy to use:

  • Download the app

  • Pair with your TrapTap via Bluetooth

  • Configure your settings

  • Set the device on your dashboard

TrapTap - flow

The MOC team worked on the project by using a feature-by-feature approach in a short phases. Each sprint lasted for 2-3 weeks. They comprised new feature development, location, database and battery usage optimization and provided workarounds for issues caused by different Bluetooth behaviours of various Android devices.

The project activity included:

  • Android app development
  • Quality Assurance
  • Customer and product support

Development

The app and the device work simultaneously with the Bluetooth, location and networking, which influence a phone battery a lot. Also, we had some Bluetooth issues caused by different vendors' smartphone peculiarities. We solved those issues by fixing the RxAndroidBle library.

dev_image_1

Master’s comment

One of the development challenges was to detect a driving path in a real-time and minimize a distance deviation.A real-time path prediction can passively monitor the driver’s behavior. A driver only gets alerts if the information is highly relevant to the current location. The heading and distance deviation are based on the Gaussian distribution. That enables us to consider the correlated heading and distance uncertainties in a prediction. As the predictive distribution of the multi-output estimates, we generate only one output.

To validate that approach, we learned the prediction models by using the collected data, and testing it. The prediction utilizes the individual travel patterns to determine the user’s future travel path. If a user does not have a sufficient path history, the algorithm can transit between individual user path history and all path records that are stored in the database. This principle allows us to individualize the route prediction approach based on the user’s specific travel patterns.

Vlad Yarovyi — Android Developer

However, path prediction appeared a tricky thing.

dev_image_2

Master’s comment

We store the mapping tile related data in a Realm database. The location data takes up much space, and, as it turned out, Realm doesn’t work well when data size grows huge. The solution was to divide a huge base into a bunch of small ones. Since map comprises 1’*1’ squares called tiles, we created individual bases for each tile to avoid having huge Realm instances. We need to keep only a current and every surrounding tile at any given moment. This method helps us save a device’s RAM as well . Compressed data for a single tile occupies up to several megabytes. To consume less battery we load the tiles in advance: initially, the driver’s current tile and then all surrounding tiles.

Alex Isaenko — Android Developer

As for the iOS version, we have simplified the code by getting rid of global variables. Now, the information transfers between the activities by events.

  • Duration

    12 month
  • Team size

    10 people
  • Platform

    IOS, Android
  • Industry

    E-commerce
  • Website

    traptap.com

Technology stack

  • technology technology

    Networking

    • Retrofit2
    • OkHttp3
  • technology

    DB

    • Realm
  • technology

    DI

    • Dagger2
  • technology

    test tools

    • JUnit4
  • technology

    communication

    • RxAndroidBle
  • technology

    accounting

    • AWS Congnito
  • technology

    threading

    • RxJava
  • technology

    crash analytics

    • Crashlytics
  • technology

    customer support

    • Intercom
  • technology technology technology

    debugging tools

    • Stetho
    • Stetho-Realm
    • Ok2Curl

Quality Assurance

We performed a test documentation writing (test plan, test cases, checklists), functional and non-functional testing, and user feedback investigation.

Non-functional testing included:

  • Performance testing to decrease a launch time and the app size
  • Compatibility testing on various Android devices with different Android and Bluetooth versions
  • Usability testing to add notifications and buttons to make interface even more self-obvious than it was. Testing was based on customers’ feedback
  • Interoperability testing
  • Recovery testing
  • Power consumption testing to find out the “greedy” processes, and save the battery
  • Stress testing
  • Endurance testing to guarantee the stability and reliability of the app. It was needed as our Android application works an extended period of time in the background
QA testing

Master’s comment

TrapTap app is being used on a daily basis to help users avoid speeding tickets and emergency situations, so we needed to make its operation as much trouble-free as it is possible. Tests included many experiments in different locations, with the various internet, Bluetooth and battery conditions. Among others, we found out the most and less battery consuming processes. For example, we were concerned that constantly reconnecting consumes the battery a lot. After running experiments, we found out that it takes only 1% of battery in 10 hours (we assume it isn’t really much for the feature that lets users forget that they have to connect to TrapTap every time they enter a vehicle as it is done automatically every time).

Nataliia Chausova — QA Engineer

Launch

We released the app on October 15, 2016. The stats we got five month later:

    • 1,500 installs from the
      Google Store

    • 4,054 user alert contributions

    • 19,629 h traveled with a TrapTap on

    • 1,221,554 km traveled with a TrapTap on

    • 98,320 red light camera
      notifications

    • 80,312 school zone
      notifications

  • launch_hero

Customer and product support

By using the 'Help and support' button in the app, the user can connect to a customer support specialist to get online consultation via Intercom. We continue with hazard mapping, develop new locations, make bug fixes and usage optimizations.

Check out our app in the Google Store:

Google Playmarket