What technology am I using to run my app?

Written By :

Category :

Ninja Familly App

Posted On :

Share This :

Hosting an app is very different to a Website, first of all a website’s front end is much easier. You can easily create a website with lots of functionality using drag and drop web builders such as WordPress (what I generally use) and there’s such a competitive market for software to make websites more convenient, whereas Android and IOS apps it’s not really the case.

Firstly, most decent apps will be hand coded without using some sort of drag and drop builder, plus the backend also requires a lot of technical understanding to setup. Ninja Family is my first app that I’ve actually published in production, so I went through a lot of trial and error to make it something I’m willing to show off.

Testing with Azure

When I started to develop Ninja Family, I had just achieved my Azure Fundamentals certification, so I thought what better way to test my skills than host the backend of my app with Azure. From what I learnt in my azure cert I knew it wasn’t the cheapest option, but I didn’t expect it to be as much as it was. In the first month, I had created a database, Redis cache and tested out a few other services way more carelessly than I should’ve.

At the end of the month, I was emailed a bill for $1,100 and found out the hard way that Azure is not a platform to mess around with. Anyway, Azure support cancelled the invoices for me so in the end it turned out to be a good learning experience, and they also showed me some of their products on free tier which I’ve been able to play around with during the app’s development process.

Switching to Cloudways and backtracking

If you’ve read my blog about fixing slow websites, you’ll know that I use Cloudways for most of my web development projects, but turns out I can also use it to host the backend of my app. $20 a month on Cloudways did not seem like much compared to the $1,100 Azure just recently tried the charge me and cloudways servers are pretty fast, so I was overall pretty happy with my progress so far. However, the Node.js environment I had developed so far was only really setup for local development so I had a bit to do in terms of security and fixing the endpoint communications. At this point, I also didn’t have much of an idea what extra steps I’d have to take to put it on the play store.

Settling with Firebase and internal testing on the play store

After getting started with the switch to Cloudways, I remembered an old hosting service I’d looked at before which was targeted for small apps. Firebase beat Cloudways’ offer with a free tier up to a certain amount of usuage, plus unlike Cloudways Firebase has lots of documentation and pre-configured services to make deploying an app a lot easier. Since then, I’ve now setup my app for internal testing and am getting used to Firebase’s very awkwardly structured Realtime databases and authentication, which is suspiciously easier than everything I’ve learnt about database schemas, encryption, foreign keys and primary keys, table relationships.

Four years ago when I was in year 9 digital solutions learning about Databases, I would’ve really appreciated the simplified structure Firebase uses for databases – which is literally no neccessary keys, relationship, etc and you just create columns with data in a JSON tree format – but now I’m kind of just disappointed that I can’t use all of what I’ve learnt. Also, I already had tables with all the proper PK’s, FK’s, relationships and database functions setup in Azure’s MSSQL so it was more inconvenient that I had to recreate it in a NoSql environment.

Overall I think I really anticipated a significant challenge with developing Ninja Family but I’m kind of disappointed with how cruisy it’s been so far, by the same token I think the easy process comes at the credit of all the YouTube tutorials, ChatGPT, StackoverFlow threads and advice of older professionals that passed on knowledge.