There was a time when every manufacturer had their own platform and that would make things incredibly difficult for business owners. This has now changed.
Whether your company is creating a mobile application for the app stores or for use internally, you are often faced with the challenge of needing to develop it for multiple platforms. Typically, this means targeting both iOS and Android devices.
For some, their company has the budget and resources to have two developments teams, each programming in the native environments for the platform. While developing in each platform’s native tooling does give you the advantage of being closer to the platform, it comes with a cost.
Yes, there’s the actual cost of hiring native developers from a smaller pool of talent, but, more importantly: Neither code base you’re building with is sharable. Whatever code the iOS team develops, cannot be reused by the Android team and vice-versa. You now have two separate code bases in existence, which must be individually maintained. So, if there is a change to the business logic or design that runs within your app, your company now must update and test both code bases for this change.
Beyond that, there is the added challenge of keeping the user experience aligned across each platform. While you should follow the platform-specific user experience patterns, you still want to the ability to provide custom touches to your application. Again, more work must be repeated.