About the features of adding extensions

I closely follow the updates of the repositories and have a question about features like this Add ‘mobile: hideKeyboard’ and ‘mobile: isKeyboardShown’ extensions.

If I am not mistaken, in this case the implementation in the W3C methods and in the extension is the same. Then the question is, what is the purpose of such features?

The point is to simplify clients maintenance and server maintenance.
Historically when Appium was only able to automate iOS and Android, we have added multiple mobile-specific APIs into the base driver code, which make no sense for other platforms, like for example macOS or Linux. We would like to deprecate and remove these for good and only keep APIs that are part of W3C spec.

Another reason is that as soon as a new API endpoint added wrappers for it must be available in each client (e.g. java, python, dotnet, etc). This is inconvenient and takes extra time. While executeScript extensions are available “out of the box”. They should only be properly documented once in the corresponding driver code.

Ooops, I should have checked that hideKeyboard methods are not part of the W3C speс.

Thanks for the answer.