Now I’m designing a single-view mobile application for iOS. The view contains a text area at the top, and an array of buttons for users to input characters. I’m deciding the layout of the buttons so that the following conditions are satisfied:
Each button refers to a sequence of characters (can be restricted to ASCII for simplicity). When the user presses the button, the sequence is appended to the text area, just like a keyboard.
The button array must contain buttons representing all English alphabets (A-z, a-z), digits (0-9), and a few symbols (e.g. dollar sign, comma, brackets etc), respectively, except that there could be a “Shift” button for turning alphabet buttons to uppercase. The uppercase alphabets are rarely used.
Some buttons refer to more than one character (hence I said “sequence”). For example, there might be a button labelled “apple”. When the app continues to be developed, the number of such kind of buttons will increase.
I have some options in mind, but none of them appears to be good enough:
Just use the system keyboard and let users type normally. So when users want to input “apple” then just ask them to press 5 keys. However, since users will probably enter a sequence of mixed character types (a short string containing both alphabets, digits and symbols), this design will be quite inconvenient.
Create a scroll pane (perhaps horizontal) and put the buttons inside. The final product will be similar to an emoji keyboard (separated into different types and users can scroll the keyboard for less-used emoji). However, I’m not sure if this design will be strange and inefficient. Also, I need to reimplement an English keyboard, which is not optimal.
Let users switch between the traditional keyboard and the one I described in (2). This is also quite inconvenient. (Why bother to switch and find out the “apple” button if I can type it directly? Not a lot of keystrokes are saved!)
Since this project is my first one targeting mobile users, I need some more advice. Thank you.