This guidance explains how you can balance development efficiency, maintenance costs, and design flexibility when building enterprise-ready applications with SAP Fiori elements and freestyle SAPUI5.
This guidance is for developers who need to build enterprise-ready SAP Fiori apps. After working with business stakeholders to create your target design, evaluate how closely it matches SAP’s standard designs. Then determine which approach will help you best balance the following priorities:
SAP offers two main options to help you balance your priorities in these areas and build SAPUI5 apps at scale. The options are not exclusive: You can combine them and adjust the balance as your needs evolve.
SAP Fiori elements uses metadata-driven UI capabilities to develop SAPUI5 apps. As a developer, you primarily create annotations on OData services that control reusable building blocks at runtime. In some cases, you can use collections of building blocks that are organized into commonly-used floorplans.
You benefit from rapidly creating SAP Fiori applications following SAP’s recommended UX patterns and SAP Fiori design, while using pre-built building blocks. Fill in any gaps where building blocks don’t meet your design needs with custom SAPUI5 code. This approach covers:
Building an SAP Fiori elements app requires knowledge of OData annotations and how they control the UI at runtime.
Following this approach, the SAPUI5 framework with its UI controls and application framework capabilities is directly used to develop an app. As a developer, you primarily write SAPUI5 code (for example, JavaScript or TypeScript). You have full flexibility to implement any requirements with complete control over the UI design and app behavior. This approach covers:
Building a freestyle SAPUI5 app requires web development skills (JavaScript or TypeScript) and SAPUI5 framework knowledge.
Although these approaches are explained separately, you typically use them together, combining building blocks and freestyle SAPUI5 code to meet your specific needs. This gives you the ability to balance development efficiency, maintenance costs, and design flexibility. Depending on your design requirements, you balance the efficiency (reuse of SAP Fiori elements building blocks) with flexibility (freestyle SAPUI5 code).
Additional criteria to help determine the best balance include:
| Criteria | SAP Fiori Elements Development | Freestyle SAPUI5 Development |
|---|---|---|
| Maintenance / code ownership | More on SAP side | More on customer / partner side |
| UI consistency | Automatic SAP Fiori compliance | Custom implementation |
| Possible customization | Augment building blocks and extension points with custom SAPUI5 code | Unlimited |
| Developer knowledge | UI annotations, OData | Web development with SAPUI5 |
| Best For | Standard business apps | Unique requirements |

With any of the mentioned approaches, you develop an enterprise-ready SAPUI5 application. By combining the metadata-driven SAP Fiori elements approach with the freestyle SAPUI5 code, you can balance your development efficiency and flexibility:

Choose the best starting point based on your design requirements and the criteria listed above:
Note that you can combine all three types of pages within one app.
To summarize: SAP recommends using as much SAP Fiori elements as possible and as much freestyle SAPUI5 as needed.
Related Information
Developing Apps with SAP Fiori Elements :arrow_upper_right: