A Day In Dev Life: Nightshift, Snooze Durations and a New Float Note Release

A Day In Dev Life: Nightshift, Snooze Durations and a New Float Note Release


8 min read

After wrapping up yesterdays work and turning on a build I suddenly realized that I had not implemented the paywall check properly. This should only happen for people who are not yet premium, however the fix did this for everyone.

Coding Nightshift

So I quickly turned off the build at 11:30, fixed it and turned on a new build. Then I went to test some more things and found out there were still some other bugs in it. I ended up going to bed at 4. There are still some things I want to finish before this release. The goal is to have a build turned on by the end of this day. Testing tomorrow and then hopefully releasing ASAP. I continue to find it difficult to find a good balance between operations, marketing and development. Fun, but difficult.

Selecting All Todos

We'll start by adding a select all button in the new search functionality. Shouldn't take that much time. We'll use the same button we use in Skuddy to load more tasks.

Had these built together pretty quickly. We pass a nullable callback to the search widget. If it is not present we hide the button. If it is present we show it with the callback as a function behind the button. Through the callback the todos are sent up and activated.

Works like a charm. I wanted to get on to the next feature but it started raining heavily. I hid under a big umbrella in my favorite spot, but to no avail. Even through the umbrella my laptop got wet so I went home. Summer in the Netherlands, always fun.

Fixing Bugs with Labels

Next up, labels. Labels is such a handy feature that I always overlook. Labels can be used almost everywhere, so when there is a new feature, we have to think about whether this feature can be integrated with labels. Something I tend to forget.

It remains bothersome that the search widget is currently so poorly constructed. I said this yesterday, way too many boolean checks and duplicated code. The danger with adding the tags right now is that I put too much logic in the build method. You kinda want to avoid to manipulate lists in the build method, this is not scalable. With too much data, you're going to ruin the UI with this, especially on slow phones. But for now, it's fine. This widget is high on the Tech Debt list. As soon as I have more time (๐Ÿ˜‚๐Ÿ˜‚) it will be up.

Global Search

Another thing I noticed yesterday during my night shift ๐Ÿ˜‚. Is that the global search is not using the new cards yet. I hope this one goes fast as well, small suspicion that it will. But you never know.

Nice, this went fastest so far. That's the advantage when a widget does get set up properly. For the tickets I was aware beforehand not to use booleans to solve the problems. Rather I used an enum to determine in advance what kind of ticket it is. All I had to do now was change the enum from medium to small. Et voila. On to the next one.

Back & Forth

Another small improvement I came up with yesterday is adding an extra back button. I have been thinking about this for quite some time and made improvements. So the go back gesture is blocked the moment you are in a space, the back button idem ditto but gets a different functionality and an extra back button has been added as a leading icon next to the title.

But still, last night I thought there is one little thing that could be improved in terms of UX. An extra text button under the todo list directly near your thumb so you don't have to go all the way up. This one won't take too long either I guess.

Hmm... I don't like it. It looks good, but it won't look good in most cases with more todo's on the screen. I think... I'm not sure. Also if something just looks good and I'm not like wow this is really nice, that's probably a sign that it's not a good idea. In most cases it looks pretty random. Oh well, at least we tried. On to the next one.

Two more to go before I make a release build.

Aligning Log Times

One of the cool features for tracking your time is that it can match your logs to time blocks of your choice and round up the duration of your time. But since I introduced the option to disable time logging for new todo's, it has a bug. I think it gets confused with time durations of 0 seconds and then messes things up. To fix this I think I should probably just ignore the short time duration in the algorithm. Hopefully a quick solution. This is our starting point.

Ah what turns out, it was never the 0s duration. I already ignored those. It broke down when I implemented the automatic copy mechanism. For this, I moved the rounding and alignment logic to extension methods so I could reuse them elsewhere. There was a DateTime outside the loop that should always be updated after each task, which I forgot to do. I know, I know, having unit tests for this would ensure that this never got into production. Bad programmer, me. But you know what's so cool about this copy function? Especially for programmers, when you check your task, it will automatically copy the task with the completed duration and times. Ideal for commit messages. You just have to paste it in after you check it off. I love it ๐Ÿ˜‚.

Snooze Durations

For the last feature I want to add duration to snooze, because I noticed that while using Skuddy I sometimes want to ignore certain tasks up to a certain point and one day is usually not enough. We already have most of the logic from other functions. Getting started!

Okay, things got a little out of hand here. I managed to implement snooze time pretty quickly. It looks very nice and you can also remove it easily and there is a new indicator in the task itself that you can also press to edit it.

I had a lot of this logic already done, so it didn't take that long. So then I thought, well, since I still have some time left, maybe I can spice it up. When you open Skuddy, there are three categories. You have your unfinished tasks, your snoozed tasks and your completed tasks. I thought, since we're pimping snooze anyway, why not also allow snoozes from your todo list. That's something I've been wanting to implement for a while, too. But if I do that, I also have to make the categories on the regular todo page. That's something I tried quickly a while ago, but it didn't go well and I decided to put it on backlog. Well ladies and gentlemen I did manage it now and I also added some nice new (performing!) animations to the tasks. For tasks are now moved from not completed to completed and sometimes to snooze.

Looks really good if you ask me. I forget to mention one last thing that is also very cool. If you long press a checkbox, the snooze sheet appears. Nice UX!!! ๐Ÿ˜๐Ÿค™ A vibrate function has also been added. I love these little improvements.

New Release Incoming

I am so happy with this little release we put together in three days. Many nice improvements that I came across during my daily work. Hopefully all this will bring some new users into the app who can also provide me with feedback. A lot of these decisions are now based on my own experience. That time will come, I'm sure.

I think now we are really ready to start testing and planning the release. I'm so excited, especially for the Paywall upgrade I did yesterday. After this release, it will be more business and marketing again. It was a good day. I'm going to bed now, it's 11:30 pm and I have to get up at 4:30 am. Because it's Tuesday. On Tuesdays I am in another city, Eindhoven. A city I've lived in for the past two years, but moved away since about a month. Lots to do tomorrow, let's hope testing goes well and we can plan a release.

Thank you for reading ๐Ÿ™.


๐Ÿ‘‹ About me: I am an independent app developer with ADHD and the creator of Float Note. Float Note is an ADHD power tool that helps busy minds live an organized and stress-free life. Features include an AI planning tool, priority poker and a unique mechanism to quickly capture and organize the many thoughts and ideas we have on a daily basis.

๐ŸŽซ It would mean the world to me if you gave it a try and let me know what you think through one of my socials. You can try it for free for 7 days and when the time comes, use code "DEVLIFEOFBRIAN" to get over 70% off your subscription for life.

๐Ÿ“ฒ Download it here or click the link in my bio (Android/iOS/web) โžก๏ธ floatnote.com/download

Stay focused ๐Ÿค™

Did you find this article valuable?

Support Dev Life of Brian by becoming a sponsor. Any amount is appreciated!