ABChess

Denis Timonenkov

July 10, 2020
6 min

The task

The tendency to switch to remote learning has reached chess schools as well. Thus, we were approached by an international chess master, the founder of ABChess School, with the following task: to develop an educational application for playing chess on iOS. The main parts of the app were to be Training, Personal Account and Game itself.

The client actually already had an Android version of the app, so our task was to develop the application's functionality for iOS. In the process of implementation we encountered some issues, which we'll now highlight.

So, we start our chess clock to count down to the deadline and make the first move...

The opening

At the customer's request, we started the development from the Training part so that students could start training as soon as possible. It took us a month to build this module.

We used Swift, a robust and intuitive programming language created by Apple for building apps for iOS. Developing the chessboard was, oddly enough, the most difficult task at this stage. We studied existing chess engines and realized that Stockfish was the most popular. However, we were unable to use it because to integrate that engine, we would have had to write the code layer in the ancient Objective-C, which would have taken too much time. After consulting with the client, we were temporarily using a different engine. It may heve been less functional, but its tools were sufficient enough for MVP.

When the main part of the app was ready, it was time to put it on the App Store. However, we discovered that we needed to do a little more to get it published.


Middlegame

The first hurdle was that Apple's moderators were uncomfortable with the incomplete functionality of the Dashboard. The rejection, of course, is reasonable, but this was not our priority. To fix the problem, our team put stubs in the sections that will be developed later on — and it worked.

Next, Apple moderators had issues with the authorization. As we soon realized, the problem was not caused by malfunction, but by technical difficulties from the side of moderators. So our managers discussed this with Apple moderators and resolved the issue.

At Apple's request, we also implemented the possibility of log into the app via Apple ID.


Endgame

While managers were negotiating with moderators to get it published on the App Store, the development team had almost finished the Personal Account. The day after the release of the app, we added a new section.

All that remained was to develop the Game part. We started by replacing the chess engine with the one we initially wanted, Stockfish. Along the way we wrote up the game logic (such as recognizing draws).

When the app we ready, we needed to add in-app purchases. There were two types of purchases: one-time purchases (courses) and subscriptions (a package of courses for a limited period of time). Together with the backend developer, we created a system for generating purchases in the App Store, ready to scale — so the customer could create new products in the app on their own.

The project took three months to implement. Now, after the release, all we have to do is continue to provide support for the app and implement new features. In another month we get a new order from the client, this time for developing a website for the platform.

More from Sixhands’s portfolio