Build stuff; Break stuff; Have fun!

barfooz.xyz

Summary Day! πŸ™‚ Overall, I’m happy with how all this went. After 24 days, I have more than just an MVP! It is working nicely and makes everything I had in mind when I started.

The whole process went really smoothly. The last time I worked with React Native was ~10 years ago. At that time, I played around with an Android app, which I still want to build someday. :)

This time, I started with ChatGPT as a planning buddy. I’ve written down everything I wanted to achieve in this limited timespan. β€œWe” then elaborated on the plan, how this could be done. Tweaked numerous details and laid down the foundation of the app. To have this kind of red path was more than helpful. Each day you could start working on something by only looking at the plan. (For side projects I usually have a plan, but it’s loose and grows while working on things.) Sure, there were days when the work was too much for doing it on the side. This has cost me some sleeping hours I had needed at this time. For the next project, I now know better and need to tweak this so each day can be done in around 1-2 hours + writing a blog post.

So, I started the project with half the experience I should have needed for it. And Jippity was a good rubber duck πŸ₯ here. The time you aimlessly search for the issue, WHY something is not working the way it should be, was reduced drastically with Jippity.

The first few days were a little bit of a struggle, getting things to a point where it worked flawlessly. Finding the flow I was comfortable with. But as the base was standing, working daily on a new feature was a breeze and a lot of fun.

I’ve enjoyed the time working in this style. But doing it long-term is not really sustainable, at least for me. Without kids, a wife, and the house, maybe then it would look different. πŸ˜… For me personally, it was challenging to do both, making progress and documenting/writing about it.

I’m excited and look forward to the next #AdventOfProgress. Maybe I can do a #SpringOfProgress as the next one. πŸ€”

πŸ‘‹


82 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

Testing Day! :)

I've installed the app on a real device and tested everything. Most of the bugs I've found were keyboard related. If I had enabled the keyboard on the simulator, maybe there would have been fewer bugs. Or, should I call them bugs? When the keyboard is enabled, I just can see some inputs or buttons. I'm so happy that I did not find any critical bugs.

I've written all the bugs down and will fix them in the coming days. There were also some feature ideas I have written down. Possibly I will implement them as well in the coming days.

One feature I already implemented will be hidden behind a feature flag. Using the username as a login name is perhaps not the best idea, or maybe the implementation. Because on sign-up or username change, you can try multiple usernames and see which ones are already used. Which I think is a security risk. So this feature needs to be checked again on the drawing board.

πŸ‘‹


81 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

Aaaand the last MVP feature is implemented. Today I've added a photo upload for each entry. The user can add 5 images to each entry and can choose one main photo, which is then displayed on the entry list. And the user can remove the images as well.

This gives the app a nice personal touch. I hope that I don't reach any limits soon with this in Supabase. I never used the file storage before. It's a bit exciting; there are a lot of first times in this project. πŸ˜€

πŸ‘‹


80 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

For this day, I wanted to implement swipe gestures to edit or delete a list entry. More complex than initially thought but doable within this day.

There were 3 packages to install: a gesture handle, an animation lib, and expo-haptics. After creating a swipeable row, I needed to implement the actions for edit and delete some hooks and was mostly done. After writing this all down, it sounds less complex than it felt when I implemented it. πŸ˜…

While testing the app, I saw a caching bug after switching users. User2 saw the data of User1 after a sign-out and new sign-in because the cache was not cleared on user change.

πŸ‘‹


79 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

I thought the task for this day would be easier. But using a username for sign-in is quite challenging to implement with Supabase. :/

Now I have a new table for profiles, besides the auth table Supabase provides. Because Supabase Auth can't handle sign-in with a username, I now also have an edge function running. Which I never used before. It works, so I don't complain. :)

Maybe this is something you normally don't need for an MVP, but I was tired of typing an email for the sign-in. So, for me, it needs to be in the MVP.

When I was done, I staged my changes, and I noticed that I accidentally committed my .env file. So I used git-filter-repo to remove the env file from git history. What I did not know was it removed all my staged changes without a warning. 😱 That was a shock. A big one. After some minutes walking through the house, I calmed down and sat back on the chair. I was able to rescue around 85% of the files. The rest I could reproduce somehow.

WHAT an evening! I'm back on track and happy the accident was not that bad.

πŸ‘‹


78 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

On Day 19, I made some updates so that the app feels more like an app inside the device.

It got a proper app icon and a splash screen that work in light and dark mode. Currently I focus more on a good integration with iOS; Android is coming later.

I also added a date picker. Before it was basic string insertion into the date field, which is not a good UX.

πŸ‘‹


77 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

Even if I don't post daily, I'm still making progress. I just focus more on the progress part and not on the documenting one. 😎It’s crazy how all this is coming together while I work full-time and manage family and renovating the basement. 🀯

On Day 18, the two main points on this day were a new home screen, which shows some nice little statistics, and the move to tanstack/query for a shared data layer. (Which I should have used directly from the start.)

The home screen is now showing a clean grid with 5 tiles that show summaries and top entries. The top entry tiles are clickable/tappable and trigger a search in the entry list, which feels good and in the correct place. The summary tiles are using a simple SVG chart, a bar chart to be precise.

πŸ‘‹


76 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

I'm at a point where I can focus more on the UI. And this will be time-consuming. This is a lot of trying out and seeing what sticks. It's a lot of fun, but I need to limit myself and not overdo it here. πŸ˜…

So, today I got a lot of stuff done. Refined the spacing and tried to make it even on all screens. Improved the styling of the forms and buttons. And cleaned up the styling itself, so it looks a bit more minimal.

I want to show more, but I also would like to keep it a secret what app and style I'm working on. So the posts get a bit shorter. I just want to describe what I have achieved so far.

πŸ‘‹


75 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

While working on and improving the Add/Edit Forms, I noticed that I want the same tag handling in the input form, for another list input.

Said and done. Extracting the tag input into a shared component and adjusting it for the name list input. 🧠

πŸ‘‹


74 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

I'm falling a bit behind. Started another freelance project, so things are a bit slower now.

Most of the MVP is done, and I'm starting to polish some things. For Day 15, there was a small refactor of the Add/Edit forms to make them more robust and improve the UX.

One of the notable things here is the introduction of react-hook-form and zod. Which makes the most sense in combination with Supabase. In addition, I moved all form fields into shared components.

All the changes will give me a good feeling that this app can grow after the MVP. :)

πŸ‘‹


73 of #100DaysToOffload
#log #AdventOfProgress
Thoughts? Discuss...

Enter your email to subscribe to updates.