The iOS and Android operating systems are very different. They’re both based on Unix-like kernels, but the development environments have little in common. They use different programming languages and have different standard methods. Porting code from one to the other requires rewriting it from scratch.
There are development toolkits, though, which allow cross-platform development for Android and iOS. A single project will produce applications for each machine that have the same functionality and nearly the same user interface. This theoretically cuts the work in half, compared with developing separate applications. If you want to hit both markets, is that the sensible and economical way to go?
Complexity means compromise
For anything more complicated, though, cross-platform development can involve some significant compromises. Each platform works differently, and a developer has to think about the best way to use the device’s capabilities. If an application needs to present a map, send mail, or send a notification, each operating system has its own ways of doing it.
Not all cross-platform applications are just wrapped web applications. Some are built with complex software development kits (SDKs) that allow access to a considerable range of features. They offer more than the simple approach, but they still have their limits:
Where a lot of processing power is needed, such as complex animations, cross-platform applications don’t perform as well as native applications. This isn’t only an issue of speed but also of battery consumption; computation-intensive code consumes more power.
A single design can’t optimize the user interface as well as separate applications. Each platform has its own unique interface guidelines.
The cross-platform SDK may not support the latest features of iOS and Android.
The hybrid alternative
Thus, even native applications can have a cross-platform component. Sometimes the native portion may be just the application framework, the low-level code, and any performance-critical sections.
A large part of an application’s development cycle is the design. If the developers start knowing they’re targeting multiple operating systems, they can put their design in language-independent terms, so that a single roadmap serves for both versions. For each feature that’s requested, they can consider its feasibility on both platforms. If it’s easy to implement on one platform but will cause problems on the other, they can look at ways to change the spec so that it’s a reasonable goal on both systems.
Which way to go?
A fully cross-platform application can be good enough when performance and user experience aren’t important. A simple demonstration application might be a good example. The main consideration when cross-platform makes sense is when saving money is a major priority.
For an application that really impresses the user and makes the best use of the operating system’s features, though, fully native application development produces significantly better results. This is why AppIt Ventures always recommends native app development – we believe quality is more important than cutting costs, and we wouldn’t be so proud of our work if we knew we could have done so much better.
Are you looking to develop an application? Talk to us about your project and see how we can help!