If you want to experience what your app is really like for the vast majority of real world people, go get a cheap monthly prepaid phone and try it out. Using the modern web on them is a complete nightmare. The screens are physically small and low resolution. The phone I had to use for a year and a half is 800something by 500something, which is literally first generation Android era resolution from over ten years ago. Information density matters. Huge buttons that get in the way are not merely frustrating, they are a design mistake and a demonstration that the designer is out of touch with reality, just as you seem to be here.
Please, get a crappy phone, get a crappy chromebook, make sure your app isn't frustrating to use for people that can't afford new, fast things.
The second is particularly appealing to me. I wonder if there's some sort of open food API I could tap in to. Would also love to build your first idea as well once I start to learn backend development.
Hi, I'm Justin, creator of My Smoothie Stack. I'm a new developer so I'm grateful for any feedback on my source code [0].
Here's my personal recipe [1].
If you take a look at that URL, you'll see it's quite long. I wanted to be able to share recipes, but I don't have any backend knowledge. I had to get creative and store the object representing the recipe in an object encoded in Base64. This presented some character escaping issues, but those were manageable.
I don't expect this project to change the world. I just wanted a way to practice my newfound React skills and share some smoothie recipes. If you give this a try, please share your recipe!
> This presented some character escaping issues, but those were manageable.
In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Depending on your interoperability interests, you can shave a bit of text out of it by shortening the JSON key names `"i"`, `"a"`, `"n"`, and then also `.filter(Boolean)` to nuke those two trailing empty strings
> In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Thanks! I'll check this out.
> Depending on your interoperability interests, you can shave a bit of text out of it by shortening the JSON key names `"i"`, `"a"`, `"n"`, and then also `.filter(Boolean)` to nuke those two trailing empty strings
This is a good idea. I might already be filtering those empty strings but I'll have to check.
> In case you were interested, there's a section devoted to that in RFC 3548: https://datatracker.ietf.org/doc/html/rfc3548#section-4 with the tl;dr of `s/[+]/-/; s/[/]/_/` and then omitting the trailing "=" characters and just padding the incoming b64 since (AFAIK) one can add as many "=" as they'd like and it'll just ignore extra ones
Just to add one thing: in case Justin isn't familiar, "s/original_thing/replacement_thing" is a figure of speech often used in the hacker subculture to mean "replace original_thing with replacement_thing." It comes from some languages and editors like Perl and Vim/vi, where that syntax (and variations) are used for search and replace.