We gave a complete overview of the grammar keyboard and the different working axes of our team: from UX optimization for a small screen, to channel management on the device and in the background with multitasking, to testing the Android application, which behaves differently than a normal application. Motivation to create a keyboard, in contrast to the traditional mobile application, such as a word processor, is based on the same principle as the extension of the grammar of the browser: a typing assistant should be available wherever the user types text. The keyboard searches the device for suggestions of its models, and also checks with the backend during the processing of this query for a complete analysis of the typed text. To allow users to see more details of each sentence, we have introduced an overview view that replaces the keyboard layout and displays maps describing changes that can be made to text. However, since grammatical suggestions at the end of the text can be applied to any part of the text, the keyboard must be able to process changes in any part of the user’s text. This includes reloading the cache when the user does not type or when the keyboard extracts synonyms from internal templates after the user has paused for a few seconds. If a normal character such as “g” is entered, the templates try to predict which word the user enters, for example “big”. If it was a space or other separator, the patterns try to predict the next word or words, for example “work” after “super”. “Another line looks for synonyms for the last word written, which are displayed when the user stops for more than a few seconds. A constant stream of hints and warnings for the Tip Strip is provided by several lines, which receive predictions from device models and grammatical background. Android grammar block is used by the average user more than 70 times a day and has a significant impact on how people communicate on their phone. On the keyboard is also implemented KeyboardActionListener, whose main task is to process tactile events, such as typing text and gestures, and then send updates to the word processor through the interface InputConnection. By combining these fonts, the keyboard can provide the user with the most appropriate type suggestions at any time. The decision to build a grammar application as a native keyboard allowed our team to solve fascinating and complex issues of mobile application architecture, UX, performance and testing.