Native, Hybrid, or Online: How should you develop your next app?
2019-01-23 ● 7 min read
I love building Android apps. Every time someone asks me about creating a mobile app, I argue for building it natively. I have also worked with hybrid platforms like Xamarin, but I still prefer native. However, a few days ago someone asked me if it was a good idea to create an Android app using online services for building apps. By "online services for building apps" I mean using a service similar to Wix, Squarespace, or WordPress but for creating an Android or iOS apps.
At first, I did not know what to answer. I am aware that you can create a website using online services. However, an app? I could not see myself building an Android app using some drag and drop tool and writing no code at all. I could not see apps like Instagram, Spotify, or YouTube being created without any code. So, I decided to research about those services and better understand their pros and cons.
First things first: What are these services?
If you are familiar with services like Wix, Squarespace, or WordPress, then online services for building apps are not so different. These services target people who have no coding experience and want to build an app quickly. Moreover, these services claim that businesses can use their service for building apps at a lower cost and in less time than native development.
Just like WordPress, you select from a variety of templates and modify them to fit your needs. You pay a monthly or annual subscription for using the service and having your app published in the Apple App Store or Google Play Store.
In case you are wondering, some examples of online services for building apps include GoodBarber, Buildfire, Bizness App, Appy Pie, and AppMachine.
So, what are the pros and cons of those services? When is it worth it to use them? These questions can be answered from various perspectives. In today's article I focus on three perspectives.
Cost of publishing the app
To use these services you have to pay a monthly or annual subscription. As long as your subscription is active, the app is available in the app store. Therefore, if you stop paying the subscription, then your app will no longer be available in the app store. Now, is this good or bad? It depends. For example, last year I released the first version of an Android app for tracking expenses. Since the release, I had made minor changes here and there. Keeping the app running and available in the app store does not cost me anything. Using an online service would have been more expensive in the long run because I would have to pay a monthly fee to keep the app available in the store, even if I did not make any update to the app. So, if you are planning on building an app that you are not planning to update or change frequently, then I suggest building it natively or hybrid. As a result, you will save money on the monthly fee for having it in the store.
Look and feel flexibility
These online services provide you with templates that you can modify to satisfy your needs. Now, there is a limit on the things you can modify and how much you can modify. The fact that there are templates for you to modify could be heaven or hell. For example, when I decided to build my website (hlinero.com), I started building it with WordPress. Although you can find beautiful templates in WordPress, I was going crazy trying to modify them to fit my needs. Long story short, I ended up creating the website myself. Yes, it took a bit more time than if I would have used WordPress template, but the website behaves and looks exactly as I want it to look and behave. So what does this mean to you? It means that if you want to create an app that has strict requirements regarding look, feel, behavior, and animations, I would recommend building it natively or hybrid. On the other hand, if your requirements for design are not too strict or you are willing to make compromises, then there are fantastic templates out there that might fit your needs.
Technical Limitations and Constraints
When you build an app natively or hybrid you as a developer know precisely what libraries and development patterns you use. However, when you use some drag-and-drop tool with predefined templates, you are not sure about how things are working behind the scenes. In many cases the "how things work" is irrelevant but in other cases, it is not. In some cases, you might want to connect the app to your backend service. Doing so might be a problem with online services because they might not allow it or support it. Therefore, if you are interested in having more control over the technology used in your app or if you want your app being build using specific architectures or patterns, I recommend building it natively or hybrid. On the other hand, if you are building a prototype or you don't care about how things work, and the technology used then using online services might be a good development option.
How should you build your next app?
It all depends. It is not always the case that native or hybrid is better than online services for building apps. You have to start by asking yourself the following questions:
- What role does the app play in my business?
- Is the app a core aspect of my business?
If you answer "yes" to one of these questions, then I would go for building it natively or hybrid. It will give you more control over the development process and the quality of your product. Other questions you should also consider when deciding how to build your next app include:
- How complex if my application?
- Is the app for production or a prototype?
If your app requires the use of sensors (GPS, gyro, etc.) or communication with other services (third-party backend or service), then I would also recommend building it natively or hybrid. However, if the application is static, does not interact with third-party services, or you are creating a prototype then online services might be enough for your needs.
In case you are wondering what I recommended my friend. I told him to build the app natively. The reason is that his app played an essential role in his business and he had strict requirements regarding design and technology. Therefore, building it natively would provide him with the control he required. In conclusion, analyze your requirements and the role that the app plays in your business to determine if native is the appropriate option for you or not.
● ● ●
If you enjoyed this article, please recommend and share. Don't forget to subscribe and follow me on Twitter to stay up-to-date with my latest posts. See you in the next one.