I'm a firm believer in hybrid or cross-platform coding. But I see so much development being done as separate projects with different developers or teams. I think this is such a waste, time and money.
Do you have separate dev teams?
Have you tried to get the development done by one source, and especially from one cade-base?
There are a lot of pros and cons to hybrid programming especially if you have a complex mobile app or are using features such as mapping and GPS tracking.
It will really depend on the code and infrastructure strategy you have. If you are using Cordova or Ionic, can you get away with it or should you be using Facebook React or Tamarin. All of these use one code base or just about one code base. It becomes a question what your application purpose will a hybrid app be sufficient in terms of performance and user experience feel.
I prefer one code base using Facebook React. Best of breed option.
It can be potentially faster to develop a cross platform mobile app rather than a native app for iOS and Android.You canleverage onecodebase and customize for multiple platforms instead of creating a new codebase for each platform. Making one cross-platform app functional across all platforms canalso be more efficient than building multiple native apps from scratch.
On the contrary some cons to be aware of . Due to the nature of non-native code, complex features may be slow, sluggish or even cause crashes or behave strangely on the target system. For platform specific features, you may not be able to use cross-platform code – which means that you will need to go in there and use native code.
I have been doing mobile for a VERY long time...mostly business applications.
If a company can get a "boiler plate" in place of how "they do mobile" then all apps will move faster no matter how you build them.
Having a common, shared application infrastructure in place will speed everything up and increase overall quality no matter what tool you use.
And if I can suggest... you die if you choose one tool for all applications... pick the right tool for a job and know when things are getting to be too much for the tool you are using.....this is key...
Xamarin is great and there are different ways to leverage Xamarin but it's not THE TOOL.....
Native development ain't a waste of time or money always, similarly cross platform isn't advantageous always so ofcourse we can't put a sweeping narration on that. This, like most of the other decisions, depends!
And to answer your questions, yes I have separate development teams for iOS, Android native, and also for cross-platform; why so? because we are an App development companydoing projects for customers and its important to keep all kind of skill sets inhouse.
We develop games using unity on one source code, and did one ecom app as well (using ionic) and many MVPs using various frameworks, but native still rules the roost for many reasons, starting from performance of the app and goes up to "ultimate" cost of managing the stuff in long term.
In data driven apps, more than 60 % of the code stays on the backend side and advantage of "shared code" on front end ain't as much as it may sound theoretically.
There are many things which you can't do on native code better than using any cross tool, for example:- we are almost finishing an Android app that scans and processes a lot of user's call/ sms/ text/ internet usage data automatically (ofcourse after user's permissions) and most of those functions can't be done using any cross platform tool.
Even in case of unity games, there were certain features that we preferred to write in native code, specifically related to purchase and bonus etc. And having a native team along with others was beneficial for us.
Bottom line, if you do only one or two projects then having a "closed skills" team is affordable but not when you are doing many projects as one as developer team for hire. It's still long before this war between native vs hyprid gets over.