Many clients seek a way to share code between iOS and Android apps in the hope that this will save time and money. To the extent that both apps speak to the same back end, they already share plenty of code — the most valuable and expensive code that runs on your server.
Cross-platform development tools in our experience always disappoint. To get the best results on each platform you must understand native development techniques and libraries. It is never just “write once, run everywhere.”
The best way to share code, including user interface code, is to use a Hybrid Mobile App approach. We have skeleton apps developed for both iOS and Android which can be customized rapidly to launch mobile apps that wrap mobile-friendly web apps.
We recommend this approach when the web app itself is under rapid development and functionality is continually changing.
Once the app is mature enough that significant updates occur only once every several months or the User Interface is not expected to change much, native development is preferred. This conversion can be done screen-by-screen so that more stable or complex parts of the application can be converted to native implementation first.
If the app has a more stable design at the outset, we recommend 100% native development from the start.