💾 Archived View for tilde.pink › ~slondr › pinephone-first-impressions.gmi captured on 2023-06-14 at 14:29:54. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
I've had my PinePhone for nearly a week now, which means I've had enough screen time to give me solid-enough opinions to write an essay about it.
"Wow, this thing is a lot bigger than it looked in the photo!"
I tried very hard to love Plasma Mobile, as a devout KDE evangelist on the desktop. KDE Connect working out of the box was awesome! Performance was very very bad, but I could deal with that for the time being. Unfortunately, I ran into an absolute showstopping bug: whenever I'd unplug a USB device, the entire UI would just crash and dump me into a tty with no on-screen keyboard, necessitating a reboot. Sometimes this would even happen when unplugging a charging cable.
I had no love for Manjaro, so tried switching to postmarketOS to see if it was a distro-level bug, but it wasn't. So I dumped Plasma Mobile and tried out SXMO.
And...holy shit.
I have a decent amount of disdain for suckless stuff I've tried in the past but switching to SXMO felt like a revelation. This thing was actually fast. Really fast! Apps start up and close lightning quick, moving them around is instantaneous, and the system UI is even more responsive than most system dialogs on my iPhone XR.
I'd seen people on the pinephone mtx chat complaining that distros try to act too much like Android and bog down the phone, but I didn't belive it until I saw it with my own eyes.
But yeah. Turns out the 1.1 GHz Allwinner A64 is absolutely sufficient for real-time interactions and 3 GB of system memory was more than enough, even when I had five apps open at once, including desktop Firefox with several tabs. The PinePhone's GPU, on the other hand, is donkyballs. So using the PinePhone becomes an exercise in trying to offload as *little* to the GPU as possible, in an interesting reversal from how most laptop/desktop application usage goes. If you read ddv's post about running a SiFive with a desktop GPU and how obvious it becomes when a program is doing "proper" GPU rendering vs CPU rendering, think of the PinePhone as the exact opposite of that. If your program is calling system APIs to modify the framebuffer in something resembling direct rendering, it will be as smooth as butter. Your Android will actually look slow in comparison. But as soon as some webview decides it needs OpenGL-based hardware accelerated animations, you will start crying.
There are some things about using the PinePhone that made me downright giddy. Loading up a full-fledged GUI Emacs and porting most of my laptop's .emacs files and having it work right out of the bat was awesome. You can get to a better development environment in 30 minutes on the PinePhone than I managed to cobble together in four years of using Android. As far as it can be used as a portal Linux machine, the PinePhone has everything I want and more.
As far as it can be used as a mobile smart device, I will say there's some parts of SXMO's UX that are legitimately better than iOS. Having a dedicated button to hide/show the on-screen keyboard is something I've been waiting for since we first moved to slate-format phones back in the day. It really does simplify and speed up app interactions across the board. The SXMO default keyboard itself is awesome with caveats; having modifier keys (alt, super, tab, etc) available in the main interface makes working with terminal programs and Emacs just as smooth as more mobile-optimized applications, but by default the keyboard has a Russian and (I think) Urdu language mode which I'm not sure how to disable. The weird language modes and the Reddit shortcut in the system script menu are the two main sore points in an otherwise very professional-feeling UI.
Being able to ssh into the phone is also awesome, and something I'll surely be doing a lot of as I use it over time, but during the initial high-energy setup phase I found myself more likely to plug in a USB keyboard and prop it up instead. I did a decent amount of initial setup using the foot terminal program, but once I got my Emacs configuration loaded, I spent just as much time running eshell in a graphical Emacs frame.
Also, I have had no stability issues at all since switching to SXMO. Apps would randomly crash all the time in Plasma Mobile - I am assuming due to OOM.
And so, I feel like I've hit all the bases for PinePhone nirvana. As someone deeply invested in the GNU/Linux user ecosystem, having a mobile device which fits within that ecosystem is an insanely good feeling compared to the broken and gimped iOS and Android ecosystems.
The only things left for me to do, so, is probably to go further into the smartphone side of this device, where I expect more trouble. There's a few mobile-focused Linux apps which work awesome - the Spot spotify client worked out of the box, as did the Kasts podkast app. Telegram required a dizzying amount of configuration changes, digging into undocumented config files and command-line switches etc just to get working with a proper UI scale. There don't seem to be any good mobile-focused Mastodon or Matrix clients that actually work, and using the web interface for $arbitrary_service on the PinePhone is often less than stellar because browsers are so hyperoptimized for GPU acceleration. See the trend yet?
All that is to say, the PinePhone is definitely the strangest personal device I've purchased. The hardware is perfectly functional and decently well-featured, postmarketOS feels solid as a rock, SXMO is a wonder to work with, and yet it really feels like there is barely any application software written for the PinePhone in mind. It's been over a year since the Beta Edition started shipping, and almost two years since the Community Editions debuted, and yet it still feels like the wild west in terms of the average user's most often day-to-day interactions with the device.
Pine64 said in its initial release that one of the raisons d'etre for the PinePhone in the first place is to "create a market for such a device," so maybe what I'm seeing is downstream of the first three generations of the phone being almost entirely targeted towards hardware and OS hackers to get to what we have right now.
I'm not saying this as a complaint - one of my hopes in purchasing this phone was to have a mobile device I could develop my own applications for without having to pay a lot of money for no good reason (iOS) or deal with j*va APIs (Android). So if anything, the lack of a robust Linux mobile application ecosystem is more motivation than pain point!
Based on my first week of using it, Pine64 really hit it out of the park with their first model. For $200 I have a device that provides an actually novel extension to the totality of my computing environments, which will integrate very well with my existing Unix laptops and servers while also possibly doubling as a usable cell phone (and of course being way more mobile than my very chunky ThinkPad P52). The GPU is obviously the biggest weak spot so far, but I'm learning to navigate using the device without relying on GPU-heavy applications, and that hasn't been difficult so far. It helps that so much of my life was wrapped up in Emacs already ;)