The Android port of Lagrange has progressed to a point where it's now running on a real device.
I will state this upfront as a disclaimer: I'm not a big fan of Android OS, its dev tools and programming language(s), Google, or any of the big players in the Android ecosystem. This is probably why it has taken nine months to get this up and running, even though the code is (thanks to SDL) pretty much the same. However, Android is the leading mobile phone OS in the world, so supporting it is rather important.
The version I have now is still pretty far from being releasable. While it runs nice and smooth on this decently-specced 2017 phone, it lacks any real integration with the operating system, crashes if you look at it wrong, and the screen goes partially blank if you rotate the device.
Basically this is what is working:
That's already a whole lot and makes for a useful Gemini client as-is.
The plan is to fix the most glaring issues, like incorporating the device Back button in the UI design and fixing the stability and display problems, and then make an "Alpha 1" release. I won't commit to any particular date on this with the holidays coming up. Also, when it comes to the mobile ports, the Android one is definitely a lower priority for now. I want to really polish the iOS port before the Android one goes to beta.
With all that said, it's satisfying to finally have the app running (or stumbling) on all the major desktop and mobile operating systems! This has been the end goal. Writing the app in C — a universally available programming language — and using cross-platform libraries as the foundation has made it feasible to adapt the app for a wide range of platforms and devices.
But of course, the work is never finished. Each platform and environment has unique features that a well-designed app should take advantage of. I'm thinking particularly of OS-provided accessibility features. While I don't yet have a plan for what shape Lagrange version 2.0 could take, I think an important piece of the puzzle is the ability to use system-level UI frameworks when it provides substantial benefits, like on iOS for accessibility.
🏷 Lagrange, Android