In general, there is no one-size-fits-all answer to this topic, as both approaches have their pros and limitations.
Nonetheless, here are some points that may help you determine which strategy to use:
User-centered design
The “UI first” strategy can be more suitable if the application’s primary goal is to provide a remarkable user experience.
Using this strategy, the user interface is designed with the user’s wants and expectations in mind, potentially producing a more user-friendly and intuitive software application.
Technical complexity
Functionality first may be a better method if the application contains complex algorithms, data structures, or integration with external systems.
This method emphasises on creating the application’s essential features first, and then designing the user interface around them.
Time-to-market
Functionality first approach may be more suitable if the application must be supplied rapidly.
With this strategy, you can first design the application’s most important functionality before gradually improving the user experience as time and resources allow.
What next?
Functionality First strategy will be further discussed in part 2.