Mellonn Speak Web is made in Angular

Photo Credit: Joakim Rosenfeldt

Joakim Rosenfeldt Pedersen

Updated March 25, 2022

The final feature update

I'm coming to a point where all the features I wanted is already built, with two app updates this week. Both 1.2.2 and 1.2.3 coming with big features, adding better usability and an easier workflow. It wasn't without problems developing these updates, but that's what you're here for, aren't it?

The week's progress

As mentioned, I have released two new updates this week, curtesy of Apple actually not rejecting my updates, this process is much faster now. These two updates implements the two features I talked about last week, the ability to share a recording and adding labels to participants. Besides from the work on the app itself, I have also reached out to different student organisations in Denmark. At last I will also announce that I'm beginning work on the web-version of Speak. Let's dive a little deeper...

The new updates

As the title says, these two updates will be the last feature updates for some time. This doesn't mean I'm stopping development on Speak, but I will be stopping working on new features for some time. If/when bugs and other problems surface, I will be doing my absolute best to fix them as fast as I can.

As mentioned in last week's blog post, the sharing feature was pretty much done, I just needed to fix a few problems before releasing that update. But this update went out Tuesday this week, the same time I began working on making the labels. These labels, I must say, wasn't without problems. All the things I expected to cause problems, went smooth as butter, while the things I feel like I've done a thousand times, caused all the problems in the world.

How I'm doing this, is by storing two lists (arrays) with the DataStore element that holds info about the Recording. The first list holds info about who's the interviewer and who's the interviewee, the interviewer(s) will get the green chat bubbles. The other list holds info the labels given to the participants, with the elements position in the list of course corresponding to the number of participant. If these lists are empty (when it's opened the first time), the app will prompt the user to provide labels to the participants. On the page where you can provide the labels, there's also two buttons per participants, one says "Play" and the other "Shuffle". The play button will play five seconds of the first time the participant speaks, so the user can hear who they're giving a label. The shuffle button will choose a random clip of the participant and play it. It will only choose clips that are longer than five seconds, and it will only play the first five seconds of those clips.

Now the problems I ran into, was when dealing with the page management and routing. This was actually quite an advanced problem, for my brain to handle... When opening a transcription the first time, you will be pushed to the page where you can give labels. When done with the labels, you will be pushed to the page where you can see the transcription, but that means that when you go back, you will go back to the label page. In this case you should go back to the recordings page/home page. This means that I had to close the label page and then open the transcription page, this wasn't an easy problem to fix. Especially because I ran into some problems with how Flutter works. When closing a page it calls a "dispose" function, where you can reset some variables, but this wasn't called all the time when doing this. That meant, that when I opened the transcription page, some values were already assigned, and some wasn't. This caused about 12-14 hours of problem solving, but I got there in the end.

Reaching out to organisations

As I (also) mentioned last week, I need to get some connections going, to be able to sell my product. I'm beginning now, I've reached out to seven different places, mostly student organisations in both Aarhus and Aalborg. I'm crossing my fingers that they will be willing to cooperate with getting my product out! I will be continuing to reach out to different places, but I'm looking forward to them (hopefully) getting back to me. Of course I would still love to hear from you, if you could help me or knows someone who could help me.

Starting work on the web app

Back in the end of January I teased, that I was already beginning to think about version 2.0 of Mellonn Speak (The start of version 2.0 — Mellonn). Well in that post I said that the version 2.0 will be a tablet version of Speak. I've pulled back on that decision, but I do have a good reason for this! I've always been very much against making everything an app, why make it an app when you can get the same functionality from a PWA? A PWA is a "Progressive Web App", which is basically a website that can take advantage of the device's hardware, in a way that normal websites can't. The advantages that a PWA has, is the fact that the users don't have to install anything on their devices (tablets or computers). This does mean that I have to program a new website from the bottom, BUT I've always wanted to do that, I just haven't had any idea of what to make!

To make this PWA I have chosen to use Angular, this is probably familiar if you have ever heard about website development. But I gave myself the choice between Angular, React JS and Vue.js, the choice for me was mostly between Angular and React. I have had a very small bit of experience with React. But what made me choose Angular, was the fact that it's extremely good at PWAs and it's used by most big enterprises. I could definitely get the same quality product from all three frameworks, but being able to say that I have experience in Angular will give me the better CV.

As of right now, I've just started learning Angular, and I'm much more focused on getting out the product I have ready. Which means that in the coming weeks I probably be focusing too much on developing the PWA. It will be a side project, but I'm absolutely sure that I will be loving every single second of doing it.

What's next?

As I just said, I will be focusing on getting my product out in Denmark, but while I'm waiting for people to get back at me, I will be working on developing the PWA. You can be absolutely sure, that I will come with updates on the website, throughout the process of developing it. I’m also thinking, in the far future when I have created the Speak website, I will also rebuild this website from the bottom, to make it more… Me. With my focus the coming weeks being on business relations, the blog posts probably won't be the longest stories. I will of course come with updates every friday, as I've done till now.

See you again next week!

Let's just shortly talk about what an amazing Formula 1 race we got sunday! K-Mag doing his thing, and showing why he's back in F1, let's hope they can repeat that this weekend in Saudi Arabia. This time I'm also hoping that Mick Schumacher can do something, to get into the points too. 🤞 for HAAS staying 3rd in the championship!

I'm looking forward to next week, the beginning of a new month, which means that this is the second full month of blog posts! To be totally honest, I didn't think this would last more than two weeks. But here's to another month! Have a good weekend, and I will see you in april 😉