So you’ve decided to create an app, and you most likely want it to run on iOS and Android devices, but which technologies should you build it with?
The first big decision to make is whether to go with a native solution or a cross platform one, and making that decision might be more involved than you think.
This is as much a business decision as it is a technological one. Whilst a cross platform solution might sound like the obvious choice, there are pros and cons to each approach, and the right choice for your business depends on what you want to build.
Building a native application involves using the software development kit (SDK) supplied by each platform. This gives you direct access to all of the power and features of the platform, placing no limitations on what you can achieve.
Native applications also tend to feel great, using all of the components and tools that are supplied by the platform vendor to make a great experience.
The downside of this approach is that you need to build a completely separate application for each platform using that platform’s SDK. You’re going to need an iOS and an Android team, and each of them is going to develop a separate version of the application for each platform.
If that sounds like you’re doing things twice, that’s because you are! But there’s some benefits to this approach:
- No restrictions. Build anything you like.
- Take advantage of platform specific features.
- Build a great app tailored to each platform.
- Interface directly with the platform SDK, no third parties involved.
- Two teams, building everything twice.
- No shared code between platforms.
- Expensive to develop and then maintain.
If building the whole app twice doesn’t sound too appealing, then you don’t have to! Many cross-platform or ‘hybrid’ solutions exist that allow you to build your app once, and run it on both iOS and Android devices. There are several such solutions available, such as:
- React Native
The way that these solutions work is that they provide a framework that sits on top of the native SDKs for each platform, providing a common interface. You develop your application to talk to the cross-platform framework, and it does all of the translation under the hood to interface with the native SDKs.
The way that each cross-platform solution achieves this differs, but they generally tend to be based on web technologies, and you would have a web developer rather than a mobile developer build your application.
This has some obvious efficiency advantages. You only have to write the app once, so you will only need one team. Under the right circumstances, the hybrid route can save you a lot of development time, and keep your budget in check.
Sounds like a no-brainer, right? So what’s the catch? In the same way that iOS and Android devices operate in a completely different way, so to do the applications that run on those platforms. Apple and Google have each created a set of tools, components, interfaces and navigation paradigms that aims to differentiate their platform. A cross-platform framework sits on top of these two divergent platforms, imposing a common interface on them.
The result is that hybrid applications often cannot take advantage of the unique aspects of each platform. This tends to result in app experiences that go against the grain of the usual paradigms that users have become accustomed to. Instead opting for a middle ground that can still provide great functionality, but lacks the finesse and recognisable patterns of native applications.
However over the years the gap has shrunk. Hybrid apps are always striving to give as close to the native experience as possible and updates from both Apple and Google to the frameworks that sit underneath the hybrid technologies have really contributed to improved performance across the board. To the untrained eye many well built hybrid applications in the wild feel so close to the native experience that users would never know.
- One team. Develop everything once.
- Less expensive to build and maintain.
- Generally less polished than native builds.
- Unable to take advantage of unique features of each platform.
- Hybrid frameworks may be slow to adopt new platform features.
- A heavy reliance on components depending on app features that will require updating in line with OS updates.
Which should I choose?
Choosing which route to take should be done with care; switching later will probably mean starting again, so you’re going to want the solution that you choose to be suitable for the long term.
If you’re trying to make the absolute best app experience possible, and you have the budget for it, native is always a good choice.
If the features of your application can be realised with a cross-platform solution, and you don’t envisage that being a constraining factor in the future, then a hybrid application is a great alternative.
Still not sure?
We’re here to help! Our team of technology experts can find the solution that is right for you, click here to get in touch.