One of our long-term customers has created a successful App Store business of niche educational gaming applications. The target audience for most of them are kids and their teachers. Most of them are games or have gaming elements in their core. Our team has been powering the development efforts for these applications through the course of more than 6 years.
The flagship product is the Bitsboard application. It has been around for years and has obtained a large audience, consisting of teachers and parents. It is a large project, which basically consists of two parts: content creation, editing and sharing, and 20+ games to play with the content. It is built for iOS, supporting iPad as a primary device and iPhone as secondary (some features are only available on iPad).
The initial codebase was built by a third-party developer. However, after Factorial Complexity developers had proven their skills delivering other products for this customer, the development of this product was gradually transferred to us. We have been supporting Bitsboard for many years now. During this time we had delivered more than 50 releases, added hundreds of features, including few major rewrites of different aspects of the application.
Replacing Parse as a Backend Solution
The initial version of the application relied on Parse backend-as-a-service solution. The company behind Parse was eventually purchased by Facebook and shut down. We have completed the migration first to Back4App service and then eventually to a combination of services running on AWS and Firebase.
Migrating from Objective C to Swift
The application was initially coded in Objective C. However, Apple introduced Swift and made it clear that it is going to become the first choice language for iOS development. We have started a gradual transition to Swift. First, we simply agreed to code new modules in Swift, while keeping the older ones intact. Then, eventually, there came a need for a major rewrite of the core. It was re-created almost from scratch in Swift.
Adding Synchronization Feature
Initially, Bitsboard was designed for offline usage. Only the content provided by the editors was in the cloud available for browsing and downloading. Eventually, the feature to share user's content was introduced. At first, it was pretty rudimentary. But later on, the need has arisen for full automatic synchronization of user's content between their devices as well between teacher's and student's devices. A system based on Firebase was designed and developed by Factorial Complexity to make this possible.
Introducing Unit Tests
The codebase of the application is pretty large and making changes can lead to regression bugs. As the project grew bigger Factorial Complexity has introduced unit tests for the application core with the XCTest framework.
Maintenance of the Existing Games and Adding New
The heart of Bitsboard is 30 mini-games, which make learning fun and engaging. Throughout the work on the project, we have been maintaining the existing games and adding new ones. Most of the games were created from scratch specifically for Bitsboard, some were initially developed as separate gaming applications and then were integrated into Bisboard.
Here are some of the smaller educational products, created by Factorial Complexity throughout the years.
A+ Spelling Test is an educational application for practicing spelling. Both regular tests and several unique game-style test modes. Words can be fully customized. Includes built-in spellcheck dictionary. The list of words can be shared online, this feature was powered by Parse but was eventually migrated to Back4App, after Parse.com was shut down.
Lingo Arcade is an application for learning languages in a fun and engaging way with 5 mini-games and 150 levels for practicing different aspects of languages. Supports English, French, Spanish, and German. The results are stored online and synchronized throughout accounts.
ABC Ninja is similar to the popular iOS bestseller Fruit Ninja, this game is about slicing objects with finger swipes. However, instead of fruit, the player slices letters while learning the alphabet. The game is built with a cocos2d engine and utilizes some low-level OpenGL functionality to achieve cutting the letters and drawing the "swoosh" effect.
Story Creator is an application for creating storybooks containing photos, videos, text, and audio. The stories can be shared online. This was originally powered by the Parse service but was eventually moved to Back4App. This is a pretty popular "scratch book"-style application.
ABC Genius features multiple interactive games for kids of all ages to learn letters. This application is one of the few products built on top of the Little Genius engine. It is a common approach to building this type of application - creating a single-engine/platform and then extending it with the different data and selling it as different applications.
Many more similar applications can be found here.