Juan Arzola
ancientbuho.bsky.social
Juan Arzola
@ancientbuho.bsky.social
Apple platforms dev, BG3 modding, my dog, photography etc.

Working on @benkyobox.bsky.social, a simple but powerful memorization app: https://www.autorelease.io/benkyobox/

Live coding: https://www.twitch.tv/ancientbuho
Other: https://linktr.ee/juanarzola
#TitanPom is unhappy that he couldn’t eat any 💔
November 20, 2025 at 1:56 AM
1.5.5 of Benkyo Box is now in beta, lots of #Shortcuts are now available to play with that automate importing cards, studying, etc. Still a few more planned before release, but it's starting to take shape: testflight.apple.com/join/jZXFDA46

#iosdev
November 19, 2025 at 8:43 PM
dear Apple, copy Rocket Sim's "Copy Pasteboard To" menu label
November 19, 2025 at 12:01 AM
Trying to use Snippet Intent to streamline studying from #Shortcuts / Siri (without opening the app).

Unfortunately 2 hurdles:
- wonky transitions when invoking an intent from a button. contentTransition() doesn't seem to help.
- Shortcuts `repeat` action does not continue to the next item.
#iosdev
November 18, 2025 at 2:05 AM
Dispenser (description made me think of these Freestyle soda dispensing machines)
November 17, 2025 at 8:50 PM
I should have worked in this Quick Entry automation before the 17 other ones -- it's nice that you can see how the cards are being parsed from an LLM response before importing them (can't test with the actual model in the simulator, but this recording should illustrate the flow)

#flashcards
November 16, 2025 at 8:15 PM
In Apple #Shortcuts, it's a bit of a pain to create arrays. I'd be nice if any Intent that returns A, if placed directly below another one that also returns A, makes it return [A]. I made a variant that does this explicitly (append input to output), but I'd be better if it was system-wide.
November 14, 2025 at 11:33 PM
Exposed enough intents in #BenkyoBox that now you should be able to study all flashcards in a list/folder from outside the app. A lot left to do still, but also a lot of fun in making the app scriptable 😄

#shortcuts
November 12, 2025 at 8:29 AM
I may have over-parametrized this Create Flashcard intent
November 11, 2025 at 12:59 AM
According to my testing, Views returned by AppIntents don't render any UIKit parts rendered via UIViewControllerRepresentable (with no console output indicating a clear error - they just render a yellow background).

That will complicate implementing Shortcuts / Siri views a bit

#SwiftUI
November 10, 2025 at 7:52 PM
"I wonder why my sorting/grouping logic breaks when I combine model IDs from freshly-fetched #SwiftData objects with cached IDs"

because gotcha, id identity doesn't survive coding
developer.apple.com/documentatio...

but don't worry ids, have real ids in them (`id.id`).

such an intuitive API
November 8, 2025 at 9:05 AM
I got a #StreamDeck + (www.elgato.com/us/en/p/stre...) to nerd out a little with shortcuts, activating scripts, etc. I love it, but inevitably ended up with a lengthy, time consuming feature request for overhauling navigation no the device, which of course negates any productivity gains so far 🫠
November 7, 2025 at 7:52 PM
"Markdown will be enough for this manual", shortly end up with a component system, which Claude helped implement.

the comments are replaced with html at build time (a python script that splits the master .md file into multiple pages), and component variables are replaced, using mustache (`{{ }}`).
October 31, 2025 at 6:20 PM
struggled with TextEditor attributed text selection (which was broken enough to make me reject an in-review build), and a few minutes watching a WWDC video helped developer.apple.com/videos/play/...

also the test data became unintentionally poetic

#SwiftUI
October 4, 2025 at 11:00 PM
Some subtle #LiquidGlass effect to the Gauge and Gauge pointer, here in multiple themes.

Fun fact, rotationEffect doesn't work very well with .glassEffect, presumably because it doesn't change the view's geometry.

Had to animate the path inside the Shape for it to work with glassEffect.

#SwiftUI
September 18, 2025 at 5:03 AM
Ah the thing about automating App Store screenshots with Fastlane is that it also becomes a visual automated test where you find bugs at the last minute (bad dark mode icon here) #iosdev
September 13, 2025 at 8:54 PM
Walking to the SF Swift Language meetup is always a good chance to take some city pics.
September 13, 2025 at 1:52 AM
Thanks to environment refactors it was relatively easy to move all columns of the Split View into separate windows.

Now we have:
- 3-column main library / calendar split view
- 2-column list / detail view (card lists, folders, etc)
- 1-column detail view (cards, annotations)

#BenkyoBox #mac
September 8, 2025 at 2:25 AM
first time using a kallax - it does reduce desk clutter chaos a bit (wish titan could fit in one of the boxes though) #desksetup
September 2, 2025 at 11:44 PM
lots of little details on #BenkyoBox multi select now (Mac and iPad) - available actions animate so that it's clear which ones become available and unavailable (for example, you can only score cards if all selected cards are available to study).

Also, glassy buttons on 26 #iosdev #flashcards
September 2, 2025 at 10:09 PM
and whoops Xcode cloud doesn't have beta 7 so new betas have the crash (when you multi-select cards)
August 31, 2025 at 8:22 PM
SF Pen Show - I really enjoyed this despite the crowds
August 31, 2025 at 5:30 AM
today streamed a little bit of drag-drop implementation of images in cards for macOS - www.twitch.tv/videos/25522...

next time iOS maybe :)

#iosdev
August 28, 2025 at 10:50 PM
Cursor is very nice for code cleanup - currently going through all the codebase with python scripts, removing all unused \@Environment variables (which happens often when extracting components).
August 26, 2025 at 11:30 PM
my workaround: export the icon using IconComposer, remove alpha with an editor, use it as the only layer in icon composer for each variant.

Why not just add it to the asset catalog? That way I can still keep the non-glass icon in the Asset catalog for iOS 18.
August 22, 2025 at 2:33 AM