Care about offline users

How Moliata Studio's projects are dealing with one of the biggest problems in rural countries. Internet connectivity.

Internet connectivity *shouldn't* matter

20 years ago internet wasn't a thing or was it? Well, it is now. It's like a door to endless possibilities that not all of us can open and explore. Rural countries haven't ever heard of internet, or it's just unavailable there. That's what I think we should care about.

At Moliata Studio, we try to cope with this. If we take a look at OpticalMath, we can barely find internet-only features (billing, ads, push notifications *cough*). You see, we literally had to move from our lovely optical character recognition API for math notations that we used called MathPix to a trained custom-model Tesseract. It was a headache, although that gave us more control and well, internetless (I like slang words) support. The migration took months, I am not joking. But it was worth it. Time doesn't matter, support for users accross the world with different devices and internet connectivity issues is what matters the most. As a brand and a company, our goal is to make tools and projects accessible to absolutely everyone. Moving on, did I mention about the biggest problem we had, but a planned one?

Solver like new new

Yup, I did stole that "like new new" phrase from the Google Pixel* advertisement video, but who cares... Talking about solver, I can just say that, it was the biggest nightmare we ever hard. Oh yeah, because of offline support. Problem is that, we used SymPy Gamma for our computational calculations, step by step solutions, graphs, result cards and even video predicting! ...and yes, it was running on the Google App Engine cloud servers. Meaning, that if we move, we will have to rewrite our solver from scratch (it was written in Python originally) and we will have to make it built inside the application, which in this case, means larger application size and a lot of complexities. Making step by step solver is not some take-a-coffee-cup and 1, 2, 3 you're done. First of all, you need to parse the input by decomposing each symbol into different kind of nodes which means your phone needs to computate problems by itself. This results in more CPU usage, but allows everyone to use the app even without the internet connection.

I hope this blog post (aka "article") helped you to understand a bit more why you should care about offline users and how do we cope with that ourselves here at Moliata Studio.