Took advantage of quarantine time to learn a new programming language called Flutter. One of the goals of the Flutter project is a single codebase being used to build Android + iOS + Web and desktop based vesion of a tool. It’s being supported by Google right now, so high quality tools and a active and smart community. I took an online class to make sure I got more than just the syntax but some good development practices as well.
So task #1 was to use RateWings as the learning tool it’s always been and rewrite it. I also moved the database off RDS to firestore which will save me about 90% of what it costs to run the app. It also means RateWings is a native app for android vs. just a wrapper around the website. It’s currently deployed as a static app hosted by aws S3 and behind CloudFront (for https) but it’s a pretty lightweight deploy so I might learn some more GCP products.
Lots of functionality lost in this version (like users, about page and some tooling around maintaining ratings) but I’ll be sharpening my flutter skillz while re-implementing these. Also will be much easier to get a native Apple app but I gotta get my hands on a mac as that’s the only way to do that.
Did some modernization on how I run RateWings in the cloud. Instead of renting an entire computer from Amazon Cloud, I put RateWings into a container and told Amazon Cloud to run it however it likes. This should save some money on the infrastructure bill to keep the site running.
As always, I use RateWings to learn new technologies. This time it was Docker and ECS. I’ve been using Docker for development reasons for a while, but now the same image I build for development is being used to run the site in production. ECS is Amazon’s Elastic Container Service which is designed to allow users to quickly use as many instances of their services as needed to handle existing load. For me, this means use almost no resources as the site doesn’t generate much load at all.
I’ve still got some DNS tricks to figure out to make things 100% automated, but I can now push a change to the site (build new image, push to ECS, update Dyn DNS) in under 2min.
Release a beta version of RateWings on the google play store for android users. Don’t expect much more than a skinning of the existing web based app, but hopefully this’ll get it on peoples screens and get some more ratings rolling in.