Can I Make The Ultimate Art App in 5 Days? | Behind The Scenes

Can I Make The Ultimate Art App in 5 Days? | Behind The Scenes

Hello! I made a video! A 20 minute one.

Between you and me there was no way I was posting a 20 minute video directly to LinkedIn. But, I wanted to jot up some words about it, because why not.

I’ll link the video in a bit, but I am purposely trying not to mix my hobby channel with LinkedIn. This article is just a way to go over some interesting bits. 

Before we continue I just need to cover one very quick thing. 

Why Did You Make a Tech Video? 

Well, if you’ve been following the lore, I’m currently on the lookout for a job. However, what I discovered after the first couple weeks is that due to me being a developer advocate for a year and then trying out media/film in 2024, I am no longer up for consideration.

Originally, I assumed the main difficulty would be readapting to the technical stages of the interview process, and trying not to be so nervous when giving answers, so I’d been studying up on the fundamentals and revising architecture. 

But the actual issue has actually been something that I hadn't initially anticipated.

Recruiters Internal/External are unable to convince hiring managers to push forward with my CV in this current job market. The most common reasoning being a lack of evidence of recent coding experience. Which is especially prevalent with the complete lack of mid-level roles. This means I currently don’t get a chance to get a try at the interview process. 

And with that fact now known, are the pieces now coming together? 

If my current CV doesn’t sell me particularly well, then I might as well spend my time working on things that could help tilt the scales a bit. 

Plus it gives me an excuse to keep practicing my hobby while getting some good practical programming reps in. Tis a win-win. For now at least. 

Anyway Here’s The Video 

Now be warned. The video is a ‘long’ one. (Assuming you don’t partake in the occasional 7-hour YouTube essay). If you don’t want to sit down and passively watch a 20 minute video on your second monitor, this article has already covered the important bits. You are free to go on with your day.

Only click on the link if you’re prepared to sit through something that is the length of a short TV show.

Ok? Alright. Here is the link. Can I Make The Ultimate Art App in 5 Days?

Some of the Fun Technical Bits of The Video

If you’ve skipped the video… totally understandable. (As long as you didn’t click on it!) This next bit isn’t in there anyway. It’s just some opinions on some of the things I encountered during the making of it. 

Learning Flutter for the First Time

I wasn’t too sure of what the ‘landscape’ of a mobile developer was nowadays, but I ended up landing on using Flutter to create the app as it seemed to have the highest results on the search engines.

From a first timer, Flutter is surprisingly intuitive and it’s easy to get something onto the screen. But I think that might be due to how the people working on Flutter have set up the developer experience. 

It was very simple to find workable examples (both video and code) of all of the basic widgets and features that make up Flutter. Flutter was developed in a language I didn’t even know existed, ‘Dart’, but it’s almost like I didn't even need to know Dart to work with Flutter. Though that could just be because of Dart’s similarities to other languages I’ve used. 

Deploying My Go API to ‘The Cloud’ with Docker and GitHub Actions

This is something I already knew how to do, but it was nice working through it again. 

I feel for any hobby project these two make everything so very simple to deploy.  

Honestly, I spent more time thinking about what cloud service I should use than I did actually deploying my API into production. I settled on DigitalOcean, because I like the idea of being given an ‘empty’ box and having space to work on my own solutions for things from scratch. As that’s likely the best way to understand and appreciate technologies a bit more. 

Though then again, Go also makes it quite easy, since you can just build an executable and if you really wanted to, manually dump the executable on a server and just run it. No need to install anything. But of course, adding new code changes would be a hassle. 

My Respect has Grown for Microsoft Paint

On the final day I needed to figure out how to draw on my screen. It does look like something relatively simple, but it is slightly more tricky.

I think the time pressure definitely added to my initial lack of understanding, but it kind of reminded me of when I needed to learn a lot about Vector math when I was designing a game quite a fair number of years ago.

Still, when I finally got a scribble onto the screen it was such a relieving moment, because it meant we had finished what I wanted to be the MVP just in time. 

Well, until a fun bug showed up where any image I drew on my phone would export as a black square. That was certainly concerning. The tests hadn’t accounted for that, not that they could. 

All it required was a little understanding of how the ‘canvas’ worked. In short, my canvas was the wrong color (transparent) so when I converted the canvas into a png all I got was a black square. Once I set the canvas color to anything else, I got the full drawn image rendered correctly.

Or at least that’s what I presumed happened. 

Resumable Uploads

I’ll keep this part short. As the app required uploading and downloading images, I started working with Multipart Requests, but I stumbled across this article that explained their reasoning behind Why Multipart Mostly Sucks

My opinion is neither here or there on the matter, but in that article further down, it talked about this interesting option of Resumable Uploads instead. So, I decided to try and implement my own version of it for my file uploads. 

My version is definitely nowhere near the solution used by YouTube, but it’s still an interesting idea of telling an API ‘you’d like to upload something’ (with any additional metadata that is required), the API then responds with a url that you can then use to upload your large file. Such as an image or video. 

Alright, We Out

Against my best judgment I’m probably going to post a few relevant clips to LinkedIn. I’ve never been that social media pilled, prior to trying out advocacy, but as they say:

The squeaky wheel gets the grease. So I guess I’m entering my rat era. 

Disney, please don't sue

Anyway, as we're approaching Nov/Dec hiring usually kinda dries up (well even more than it is). So I’ll likely be spending the time continuing to work on more things and trying out different technologies to keep my mind fresh.

Anyhoo, have a Happy Halloween!