Official Blog of the Adventuron Text Adventure Creation System

Wednesday, 11 July 2018

The battle for vertical space on Android

I thought I'd do a small blog post on the problems I've been having with Android, for about a year now. This post relates to just trying to get a serviceabile keyboard-based UI going on Android, and has nothing to do with the gesture / touch optimized UI that is scheduled for release later in the year.

The first problem is that Android's soft navigation buttons are impossible to remove (without hacking your phone) when the soft keyboard appears. This eats up valuable screen real estate.

The second problem (in Android OS) is that when the keyboard is visible (together with the soft nav buttons), so is the status bar at the top of the phone. This has the unfortunate effect of overwriting some portion of the location header text. It also takes you out of the immersion in a pixel typographic experience (if that is your game). Pixel fonts look great, but only when not mixed and matched with modern antialiased typography. I guess Adventuron is an edge case!

The third problem is that the GBoard software keyboard (the standard Google software keyboard that ships with the majority of phones), is antisocial when it comes to vertical space. I can set an INPUT widget to require noautocomplete, and the old Google Keyboard would honour this request. The new Google keyboard still takes vertical space but doesn't show autocompetions. It looks hideous. This can be rectified with installing a keyboard - such as simple keyboard, but it's too much to ask a casual player to change their system keyboard. I'm very disappointed with Google's decision to not give app developers the option to use that vertical space for themselves. Maybe it's a security feature - to stop web apps from pretending to be the autocomplete bar? Who knows? ... but it makes using Adventuron on Android an awful experience.

The fourth problem, and one that I have been pushing to have fixed in Chrome for over a year now is the full screen immersive mode is simply broken in that the bottom area of the view area is obfuscated by the visible keyboard. You can't scroll down and see the invisible area. It's just plan broken.... but there is some hope that this *may* be fixed in Chrome 69. Let's see.

... for sure problem #1 and problem #2 are not getting solved any time soon. In my view, these are poor design decisions at an OS level, and the only workable solution is a bespoke written software keyboard as a bottom clipped widget... So that's ultimately what I'll have to do.

Assuming that problem #4 is fixed, and assuning that the player installs a keyboard that respects the NOAUTOCOMPLETE attribute, then this is the best that will be possible on Android (until I build my own integrated keyboard):

In terms of iOS, well, no problems. well done Apple.

Never say never, it's possible that GBoard is fixed, the Chrome fullscreen issue is fixed, that new versions of Android do away with the status bar showing when the keyboard is up, and Android allows the sofware nav buttons to disappear when the keyboard is up. Or maybe Google just builds in per-app keyboard preferences, that lets users select a more optimal keyboard -only for text adventures. But it's a lot of ifs. Right now, and at least a year into the horizon, Adventuron will be sub-optimal on Android, at least, without a hack of the highest order (building my own software keyboard).

The good news is that the screens are getting longer, and that it actually does feel quite good to type on a mobile keyboard. In time, all of this will be resolved, let's hope.


Post a Comment