One of the greatest challenges when building apps or applications is creating the app’s user interface or UI for short. Getting this part right is so important, in fact, that a whole new term has entered the vernacular, User eXperience (UX). The latter involves not only the design of a user interface, but also considers the user’s psychological state in the process. At the same time, there is yet another aspect of UI/UX that is less discussed. The software that powers the system at runtime. The app engine, the framework or the environment that essentially hosts and runs the application.
It is unfortunate that this key component of a user experience is often taken for granted. People often talk about design tools, graphics, and documentation as somehow being more important to the application developer than the capabilities and limitations of the UI engine itself. This is faulty logic. At the end of the day, to the person(s) building the app, the most important thing becomes the efficiency with which they can deliver the required results. Thus, when sizing up a new application engine, asking ourselves a simple question can hint at the answer:
Just how much of our time is spent fighting the UI/UX engine to achieve the desired result vs. the time spent on building the app’s features and business logic?
The more energy is spent on getting the UI to look and behave correctly, the less useful and expensive an application framework becomes. As developers, we want to build exciting new features and create never before seen functionality. The less time we spend on scroll bar bugs or alignment issues the better. Therefore, one of the primary goals of all application engines should be to minimize the need for “workarounds.” If that sounds idealistic, so be it. Best practices and developer guidelines only get us so far. In our view, the UI:app logic ratio needs to be well below 50% for a high quality app engine.
In a future post, we will document iOS, UIKit, and the Swift programming language’s efficiency quotient, as experienced during the development of our very own upcoming Sprouted app.