Choosing the right technology for your Mobile App
The ultimate guide for Pink Room clients.
Choosing the right technology for a project is always challenging. As consultants, we are consistently trying to help our clients make the best decisions, and defining whether to build a native or a cross-platform App is one of those crucial moments that significantly impact a company and product future.
Fortunately, we have seen many projects that have made a significant impact in the market over the years and, inevitably, some that didn’t succeed that well, allowing us to better understand the pros and cons of different technology approaches. In this post, we will share some of the lessons learned, trade-offs and recommendations that should be considered when deciding which technological stack to use if you want to build a mobile digital product.
Tl; Dr;
There are no silver bullets when deciding between native or cross-platform mobile app development. This happens mainly because it’s impossible to predict the future and, therefore, the decisions that we make are based on present facts and future assumptions.
This is why experience is essential!
Furthermore, it’s difficult to balance the pros and cons of each solution, and doing it can be highly subjective. That’s why we built a decision-making framework that can help guide you. Take a close look at it.
We know that the above decision framework is an oversimplification that dismisses a lot of different variables. However, it’s important to have a structured and objective way to start this analysis.
Nevertheless, even though it works quite well as a first consideration, if you work with Pink Room we will carefully analyze every pro and con of each solution before making a decision together.
Understanding Native Mobile Apps
Developing a native application means that you build a specific codebase for each platform. On Android, this is typically done using the Kotlin programming language, while on iOS, Swift is the most popular one.
Pros
- User experience: While user experience is sometimes perceived as only the UI and UX of an application (which doesn’t depend much on the development approach), it is much more than that. And native Apps are killers here, allowing you to have the best performance, access from day one to Google and Apple’s new features, and have the best native look and feel for each platform.
- Flexibility: Native development is the most flexible solution. It will give you the guarantee that you are covered in the future by accessing all the platform-specific advantages and also that your team is able to easily build for other devices, like wearables.
- Security: Even though security is often more influenced by development best practices, code quality, and attention to security measures, being able to directly access the up-to-date security APIs of each platform is really important if you need top-notch security measures.
Cons
- Higher development and maintenance costs: Assuming you need to develop and maintain 2 different codebases, the overall cost of your project will be higher at least in the short and medium term.
- Multiple skills needed: Your team will need developers who know Kotlin and Swift.
Exploring Cross-Platform Mobile Apps
As opposed to native development, cross-platform solutions have a single codebase and are able to run on multiple platforms. There are many different frameworks that allow you to do it, being the most popular ones React Native and Flutter¹. However, even though this seems to be awesome (which is), it comes with a cost, and, most of the time, we still need to do some tweaking per platform or in less frequent scenarios write native code.
¹ We carefully left aside Kotlin Multiplatform Mobile (KMM) here, since it’s a technology that can have both pros and cons of native and cross-platform solutions as we will see later on.
Pros
- Fast development: Assuming you need to develop an application for Android and iOS, a cross-platform approach will be faster in the short term since the codebase is shared between the platforms.
- Easier maintenance: In the same way, since you only need to maintain 1 codebase it will be easier to do it.
- Lower cost: Due to both pros above, the cost of building a cross-platform solution is typically lower than building a native App, at least in the short and medium run.
Cons
- Platform-specific customizations: If your App needs to be customized per platform in the future, it might be trickier to handle and maintain it with a single codebase.
- Native knowledge might still be needed: There are many cross-platform applications that don’t require the team to have knowledge about native development. However, if you need deep hardware integration that is specific per platform, if you need to directly access any platform API, or if your product evolves to support wearables, you will need developers who know how to build natively.
- User experience: Cross-platform Apps don’t have a native look and feel and will take more time to reach the users with the latest Google and Apple features. They are also typically slower to start and bigger when compared to native Apps, which is always a compromise when it comes to user experience.
Decision-Making Framework
Now that we know some pros and cons of developing a mobile application using a native or cross-platform approach, let’s dig into the framework and all the questions that we need to answer to make the final decision.
Is budget a high constraint to build the product?
Budget is always very important when it comes to building products but it’s crucial to make sure our technological decisions don’t impact the future of the project in the wrong way. Due to that, if you have a small budget but can test or go to market with only one platform first, it might be interesting to consider going with native. This way you can still have all the pros of this approach while significantly reducing the time needed to develop the other platform, since you already know how to build the product and, therefore, the initial changes and efforts are not duplicated.
Is your time to market very tight?
If your time to market is critical to the success of your project and you have a short timeframe to do it, you should probably consider choosing a cross-platform solution. However, this decision should be carefully made by asking yourself if your project can go to market with only one platform or if you have the budget to add more resources and build natively. In some cases, it could be the best decision.
Developing for wearables is in your roadmap?
Whenever you want to develop a wearable application, for a smartwatch, you will need to go native. If you know that this will happen, make sure to think about your team and how you want to manage it. Do you want a multifunctional team that works with native technologies and can build every product for your project? Do you want to start with a cross-platform team and then create or hire an external team just for the wearables?
Want to have the best user experience possible?
The market is very competitive. If your product has strong competitors and you don’t stand out, it will be difficult to activate and retain users to have a successful product. Also, it’s important to highlight that the experience for your users isn’t only related to the UI/UX of your application, and native Apps can give you a good advantage here. So, if this is really important for your product, considering going native can be the best approach.
Does your App need deep hardware integration?
If this is your case, the chances of needing native technologies are quite high. Of course, you can still write native code while building a cross-platform application, but you will need someone with native development experience. In this case, we typically advise going with native since, inevitably, the advantages of using a cross-platform approach have less impact.
Does your product need top-notch security?
As we talked before about the pros and cons of developing a native or cross-platform application, if security is a big concern, native can be the best solution for you. Nevertheless, in a cross-platform solution, developers can take additional measures to make an App more secure. So make sure you are advised by an experienced team in mobile security to understand your needs and make sure you make the best technological decisions.
Does native or cross-platform have the right tools for your needs?
Choosing the right tools for the job is often one of the most important aspects when it comes to defining which technology to use. If you want to build a product and you find that a specific technology has better tooling and documentation to develop what you want, you should probably go with that technology, independently whether it’s native or cross-platform. This is important even in cases where you want the most flexible solution. In this case, you might be tempted to go with native, but in some areas, like Blockchain (from the time of writing), it might be better to use a cross-platform solution since you have more tools available. More importantly, make sure you select a proven technology and tools that are best for your team and not only for you.
Other considerations
The above questions are some of the most important to answer. However, depending on the maturity of your idea or product you might be overwhelmed to answer all those questions accurately. That’s totally fine!
As a general rule of thumb in these situations, if you just want to develop an MVP (Minimum Viable Product) to validate your idea and you can’t do it with only one platform, consider the cross-platform approach. If you have the budget for it and want an approach that gives you the most guarantees for the future and flexibility, consider native.
At Pink Room, we are also experts using KMM which is a technology that sits in the middle of a native and a cross-platform solution. In simple terms, this technology allows you to build the UI of your applications natively, with all of its advantages, while sharing the same business logic between Android and iOS Apps. Making KMM a good solution even if it makes more sense to go with native.
Finally, you should also take into consideration if you already have knowledge inside your team about any technology to build mobile products, the maturity and long-term viability of a technology and the ability to recruit mobile developers and create a team (Pink Room can also help you here).
Conclusion
As you might have understood by now, deciding to build a native or a cross-platform mobile App is quite complex, and, sometimes, choosing one over the other can be a personal choice. Since both solutions can work, you just need to focus on the trade-offs. By the end of the day, a highly experienced mobile team will consistently outperform a less experienced team using more adequate technology. Therefore, make sure to hire or create a skilled and experienced team over everything else.
That being said, making the right decision for your project can have a significant impact on the future of your company or product and should be something that you invest time thinking about. Make sure you ask for help from companies or advisors who are mobile development experts and have a track record of bringing products into production.
At Pink Room, we specialize in building mobile digital products with both native and cross-platform technologies, which gives us a unique, unbiased perspective to guide you in the best way possible. So, if there’s anything we can help you with, let’s talk. Send us an email to hello@pinkroom.dev!