The technology behind the scenes

The idea behind Carrot is great, but is it technically feasible? This post will explain how Carrot will work behind the scenes.

iOS and Android

Carrot will come as both an Android and iOS app so that the most amount of people will be able to use it. Statistics show that over 99% of devices sold run either iOS or Android. The majority of devices world wide (85% in early 2017) run Android. However, in countries such as the UK and USA, the proportion of iOS users is higher; about half in the UK (ref).

Android and iOS apps require separate development, but because of the distribution of users of the two platforms, we consider it worth the effort to develop for both.

Importing data from health tracking devices

A central function for Carrot is that uploading data from health tracking devices is automatic. To make Carrot useful for as many users as possible, we will implement support for all the major fitness tracking devices.

Many fitness trackers offer web based APIs, or libraries, to help developers access data from the devices. However, both Apple and Google have made single tools which gathers data from a multitude of devices.

Apple offers HealthKit and Google offers Goolge Fit. Both support the majority of popular fitness trackers with the exception of Fitbit, which is supported for Google Fit, but not HealthKit. However, Fitbit offers a web based API, which we can use to download data on the iOS devices. Hence, in the Carrot Android app, we will use Google Fit, and in the iOS app we will use HealthKit and the Fitbit API.

Both Google Fit and HealthKit not only supports fitness devices, but also a number of fitness apps. Both also generate their own data, such as step counting. For Carrot, this means that users who does not own a separate fitness tracking device can use their smartphone for goals that are measured with steps, runs, etc.

Payments and betting

The element of financial risk and reward makes Carrot a light betting app.

Not Android, nor iOS, allow betting apps which handles payments and payouts in the app itself. However, both platforms allow apps that facilitate betting. This means that betting is allowed, as long as the app is free, and no money is transacted in the app.

For Carrot, this means that we will have to make a website where users can purchase Carrot credits, which are used to enter a race. Winning a race is rewarded in credits that can be redeemed on the website.

The website will use the Paypal API to handle the payments and payouts. The website will also be integrated with the app as much as possible. When the user wants to enter a race, the app will start the device web browser with the website. The user login with the same details on the website as the app, make their purchase, and when they return to the app their account has been credited and they can enter the race. When a user win, the app again starts the web browser with the website, and they can have their winnings payed out.

Backend

Carrot will have a backend server where all the data will be synced. The data gathered by the app will be uploaded to the server and distributed to the other users of the app. Hence, the timeline for a given race will contain the same data for all the members in the race.

The backend will also store all the necessary information about users, how many Carrot credits they possess, etc.

Leave a Reply

Your email address will not be published. Required fields are marked *