Mobile Apps - Does my business require one? (Step 2 - Definition)
Updated: Oct 12, 2022
Now that you have evaluated and determined the need for a mobile app for your business, it’s time to define what kind of app you want to build.
You followed our advice from our previous post and you have determined that a mobile app will have enough engagement from your audience and that it is a viable business tool for your brand. Now it’s time to define what type of app you are going to build.
There are multiple ways to go. You could go with Native, Hybrid, Native-Hybrid and Progressive mobile apps. They each have their own pros and cons and are worth studying before choosing one.
When you decide to develop a mobile app, performance, fast load times, and easy use are some of the features that you shouldn’t miss in order to develop a successful app.
Of course, going native is always the best way to go, but is it the most suitable? Well, that’s what you have to find out by exploring and comparing your business needs, your budget, your IT skills, and the features and functionality you wish to add to your app.
Let’s explore those options together and see where they stand out.
Native mobile application refers to application software that is developed to work on a specific platform or device. There are two dominant mobile operating systems at the time of this writing - Apple’s iOS and Google’s Android.
Native applications are programs written in a programming language specific to the platform. The program is defined by code that is primarily used for the mobile device and its operating system. For instance, for Android apps developers write code using Java (the programming language behind Android), whereas for iOS apps they use Swift (the programming language related to iOS).
Native mobile apps give enhanced performance like faster and smoother animations, complicated processing like identifying objects in images, etc. This is because native mobile apps have direct and somewhat unlimited access to the device’s resources (memory, processing power, graphics processing, etc). That is why native mobile apps have a quick execution and a high degree of accuracy.
They also get to leverage the latest technology like image processing, access to some other proprietary apps on the device, specific API only available on the target platform, etc. Apart from being faster it also enables the users to get access to all the native user interface controls and layouts.
However, a mobile application written for iOS will not work on Android and vice versa. You have to develop specifically for each platform you want to target which would require a larger budget and, in case you wish to launch your application on both iOS and Android, definitely a bigger team too.
Native mobile apps can be expensive to build, especially if you want to target multiple platforms. This unquestionably means that your development costs and effort for this project grows exponentially. The bare minimum would be to have 2 developers - one for each platform. They would work on exactly the same functionality but focused on different platforms.
You might get creative and say you can manage with a single developer to build for both platforms. But the fact is that at the end you have to have 2 installables (yes two, assuming you are only releasing for iOS and Android, but how long before Tesla releases their own Phone and OS). These programs have to have exactly the same functionality which means you have to write exactly the same code twice but in different languages.
Having one person build both may seem beneficial, but instead of getting 2 end products finished in parallel, the development time for the project is extended and the release is delayed. In our experience there are no significant cost savings in taking this approach.
So what should you consider for this case?
First - what type of app will you build? If you are building a game, a video streaming app, a photo editing tool or something else that requires heavy processing power, then yes, you absolutely have to go with native. No other solution can offer the benefits of direct access to the device’s hardware.
But don’t stop reading just yet. There’s more to this that you might find useful further ahead in this article.
Some examples for native mobile apps are WhatsApp, Spotify, Netflix and Snapchat.
A hybrid app usually has functionality similar to a web app. Web applications are designed for various platforms and are not installed on the device but are accessible over the Internet through a web browser. In a sense it would be almost the same to access a mobile-friendly website and to use a hybrid application.
The benefit of the hybrid app is that it retains access to many of the mobile device’s features like push notifications, etc.
An important benefit of hybrid apps is that they share a single code base which can be shared among the web, Android and iOS. This means that you write your code once and you can run it in the browser as a website and package it to be installed on iOS and Android.
This clearly means that a bit more attention needs to be paid during the development process, but it’s nowhere near to the cost and effort needed to build, scale and maintain the three separately (Web, iOS and Android).
Unfortunately, there are drawbacks to hybrid apps. For starters, they don’t have full access to the native API and the device’s resources. Therefore they are slower and may feel more sluggish sometimes.
Another disadvantage is that native apps can operate offline since they are downloaded and can offer an offline mode, but hybrid apps don’t come with this functionality out-of-the-box. You could, however, work something out by implementing some clever caching techniques.
When adding more animations to an hybrid app, the performance is dropping and the app is slowing down.
When should you consider using a hybrid approach for your mobile app?
Typically, start-ups looking to get to market quickly on a limited budget. This is very useful as they can invest little at the beginning to get their MVP ready quickly and start selling it/through it.
Another case is if you are not sure whether your idea or app would bring the results you are looking for. This would be a great way to test your PoC (proof of concept) and see first hand what your users think of it.
In these cases you could focus on the core functionality and use cases of the app, and leave the complex features for later. If people like the app, then you can consider rebuilding it in native if it brings benefits, or you can continue scaling your hybrid app.
An example of a hybrid app would be Walgreen’s, the old version of Costco’s app (they updated to something new in early 2022).
This term doesn’t really exist - we invented it because there are some technologies which allow us to leverage some of the benefits of the hybrid apps and get the results of a native app at the same time.
What this means is that you leverage a technology like React Native to develop a single code base and export 2 installable files - one for Android and one for iOS. The difference with hybrid is that these are truly native apps.
To explain it in a few words, hybrid apps are web apps that run on a lightweight browser on your phone. The browser takes the HTML, CSS and JS code and translates it into the platform’s native language. This is another reason why hybrid apps are slower than their native counterparts.
On the other hand, these cross platform technologies like React Native do sort of the same thing, but they do it before the export happens. This means that when you are ready to export, the compiler translates the JS, CSS and an XML-based markup code and translates them into the native Java or Swift. Then it packages the two files and gives you a completely native app.
This obviously combines the best of both worlds. You can save on development costs and you can get the benefits of a native app at the end.
A drawback is that when developing you have to build some bridges between the React Native platform and the actual native ones. This means that if you want to use the camera for a barcode scanner, you have to write a module in Swift and the same module in Java and import them to your project. So when your code in React Native makes reference to the Scanner, the platform knows that it has to use those modules.
On the bright side, React Native has been around for a while and its community is HUUUUGE, so the likelihood of you having to write your own modules is extremely minor.
When should you consider this cross platform approach? Basically, when you need the benefits of a native app but under a limited budget.
This is also useful for start-ups and companies trying to launch something new without a big investment from the very beginning. Other benefactors could be tech companies who need to leverage the device’s power, but they don’t need the full potential of the device (like streaming apps).
Some examples of such apps are AirBnB, Facebook, Instagram, and others.
Progressive Web Apps
Yes, as their name suggests, they are Web Apps similar to the Hybrid apps. The difference is that you create a mobile friendly web application, and add some parameters to it so it tells your phone or tablet that it can create a shortcut on your home screen.
Through this shortcut you can access the website or web application directly without having to open your browser. They too run on that lightweight browser your device has.
These types of applications are not installables per se. As we said, they are shortcuts on your home screen for convenient access.
Contrary to hybrid apps though, you do get offline mode here - you have to configure it, of course, but it’s more straightforward that the typical hybrid app.
A great benefit of this approach is that you can leverage your existing web application and turn it into a Progressive Web App fairly easily.
The biggest drawback, though, is that this is only available for Android. Apple has been resisting the pressure to add this feature to their iOS and iPadOS. So unless you don’t care about iOS users, then this approach is the least popular option.
Some examples of PWAs are The Washington Post, Starbucks, Twitter, and more.
. . .
For a startup business it is smarter and easier to develop a hybrid/cross platform mobile app first and transform it to a native app later if needed. All depends on the type and purpose of the app. For some applications it is necessary to be developed immediately as native, for example Netflix. For a pharmacy app that needs only a list of medications it is much better to be developed as a hybrid application.
The cross platform mobile app is a software application that is compatible with multiple mobile operating systems. Flutter, React Native, and Xamarin rank among the top three cross-platform mobile app development frameworks.
React Native and Xamarin apps translate into native but they rely on some extra help to run fully native. A big advantage for React Native is that it allows developers to write missing components or features directly in Swift (iOS) or Java (Android) so those get executed on the native side. Xamarin is a bit more complicated and restricted in that matter.
And Flutter is more on the hybrid model, although it doesn’t use a web view as the traditional hybrids. Instead it uses a specific environment which runs the app. But essentially it does the same thing as hybrid apps, it uses a middleware that translates instructions back and forth between the interface and the machine. So Flutter is definitely a hybrid approach compared to the other two.
And then we have Ionic and Cordova which are traditional hybrid approaches using web views.
Progressive web apps are something between native and hybrid but only for Android which is a disadvantage. For example, the New York Times. You have a subscription, you read every day so in that case you download an icon on your home screen of your cell phone, you click on it and it takes you to the website where you can read. It gives you the possibility to read a few newest articles offline without internet connection.
Each type of mobile app brings along many advantages as well as disadvantages. What you choose depends on your business model, budget and business needs, project requirements, target audience, demographics, and other parameters.
A detailed analysis shows you if you should consider mobile app development for your business, what functionality you need and which mobile app is better for you.
To make the right decision, you need to understand the advantages of having a mobile app within your business and the objectives you are trying to achieve with the app.
Do you want to connect with your customers, offer better customer service or build a stronger brand? Understanding your approach helps you develop an app based on your business goals and stay on the right path.
Maybe a mobile app is the missing link for your company's success or maybe not.
If your business doesn’t need a mobile app to be successful, accept it. Don’t feel like you are missing out on something. You can definitely be successful without a mobile app. Better solution especially for a startup business is to maintain an active presence on social platforms where you can reach more people than having your own app. Or you can make a minimal investment by developing a mobile-friendly website or emails that are easy to read on mobile.
Starbucks is an interesting use case. They leveraged their web app where users could place orders online and they created a PWA for Android users. They had to create a separate installable for iOS but that combination definitely brought them benefits in costs and development efforts to get on all platforms in much less time and much less money spent on development. Just a side note worth mentioning that you are not restricted to a single approach, you can get creative.
. . .
Before you make this important decision that will definitely affect your business, get in touch with an IT specialist that can see your situation from a different perspective and guide you through the whole process. Your IT partner will analyze and evaluate your case individually and help you decide if developing a mobile app for your business is a step forward to success.