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 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.
@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.
skyjake's personal Mastodon instance