1. BergBuilds
  2. Devlog
  3. Sugar, spinach and an app that thought it was yesterday

Sugar, spinach and an app that thought it was yesterday

Four small stories from the workshop this week: an animation that took three tries, data that looked wrong, a clock that stood still, and music that wasn't as free as it looked.

23 October 2026 · BergBuilds

Reppr: three tries at swapping two exercises

In Reppr you can swap exercises around in a workout, and the two cards should slide past each other. Try one used React's built-in layout animation. It does nothing at all on Android's new architecture. Try two measured each card's height and moved them by hand. Better, but frame by frame there was one frame at the end where the old order flashed back. Try three rebuilds the cards in place, and the whole swap now takes about a third of a second, with no flash.

The same day the exercise library grew by 39, from the Pallof press to shrugs, each with three short form cues.

Take this with you: record the screen and step through it frame by frame. Something that looks fine at full speed can hide a bug you only see in slow motion.

Nibblr: 105 grams of sugar in 100 grams of sugar

Nibblr ships with over 18,000 foods. A check of every row, just looking for things that can't be true, found one: table sugar with 105 grams of sugar per 100 grams. It's not a typo. The British database counts sugar as what it becomes once it's digested and has picked up a little water. Values are now capped at 100.

The app also got a line in its history that says what you're running low on this week, with three foods to try. Spinach was the obvious pick for iron. The test said no: 9% of your daily iron per 100 grams. Six picks failed the rule of at least 15% in one normal portion and were swapped for foods like lentils, chickpeas and quinoa.

Take this with you: when data is missing, "unknown" and "zero" are not the same thing. And what everybody knows is worth checking against the numbers.

Arcmode: the app that thought it was still yesterday

Arcmode is a habit app. After a night in the background it still showed yesterday as "today", so the morning's habits landed on the wrong date and your streak looked broken. The fix was ten lines: check the date again when the app comes to the front, and set a small timer for midnight.

The same week, an accessibility check: about sixty buttons, and zero of them had a label for the screen reader. A blind user would hear "button, button, button". And the faint grey used for small text scored 3.6 in contrast against black, where the rule of thumb is 4.5. It's a little lighter now, about 5.

Take this with you: anything that depends on "now" needs something that wakes it up when "now" changes. And try your app with the screen reader on, once.

YouTube: a claim is not a strike

Out of 12 Shorts, four had a copyright claim, and none of them was a strike. A claim means any ad money from the video goes to the music's owner. But one Short was blocked worldwide over a track that was labelled free. The artist had registered their music with YouTube under another name. YouTube Studio's "Erase song" removed only the music and kept the voice, and the video played again. Three of six "safe" tracks were never safe.

Take this with you: look the artist up on YouTube before you use a track. If they have an auto-generated "Topic" channel, the music is most likely registered.

More posts and videos in the devlog →