I've done some research and one method used for cross-platform mobile application development is to use the lowest common denominator approach, packaging platform-independent functions in a shared C++ code base, and developing the platform-specific ones in the SDK's native language.
I understand the advantages of this approach, we get to reuse as much code as possible instead of rewriting what is basically the same code in 2 different languages. Because of that, we reduce the development time and simplify the process of maintaining the application in the future.
As for disadvantages, I know so far that not everything can be shared, and we would still need to make a thin wrapper between the native language and the shared base. The shared base itself also isn't 100% portable, and may be recompiled for each architecture. Then we have C++ being a more verbose and time consuming language than Java/Swift.
Can I be enlightened with the details of what are the strengths and weaknesses of this method for simultaneous cross-platform development? Perhaps someone who have had experience with this method could kindly explain the hard limitations imposed/lifted by taking this approach.