Michalis,
I am going to use CGE for several small one-level/board games and for some funny apps working with sound.
So the existing functionality of CGE is OK for these projects.
But I also need to create a port for Android of existing Windows app written Delphi and having 130+ forms.
The initial version on Android should have about 20 forms because it will make only a small part of all functions.
Thus I am in process of deciding which framework will better suit my needs for this project?
I don’t like the way it could be done with FireMonkeye. I want to move the whole Windows project to Lazarus.
What I really like in CGE is that it’s really cross platform. But I need controls like TEdit and TMemo working on Android.
Technically in CGE I may create own virtual keyboard based on, for example, TCastleRectangleControl. And they call this keyboard OnClich on every TCastleEdit for example.
For Lazarus there are several attempts like:
https://wiki.lazarus.freepascal.org/Custom_Drawn_Interface/Android
https://wiki.lazarus.freepascal.org/Android_Interface/OpenGL_ES_GUI
https://wiki.lazarus.freepascal.org/Android_Interface/Native_Android_GUI
But these approaches create more Android-depended code. For example, I could not build such app for iOS.
There are also Flutter, React Native. But I am a really Pascal-man 
So support of keyboard for TCastleEdit is not urgent and it not quite critical. But could you explain how are you going to implement it in short phrases? Normal CGE app runs in full-screen. So do you think it’s possible to call native Android keyboard on top of it? Or should we declare the keyboard like on the page and then CGE app will be shown not in full-screen but with keyboard under it?
https://wiki.lazarus.freepascal.org/Android_Interface/Native_Android_GUI
<activity
android:configChanges="orientation|keyboardHidden"
or
<activity android:name="com.your.package.ActivityName"
android:windowSoftInputMode="stateHidden" />
so instead of hidden we have to force showing the keyboard.