One of the very first decisions to take before starting development of a mobile app is which framework to use. These decisions impact the overall quality, development costs, and reliability. Nowadays, there are many development frameworks that we can use to build a mobile app. We can however group them into 3 main approaches: Native, Cross-Platform or Hybrid Apps. In this post, we will go through the advantages and disadvantages of each one. This list, however, assumes that finding skilled developers to use the below framework will not be an issue. That's because, at Vioside, we can build either Native, Cross-Platform or Hybrid Apps! 😁
This means that we will build an app using the manufacturers' technologies directly. So we'll use Apple's technologies to develop an iPhone / iOS app, and Google's Android technologies to build the Android app.
Best user experience The user will get the most fluid and best possible user experience in terms of design, speed, responsiveness and reliability. The design will consist of standard components that the user is already familiar with.
All device features This means that the app will have access to all the hardware and software features of the device provided by iOS and Android. For hardware, this means access to camera, gyroscope, biometrics, flashlight, processor features, NFC, compass, microphone etc. For software, this means access to use push notifications with deep linking to a particular screen, augmented reality, build app clips and watch apps, swipe gestures etc.
Updates are available immediately: Since we're using Apple & Google's frameworks directly, the app will gain access to the latest updates and features on the device, as soon as they are launched.
Future proof The framework is provided by the manufacturer directly without third-parties. We can, therefore, put our mind at ease knowing that Apple and Google will keep updating their framework for as long as iOS and Android exist.
Develop twice Since we're building the apps using the manufacturer's technologies, this means that we'll build two apps separately. This is because these are two separate frameworks with different languages and toolsets.
A hybrid app means that the app will be a mobile app which simply displays a website. We'll be wrapping this website into a mobile app which acts just like a browser. The job of the app is simply to load the website, and therefore, there will be no access to device and iOS / Android features. There are however, some frameworks and methods to enable communication between the website and native features. An example of such a framework is Ionic.
1 Codebase Since the app is mainly a website, this means that there will be one codebase for the project. This means that if an update is required, in most cases, this would also involve changes in one place.
Quick updates: If the update required is done on the website, once published on the server, this update will be available to all users immediately.
Lacking Experience In most cases, the app will feel like a website. This means that it will not have the same experience as a native app and will include a slower performance and loading times. This also means that some native experiences that the user expects might not be present, example swiping from the edge to go back.
Challenging Development Getting close to a native design and technologies is possible, however, it could be very time consuming to get it right and development of such technologies can be challenging.
Third parties If we decide to go for a third-party Hybrid technology such as Ionic, we will be relying on the third party community to keep the frameworks up-to-date with iOS and Android's updates. This also means that new features and updates will not be immediately available.
This is an approach which makes use of frameworks that allow for one codebase and project which is compiled or translated into an iOS app and an Android app. These technologies have a mix of native features and some, or many, web-based technologies. Some frameworks even allow for the result to be as close to native as possible. Some examples of such frameworks are Facebook's React Native, Microsoft's Xamarin, and Google's Flutter. Each of these frameworks have their own advantages and disadvantages, however we will be grouping the overall pros and cons of this approach.
1 Codebase These frameworks allow developers to write apps with 1 codebase which is then translated to native apps. These means that it will take less time to build the app, and ultimately, it's cheaper.
Closest to native At the end of the day, most of these frameworks translate into native components. React Native, for example, translates the views into the standard native controls and Flutter draws everything into their own native components (not the standard iOS and Android ones). Therefore, these frameworks might be the best approach to get a result that is closest to native with 1 codebase.
Third parties Similar to hybrid apps, we are relying on the third parties to keep the frameworks up-to-date with iOS and Android's updates. Therefore if Apple or Google release an update to the OS, we will have to wait for the third party to make updates from their end to catch up.
Lacks some native capabilities Although most cross-platform frameworks provide support to most native capabilities and hardware, not all the technologies may be available out of the box. We will have to rely on the third-party to release support for such features, and in some cases, it might not be in the pipeline. Some examples could be: Augmented Reality, Watch support, or App Clips. Therefore, let's say that your app is built in one of these frameworks. Next year, Apple or Google releases the next big thing. That would mean that, you will either have to wait for the framework to catch up. If they never do, you will either have to let that feature go, or rewrite the whole project natively. One example would be the new App Clips which was introduced in 2020.
Might lack performance Most of these frameworks, translate your code into native components while the app is running. This might therefore not result in the most fluid experiences, and in most cases, app start up might be slow until all this work is done.
Larger app sizes Most of these frameworks, translate this one codebase into native code at runtime. This usually results in bigger app sizes, which means that the app will take up more space on the user's phone.
So which approach would you choose for your app? Would you go for Native, Cross-Platform or Hybrid Apps? We can help you make this decision, and help you plan it, build it and publish it. Get in touch using our contact form here: Contact Us