Sitemap

How I Built an App to Simplify Learning Data Structures and Algorithms with Unity

Eugene
5 min readDec 7, 2024
Photo by Basic Moto France on Unsplash

Learning data structures and algorithms (DSA) is never easy. Whether you’re a computer science student or a self-taught programmer, it can feel overwhelming. Textbooks are static, code examples complicated, and the mental effort needed to understand these topics is high.

I have a background in mathematics, software development, and teaching. I’ve always wanted to find better ways to help people learn. That’s why I created a mobile app to make learning DSA easier and more enjoyable.

In this article, I’ll explain how I built my app, the challenges I faced, and why I chose Unity as the main tool.

The Idea Behind the App

I wanted to create an app that would:

  1. Show Algorithms in Action: Help learners see how algorithms work step by step with animations and clear explanations.
  2. Let Users Practice: Allow people to experiment with data structures, like building trees or drawing graphs.
  3. Work Offline: Learning should be uninterrupted. The app would work entirely offline, free from distractions like popups or advertisements.
  4. Be Mobile and Accessible: Learning doesn’t have to be tied to a desk. Let users learn anytime, anywhere, using their phones.

Why Unity?

I started with a prototype using JavaFX on a desktop. In just a month, I had a working concept that showed my idea could work. JavaFX was great for quick changes and testing ideas fast.

But the prototype also had limits. Android’s built-in 2D tools, which are similar to JavaFX, weren’t enough for the complex, interactive features I wanted.

I needed a tool to create an app for both the App Store and Google Play. Flutter and Dart didn’t impress me, but I remembered the Unity courses I took while learning game development. Even though I didn’t make a game, I saw that Unity’s tools were perfect for my app.

Unity Editor

Unity made drawing and moving objects for interactive visualizations much easier than other tools. As an experienced Android developer familiar with Java, switching to C# was simple and intuitive.

Bridging Two Countries to Build One Vision

The decision to build my app wasn’t just a technical challenge. In the summer of 2019, I found myself at a crossroads. I had just been let go from my job in the Netherlands due to a lack of work at my company. With only three months allowed to stay in the country after losing my job, I faced two choices: search for another position or fully commit to creating the app.

I chose the second option. It wasn’t an easy decision. I had no more than six months of savings to live without a job, so the timeline to develop and publish the app on both the App Store and Google Play was extremely tight. Still, I believed in my project and its potential to make learning data structures and algorithms easier for thousands of learners.

The first version of the app came to life in two parts. I wrote the initial code while living in the Netherlands. When my time there came to an end, I returned to Ukraine, where I completed the project and prepared it for release.

Theory, Practice, and Interactivity

The app is built on three main ideas:

I. Theory
Every topic in the app includes a theoretical component, accessible through a popup dialog. The goal isn’t to overwhelm users with complex details but to provide just enough clarity to understand the concept.

II. Interactive Visualizations
The central element of the app is its interactive features. Users can:

  1. Watch algorithms unfold step by step, observing how data evolves at each stage.
  2. Experiment with building data structures like binary trees or heaps, manipulating elements to see the effects in real-time.
  3. Draw graphs or input custom values to explore algorithms like Dijkstra’s or Kruskal’s in action.
Building a Red-Black Tree Interactively
Visualizing Prim’s Algorithm Step by Step

III. Code Walkthroughs
Users can delve into programming code that demonstrates how the algorithm or data structure is implemented. The app currently supports Java and Python, with plans to expand to C++ in future updates.

This combination of theory, practice, and code makes learning DSA easier and more interactive.

Interestingly, adding new topics to the app is not just about coding. The bigger challenge is figuring out how to explain and animate concepts in a way that feels natural and easy to follow. The goal is to make sure users can understand the animations even without reading the explanations.

Final Thoughts

The app has received many positive reviews, which is very encouraging. Users have also shared feedback about areas to improve, and I plan to address those in future updates.

Looking ahead, one of my key goals is to make the app more accessible by adding support for multiple languages. To sustain the project and continue delivering value, the app includes an in-app purchase to unlock its complete content. This helps me keep it free of ads, so learning stays focused.

If you’re interested in learning data structures and algorithms or curious about the app, I’d love for you to try it.

Where to Find the App

Download on Google Play
Download on the App Store

Learn more at: https://www.algoaction.xyz

--

--

Eugene
Eugene

Written by Eugene

Android Developer | PhD in Mathematics

Responses (1)