The mobile device development plan reference guide
Rather than focus on making the perfect evergreen choice, it is best to root the decision in the business use case and functional requirements. New developments and libraries will continue to come; shifting industry focus and developer preferences. Rather than always chasing the new, companies that implement a strategy for consistent and intentional mobile experience will prevail.
Don't wait until the right tech stack is chosen. Instead, make sure the right problem is solved and that a mobile application is part of the right solution.
Some questions to consider when contemplating a mobile strategy:
Is there a need to access or store data locally?
Is there a need to work offline?
Is there a need to be present in a market where competition also exists?
Is there budget, time, and internal support for the effort?
Is this an effort for parity or purpose?
The only way to solve the {problem} well is to build a {tech stack} mobile application that allows {user group} to accomplish {specific task} for {direct business outcome}.
Additional considerations
Cost: Factor not only the cost of building applications, but also maintaining, updating, and extending the application. What is the immediate budget for building, and the long term budget for extending and supporting? If the cost is a more significant driver than performance, multi-device strategies win out over native development.
Maintenance & scale: Is there a history of successfully managing multiple integrated code bases inside the organization? If this has previously been a challenge, sticking with a single cross-compiled or hybrid code provides the most results with less headache. Native mobile app development is not the best space for perfect cross-dependency development inside an organization.
Performance: If a highly performant application is required, there is no better choice than native development. For Android development, there is an incredibly fractured and varied device and operating system landscape to manage. However, there are practices in place to support this. For iOS development, there are now multiple device formats and resolutions to address. Native development supports these easily.
Time: If speed to market for both major ecosystems is a priority a progressive web app or cross-compiled application are best. If the development team lacks experience in mobile app development and speed to market is essential, it is risky to make the first foray into mobile with a native application.
Available skills: Knowing the team, their language skills, and interest in mobile development is perhaps the most crucial factor when selecting a mobile development approach--especially if scaling or hiring new team members is off the table. If there is deep JavaScript familiarity, React Native may be best. Android apps (often built in Java and Kotlin) are a more manageable move for enterprise application developers.
Successful mobile applications get built when there is:
A clear understanding of purpose;
A specific and inescapable need to build for mobile devices;
An appreciation for the team building and maintaining the application.
Whether bringing mobile into the portfolio for the first time or improving on existing products, success relies on ongoing strategic investment. For it to take root, top-down support is required as is an organizational culture that treats mobile applications as living things that need to be nurtured over time. Those organizations with strict funding cycles and build and forget it development plans will struggle to find success and overspend their competition for lackluster results.