Get in touch

Shape Your Chatbot’s Unique Voice Today

Get started by filling out the form, and we’ll help you create a persona that truly connects with your users.


    TrapTap

    TrapTap

    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 Android 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 Master of Code team worked on the Android app development 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:

    What We Created

    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
    • Duration

      12 month
    • Team size

      10 people
    • Platform

      Android
    • Industry

      IoT

    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
    dev_image_1

    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 Android 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:

    Your Business Vision Meets Technology Mastery Now

    Want to discuss your project or digital solution?
    Fill out the form below and we’ll be in touch within 24 hours.


















      By continuing, you're agreeing to the Master of Code
      Terms of Use and
      Privacy Policy and Google’s
      Terms and
      Privacy Policy




      chatsimple