Build stuff; Break stuff; Have fun!

100daystooffload

On Day 14, I improved the error handling and fixed some bugs that bothered me for some time but were not necessary to fix directly. One of them was storing the user session between rebuilds. Every time I rebuilt the app, I needed to make a new login, which is inconvenient when developing. :D

👋


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

On Day 13, I’ve focused on a tagging system. While making entries, the user can now add tags to the entries. These tags are also now part of the search and filter functionality I implemented yesterday.

A screenshot of the search and filter field, where prefilled tags are presented: “bar” and “foo”. The result is an entry with the title “Test 1, Test 2, FooBarrrr”.

Input field for tags, with 2 entries: “foo” and “bar”.

The app is coming to a state where the MVP is nearly done. Next, I will focus a bit more on polishing and also improve the error handling.

👋


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

Today I’ve implemented a basic search to filter the entries. It's just a simple search field on top of the entries list; here you can type in keywords and reduce the list to what you need. Simple as that.

That’s it for today. 👋


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

One more day with the language switcher. Today I worked on the UI and added some logic to it. For example, the app uses the system language as default, and the user can switch between English and German for now.

Screenshot of the language switcher, where you can choose between device language, English, or German.

Furthermore, I made some small improvements on the theme. I liked the red crimson color, but it made it really difficult to read text on a black background with this color. So I switched to a nice lime green. Which is now the new primary color and works well.


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

This day, I focused on the language switcher and added persistence to it. Now the chosen language (for now only programmable) can be persisted between app restarts. I've used the @react-native-async-storage/async-storage for it.

That's it for Day 10. Small incremental changes.

Sorry for being late with this one. :D


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

There is now a nice, simple, and minimal settings screen for the app. I will extend the capabilities here later. For now it is good to have it here and be able to sign out so I can test the auth better.

Settings screen, which shows account information like email and preferences like language and theme. Also the app name and version.

I'm really happy with how this all turned out. The only things that cost me the most time are the colors. Finding the right ones that work well together.


67 of #100DaysToOffload
#log #AdventOfProgress
_Thoughts? Discuss...

Today is a creative one. I like working with Jippity on logos, so I already made 2 logos in the past with this process.

For a logo, I mostly have a clear vision of how it should look in the end. So I can write clear prompts for what I need and tell Jippity what it needs to do.

For example, for my Pelletyze app, I had the idea of merging wood pellets with a bar chart. The logo in my head was so simple that Jippity and I could do it directly in SVG. And after some back and forth, the current logo on the app was born, and I’m happy whenever I see it.

For the new one, I tried the same approach, but the logo was too complex to make it directly. So I told Jippity what I imagined, and we worked on a basic image first. I also did some research and provided 2 examples of how some Specific parts of the logo should look like. Providing images of something done or self-drawn seems to help it a lot. We ended up with an image of the logo I wanted.

Now Jippity needed to transform this bitmap into a vector, which, I thought, would be a piece of cake for it. 🤷 After some back-and-forth, I told it that we are stuck and the results it produced are garbage. We needed a new approach. Then it told me that it is incapable of tracing the bitmap into a vector. Fine for me. So I loaded the bitmap into Inkscape, made some adjustments, and there it was: the SVG version of my logo I'd imagined.

I’m not the best with graphic tools anymore. Some years ago I was, with GIMP on Linux, but these times are over. And I don’t have the patience anymore for this kind of work. 😅

With the result, I’m happy, and I’m excited to integrate it into all the places. When this is done, I will present an image.


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

Now that I have the UI for simple CRUD operations, I can clean up the code a bit.

  • Add shared stylings.
  • Unify the code between screens.
  • Add a dark mode (too much for now, but I know I will need it later).
  • Proper spacing and typography

This lays a good foundation I can build upon.

It makes me happy, this feeling of having a base on which I can iterate. Make small changes and directly see improvements. I hope I can keep this feeling up while improving the app. Small changes, small Features. 🤷

Another nice thing is when the UI goes from basic to polished basic. It is not much but improves the view noticeably.


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

The focus today was to add UI for adding, editing, and deleting entries. Which is now working but looks awful, but for an MVP it is enough. :D

While working on it, I discovered some flaws in how I handle entries. When I had this app in mind, I always thought that this should be possible from one form input. But while thinking longer on it, this would be possible but with a lot of effort. So this could be a feature for later. For now I want to focus on the basics. Still, I don't want the user to fill out a lot of form inputs.

With this day, I have some input fields that are simple but are doing the job. It is now possible to make simple CRUD operations within the app.

:)


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

I noticed that I forgot to add ESLint, Prettier, and proper typechecking on project init.

So I've added it and also run into an issue in my Neovim config. Where I was unable to use some LSP methods. The solution was that I tried to use a tool that was not installed, and after the typescript-tools migration for Neovim v0.11, this tool initialization was failing silently and causing some problems. Strange that this is only recently an issue. But ok, I found a fix, and now my Neovim is back working again with TypeScript. :)

After adding ESLint, Prettier, and proper typechecking with my now working Neovim, I resolved some issues, and the project is now “clean.”


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