Devblog 10: A shift of Focus

It's been a while since I create a new article for this devblog. In the last devlog article that I posted at the end of March, I talked about the focus of the project.

This new focus was an improvement, but it still wasn't enough. I was still not getting any actual work done for this project. Therefore I've made yet another, drastic decision.

Focus on building the app

Last time I said I was still going to use Etos (my state management package) so I can develop it alongside this project.

This turned out to be tougher than I thought. Whenever I ran into a problem to solve I got sidetracked from the actual project and I would be spending time thinking about that particular issue, thus not making any progress.

For this reason, I decided a few weeks ago, that I would drop the 'learning' part from the project. This means I will focus on the development of the app.

I will achieve this by using things I already have experience with, instead of using new things.

Bye Etos, Hello Bloc

I've decided to replace Etos with (flutter_)bloc. I've worked with bloc professionally since the start of 2021. That same year I also migrated my very first Flutter app (Scrap Bandit) to bloc.

Because I've experience with it, it takes away the uncertainties I have with Etos, thus speeding up development.

Firebase

In the previous article, I stated that I would be using Firebase as the backend for my application. This is still the plan, for similar reasons as mentioned above.

I've released apps using Firebase, I have very good experiences with it thus why not use it again?

The project's progress

It's been about two or three weeks since I decided to fully focus on building the app, and I can say it already paid off.

In these weeks I've replaced Etos with Bloc and was able to add new features. Because you probably have no idea how far I was, let's take this moment to just show the current state of the application:

So what do you see in the video?

Drafts

I started with the functionality for creating drafts. Drafts are Scavenger Hunts that are still being worked on.

The idea is that, while a Scavenger Hunt is in draft, the user is free to make any changes to it as pleased. Once the user is satisfied and has tested the Scavenger Hunt, they can publish it.

In the video, you see an overview of Drafts, which can be edited by clicking on the FAB (Floating Action Button) to add a new draft or by clicking on one of the existing ones to edit them.

On the draft detail page you can add change the name and description of the Scavenger Hunt. At the bottom, you can add locations, or edit them when you already have one or more locations.

If you're editing an existing Scavenger Hunt, you can also delete it here.

Locations

A location is a point in the Scavenger Hunt that the players should try to find. When they get close enough they will unlock an assignment which will just be answering a question at first.

When you want to add or edit a location you can click the plus-button on the bottom of the detail page, or click on an existing location.

This will open a bottom sheet that allows you to set a name and a range (for now).

When you are editing a location, you will also get a delete-button.

Memory Storage

Because it has been a while since I used Firebase I decided to first implement my repositories with memory storage. It should be relatively easy to replace them with Firebase soon.

Theming

I have no idea if the current style will be the final one, but it looks nicer than the default one, so I'll go with it for now.

What's next?

I started keeping track of the features again in Trello. This helped me in my previous projects and it seems to work for this one as well.

The next goal is adding geolocation and Google maps to make it possible to set the position for the locations. I want to show a small map with the radius of that location.

I'm planning to make smaller iterations again on this devblog. I think that should be possible since I'm making more progress now.

Until the next!