I would love to see Lagrange running on all kinds of devices. Using C and SDL makes this achievable — exhibit A: the app on 2017 iPad Pro.

The more mobile things get, the more one needs to adapt the UI and behavior. You get a lot of stuff for free with native UI components, but with custom UI and SDL there's none of that.

Just getting the code to run is the easy part, and I'm happy to report that it runs smoothly.

You can get away with a desktop-like UI on a tablet, but not on a phone. There's a mountain of work to adapt the UI for mobile. This is not a top priority at the moment, but I'm curious to see how far I can get while remaining (mostly) platform-agnostic!

In the short term, I'm hoping to use this to improve touch event handling since that's a thing on laptops as well.

@jk I'll be pleased to test on my Mobian PineTab if that'll help.

@edavies Sure! Once I get some touch event processing in place we can see how the PineTab performs.

@edavies Would be interesting to hear how v1.2.1 works on the PineTab! It can now handle SDL touch events if they are being sent.

@jk Excellent, I'll give it a try this evening (UK time).

@jk Seems to work fine though with the high-speed scrolling as seen on the Pi. Changing documentwidget.c as suggested in that issue fixes that. Note of this added to Github [¹].

It's nice to see what feels like a well-engineered program coming along nicely like this.


@edavies Great! Sounds like it should work well after I fix the scroll event processing.

@jk that's so cool. Seems like SDL was a good choice. I've never heard of it for GUIs before, but when I first tried Lagrange, I was like wow, this feels unique and with a great UI like an Electron app, but it's so fast and responsive. And look at this, how portable it is! Nice.

@makeworld Yeah SDL is great library, and thanks to Gemini being limited in scope it's feasible to implement a fully custom UI from scratch.

Of course there are drawbacks, too... Things like accessibility and localization also have to be done from scratch. Mobile OS's have tons of custom APIs for various features, and a well-behaving app should use them as intended. SDL provides some basic things, but it's still quite a hurdle.

Sign in to participate in the conversation

skyjake's personal Mastodon instance