Does a good sports application always equal revenue? The question is direct, but the answer is tricky: it definitely could, as long as the developer treats it as a tool with which his customer can enhance the end-user’s daily life. In the app world, the sports industry is one of the ripest in terms of potential profitability (and in this case, “profitability” has a dual meaning: monetary (for the business that “sells” the app to its customers); and non-monetary, meaning the health benefits derived by the customer who uses the app). With this in mind, even the “obvious apps” people routinely use when practicing sports and monitoring their health status have profitability potential, as do “spectating apps”, since these have scientifically measurable benefits when strong sports emotions are shared amongst users.
Assuming you’re interested in creating a great sports app to improve your users’ lives, the first thing you need is technical excellence. In order to ensure a seamless experience, you require an outsourcing partner with a wide reach who can get things done right and possesses a strong knowledge of sports industry standards. Much like athletes themselves, sports apps come in all shapes and sizes, from small mobile apps charting local lawnmower-racing competitions, to huge solutions devoted to international sporting events. Since the development skill required for these apps can swing wildly from one end of the spectrum to the other, your outsourcing partner requires expertise ranging from mobile development to desktop and web, and from building personal fitness trackers to deploying systems able to analyze and predict motion.
By far the most-used sports apps are for personal fitness. These apps are often a mix of mobile and web applications: for example, you can have an app for a wearable device working in conjunction with a web app. In such a case, the app for the wearable device could serve as a GPS tracker: once plugged into a computer, the wearable would sync with a desktop application and produce workout summaries and data visualizations. In a sense, these are pocket-sized “fitness trainers” providing video lessons, distance and speed tracking, navigation, and last but not least, emotional support of the virtual kind, of course, but effective nonetheless.
Let’s zero in on apps that provide video advice and lessons, since these are big hits with sportspeople worldwide. For these apps, a host for storing the video files can be used, and server side development is not needed since the video is directly streamed to the user’s device.
There are two types of streaming: 1) a piece of the video is downloaded and shown, and 2) one that employs metadata, which is a tad more complicated. This metadata contains links for different video files at different resolutions, provided to users depending on the bandwidth available. It’s still called “streaming”, but there’s an infrastructure behind it — that is, many different versions of the same video file encoded at different bit rates and in different formats.
In layman’s terms, the first streaming approach consists of putting a video on a hosting service, adding links within the app, and providing it to a user without considering the user’s internet connection speed. This approach works fine, but for some users it could be too slow or too data-consuming.
If your goal is to live-stream inside the app, or if you plan to build a serious, full-featured application with registration, accounts, login, social features, competitions, and more, then you’ll need server-side development in PHP, .NET, Java, or other languages, depending on the specifics.
Nowadays, most modern flagship smartphones have hardware/software tools used to obtain and process a user’s motion data. For example, for the iPhone Motion Chip that debuted on the 5S, and the barometer on the iPhone 6. Activity sensing trackers are tiny integrated circuit units with extremely low energy consumption rates. They work in the background and record data tracked by accelerometers, compass, gyro, etc. When the app is launched, it gathers the physical activity data tracked during the gap between the current launch and the last launch. Health apps can be built on the basis of this concept, and any platform using GPS can also measure distance and speed, as well as navigation.
GPS navigates on maps, not blank displays. The question is, which map to choose? While Android can integrate with Google maps, iOS has native support for Apple maps. This is an important factor to keep in mind, as it takes less time to use maps that offer native support. Another advantage of native maps is that they can be cached, meaning that if a second app has recently used them, they still reside in the device’s memory and can be used by other apps without internet connectivity. This doesn’t work for non-native apps, i.e. Google maps on iOS devices.
For some tasks it is reasonable to integrate different kind of maps, like offline maps. Offline maps can be handy but they have a fundamental problem: they become quickly outdated since road/business info can change on a dime. However, if you’re a fishing enthusiast, offline maps are a great resource since lakes don’t tend to relocate themselves.
App-based emotional support is conveyed through social features: communities where users inspire each other through messaging, performance comparisons, and competitions. All of this is implemented server-side and developed using any technology — PHP, .NET, Java — chosen according to the app’s specifics.
How do you get real-time scores and up-to-date statistics for games, tournaments, leagues, teams, and athletes? The correct answer and the resulting data is crucial to all betting and fantasy sports-related services, because without it participants can’t make meaningful decisions or calculate results.
The first method for obtaining these vital stats is by subscribing to a 3rd-party service that specializes in live scores and data collection. Sportradar.us is one such service, but it doesn’t come cheap. Services like this provide an API, and requests to this API constitute a query to the service’s database. You pay by request. Also, besides calculating results, you’ll also want to display live scores on your app or website – hence, the subscription investment could be substantial.
The second option is to develop a proprietary parser — or more precisely, multiple parsers. Any development platform will do — PHP, .NET, or Java. Complexities faced by developers pursuing this option revolve around obtaining predictable scores: sometime they’re done using "div" tags, sometimes using "table". More commonly, you end up with nested "table"’s inside "div"’s, and that’s not accounting for the possibility of a page being rebuilt overnight in an entirely new fashion. In short, creating custom parsers can be tricky, but our considerable proficiency allows us to handle parsers of any complexity.
Analyzing video to detect motion (“motion analysis”), while relatively easy for humans, is an extremely difficult task for machines. Object detection, movement recognition and tracking, movement prediction…all are duties requiring complex technological IT solutions.
Movement recognition is when detecting an object’s position relative to its surroundings changes in time. A video file is a sequence of images where every object of interest is considered a “moving region”. So the first task for a motion analysis program is to find the object(s). At first, the result would depend on the quality of the input data — that is, the video captured by cameras. Besides, objects could be small and hard to read (for example, think of a fisheye lens in a stadium that would smear the picture), so it’s important to evaluate whether any kind of data correction is needed, and how to make sure any “noise” is omitted from data collection. Once this is sorted, the object’s movement must be tracked. But what if it disappears and then reappears in an unexpected location? What if it stops? What if it was really just dirt on the lens?
While a human uses two eyes to see objects in 3D and can distinguish between all possible cases, a computer works mainly with 2D pictures from camera feed — and teaching it to interpret them correctly is a daunting challenge. When you lack a neutral background and there are several moving objects interacting with each other at different angles of vision, things can get complicated quickly.
Movement prediction is another task that requires solving in order to follow an object — for example, knowing when to switch cameras. The best-performing algorithm in this regard one that calculates the center of movement.
Complicated applications like these can be developed on any platform, the choice of which is always dictated by parameters like:
The most common library possessing basic functionality for motion analysis is OpenCV. It uses C++, C, .NET, Java, and Python interfaces, and supports Windows, Linux, Mac OS, iOS, and Android. It actually provides from 60 to 70% of detection on average, as the task of computer vision is very complicated.
Sibers’ Unix team is working on the solution for motion analysis, based on neural networks, which would provide according to our estimates up to 96% of detection.
Using the C++ version of OpenCV and developing the entire platform with it provides the best performance but also the longest development time. This is because many features supported by other platforms must be built from scratch for C++.
If the app must be integrated into a pre-existing system, it makes sense to use the same platform for both.
It’s worth remembering that motion data analysis applications often must be connected to specialized hardware — i.e. motion-capture cameras. Most devices have drivers with a universal interface that can be integrated with your platform of choice.
The best novels are written by authors with a personal interest in their subject matter. The same is true for sports apps, as many of our clients will attest. Sibers’ sports industry experience dates to 2005, and since then we’ve worked on applications for golf, tennis, fishing, soccer, hockey, boxing, and many others. We even developed an application in which personalized stitch-figure models representing real performance and body data were overlaid on captured video. All this app did was contribute to a world record and an Olympic gold medal. So yes, we love sports to the point that we built an internal platform in which employees can place friendly wagers on upcoming sporting events and win prizes (along with office bragging rights).
See the following articles for more information on attributes for specific industries, and visit our Case Studies for detailed project experience.
This project is all about Canada’s undying love for hockey. Our client came to us for a solution to the following dilemma: how could busy parents of young hockey players stay abreast of their child’s performance? The answer? Capture the games on video.Case study in details
The solution, based on biomechanical principles, data mining, and statistics, provides athletes with a uniquely effective training tool that is now used in more than 70 sports facilities worldwide.
And in more good news, the training application was featured in The Washington Post, which wondered if the technology could help win an Olympic gold. It not only did just that, but also helped set a new world record!Case study in details
Need a development team for your sport-related project?Request a quote