Thursday, January 27, 2022
-
3
min
The non-techie guide to mobile app development methods
When you’re in the app development world it’s easy to assume everyone knows their Swift from their Kotlin. But if you’re a non-technical founder looking to build your first mobile app, we know the process can feel like a total black box.
There are plenty of ways to go about making an app and every developer has their opinion on what’s best. But the development world moves fast and a lot of the advice that’s out there simply isn’t true anymore. To help you find the best way for your project, here’s our up-to-the-minute, non-techy guide to the different app development routes.
Download our CTO's Guide to React Native for 2023.
Native development
In the early days of smartphones, there was only one way to go about building mobile apps: native development.
Android and Apple’s iOS have always used different programming languages. Back in the 2000s that meant that if you wanted your app to run on both platforms, you had to make it twice – two versions that looked identical in terms of UI, but underneath were built native to each programming language: Objective C for Apple, Java for Android.
The best thing about native development is that it gives developers total power. Anything the operating system can do is fully exposed for you to use without relying on a layer of third-party plugins to weave it together. It’s like renovating a house and being able to get right into all the plumbing and electrics before the plasterboard gets in the way.
But of course, that doesn’t come cheap.
Being able to directly access the guts of the OS means you also need to lay down all that plasterboard and carpet yourself later – and you’re going to have to do it all twice.
What’s more, native developers typically specialise in one platform or another so you’ll almost always need two separate teams. Finding and coordinating them isn’t the easiest job in the world.
Also, for absolutely optimum performance you’ll need developers who code in the latest native languages (Swift for Apple, Kotlin for Android). And to be honest, there’s just not that many of those developers about.
Pros of native development
- First-class access to all the operating system’s features
- Not dependant on third-party plugins
- 100% performance
Cons of native development
- You’re effectively building two apps instead of one
- Need two teams of hard-to-find specialists
- When the work doubles, so does the cost
Hybrid development
Hybrid apps came about in answer to the huge costs and workload of building a fully native app. They’re a hidden web browser packaged like an app – they can be downloaded from the app store or, like Progressive Web Apps, directly from your website.
BBC News did exactly this. Their Objective C and Java apps are disguised web browsers with the navigation removed.
A bonus of hybrid apps is that any updates can be done “over the air” – meaning whenever the app loads it fetches the latest version of the website, so you don’t have to wait through the lengthy app store review process (or wait for the review team to finish their Christmas break).
The trade-off is performance. Offline functionality is obviously limited, and to access any of the phone’s OS features you’ll need to build a layer of third-party plugins. And these need an exhausting amount of maintenance to keep pace with Apple and Android updates.
All in all, a hybrid app running on a web engine loses a hefty chunk of the performance you’d expect from a native app. So realistically, hybrid apps only fit the bill if you’ve got a tight budget, or if you only need an app with a newsfeed and some buttons.
Pros of hybrid development
- Cheaper and simpler than two rounds of native development
- More cost-effective for smaller projects like internal apps
- Hybrid apps can update instantly without going through the app store’s review process
Cons of hybrid development
- Noticeably reduced performance compared to a fully native app
- Limited offline functionality
- Dependant on third-party plugins to access OS features
Native cross-platform: the best of both worlds
What about if you want an app that does more than hybrid but doesn’t rack up the costs of fully native? That’s where cross-platform development, like the React Native and Flutter frameworks, comes in.
Cross-platform is a way of building apps for iOS and Android using a single code base – with React Native that’s Javascript – which is then converted into the different native languages of each operating system
The development time is halved and you don’t need to hunt down specialists in multiple coding languages. And because the app is written in the native language you get optimal performance from the OS features.
There isn’t the total access of a fully native build so you’ll still have to use some plugins along the way. But a cross-platform app is indistinguishable performance-wise from a native app and is far simpler, quicker and cheaper to develop.
Pros of cross-platform development
- Value: almost two native apps for the price of one
- Half development time so you can get to market faster
- Ideal for 90% of use cases
Cons of cross-platform development
- Slight reduction in performance compared to native, but it’s indistinguishable
- The build chain is complex, but we specialise in making it simple
Which method is best?
Ask yourself this: Do you have £10m to spend on an app?
If you do, Native development is your best path. Native development might be the oldest and most intensive method but there’s still a place for it, and plenty of big players like Airbnb use it for the access and support that comes with it. But those big players also have the money to spend on a native build.
Otherwise, you’re probably going to want a cross-platform app so you can focus your resources where they matter. React Native isn’t a compromise – and for the vast majority of use cases you can access everything you need at a fraction of the cost and development time.
Which cross-platform framework should I choose?
If you’ve dug into your cross-platform research you’ll notice there are two popular frameworks. If you want help weighing them up, check out our thoughts on React Native vs. Flutter.
A few purists might argue that a fully native build is the only authentic way to develop a mobile app. And sure, a few years ago that still held true. But we say if React Native is good enough for huge brands like Instagram and Pinterest, why isn’t it good enough for everyone else?
If you’re confused about which development method you need, talk to us and we can help whichever route you choose – even if you just need us to point you in the direction of another developer.