Hello from iOS

I'm typing this post on my phone and will publish it via Lagrange on iOS. There is definitely a certain charm in being able to draft a longer post without being tied to a desk or lugging around a laptop!

Of course, I could have written this in Notes and ssh'd on my server to post it, but that would be a terrible UX on mobile. (Or maybe some Shortcuts contraption? Alas, I'm mentally incompatible with that app.)

I've made decent progress with the iOS app over the past week. It was a great idea to scrap the previous kludge of trying to automatically adapt the desktop widgets by reorganizing them into a different layout. It was a nightmare to work with, and the indirection got very cumbersome to reason about. In many cases the mobile UI diverges quite a bit from the desktop, and also requires mobile-specific fine-tuning.

My new approach is essentially a higher-level declarative API where the UI controls are specified as text and the system constructs widgets using a consistent style. The mobile dialogs are all based on vertically stacked forms, with an option for dynamically switching to a horizontal main/detail view. I quickly reached parity with the old UI and have now surpassed it in many places, although refinements are in order everywhere.

I'm consciously postponing the dive into visual polishing where I'll focus on fonts, white space, and rounded corners (the mobile style _du jour_). The UI should first be fully functional before focusing on superficial details.

Generally speaking, the iOS version is reaching a place where most things are working at least on some level. There are many bugs, and certainly things are not optimized enough, but one can start to see it forming a coherent whole. This simple SDL-based UI toolkit I created last spring is proving to stretch quite far! Of course, I've also invested a lot of time into it...

This endeavor to make a mobile version ultimately scratches my own itch in how I want to partake in Geminispace. The phone is my constant digital companion, so for me it makes sense to invest time into mobile, and Gemtext is well-suited to mobile devices as well. I'm certainly enjoying the challenge in building UIs from first principles, especially when the desktop and mobile versions are fundamentally different in some key aspects. Both versions are important, though. I do spend plenty of time on a laptop or a PC, so it's not like I plan to exclusively use Lagrange on a phone.

The build I'm running right now is a private TestFlight build. As usual, while typing this I've discovered a number of issues that should be addressed before the next public release... All in all, I'm quite happy with how this little sprint has turned out. The mobile version should be all set for a series of small fixes and refinements after I switch focus to the desktop again.

📅 2021-09-15

🏷 Lagrange, Apple

CC-BY-SA 4.0