App Types

Freestyle SAPUI5 App

A freestyle SAPUI5 app is a custom SAP Fiori app whose views, controllers and UI logic developers write directly with SAPUI5 controls, instead of generating the screens from OData annotations as SAP Fiori elements does. A freestyle SAPUI5 app gives full control over layout and behavior, and maintenance of that code stays with the customer or partner.

Quick facts

Type
Custom SAPUI5 application with a hand-written UI
Layer
UI applications
Built with
SAPUI5 controls in JavaScript or TypeScript; SAP Fiori tools (freestyle templates deprecated)
Deployed to
SAPUI5 ABAP repository (on-premise, Private Edition) or HTML5 Application Repository (SAP BTP)
Code ownership
Customer or partner
Who works with it
SAPUI5 developers, UX designers, solution architects
Applies to
SAP S/4HANA on-premise and Private Edition, SAP BTP
Layer: UI applicationsWhere it sits ▾
Where it sits: L3 · UI applicationsLayer: UI applications.L1L2L3L4L5L6BTP

Layer: UI applications

Open the architecture map →

How does a freestyle SAPUI5 app work?

A freestyle SAPUI5 app uses the standard SAPUI5 application structure, with every screen written by the development team:

  1. Component and app descriptor — the component starts the app; the manifest.json declares data sources, models, routes and navigation inbounds.
  2. Views — usually XML views that place SAPUI5 controls such as tables, forms and charts.
  3. Controllers — JavaScript or TypeScript code for events, validation feedback, dialogs and navigation.
  4. Models — OData models for backend data, JSON models for local state, resource models for texts.
  5. Launchpad integration — a target mapping or inbound makes the app reachable from a tile or link.

SAP Fiori tools still generates the project skeleton, but SAP now marks its freestyle SAPUI5 templates as deprecated and recommends starting from the custom page of SAP Fiori elements for OData V4, which still leaves the page content to the team. Nothing in the UI is derived from annotations unless the team adds building blocks deliberately. A freestyle SAPUI5 app is therefore defined by who writes the UI — the team — not by which framework runs it.

When should you build a freestyle SAPUI5 app?

SAP's developer guidance recommends using SAP Fiori elements as much as possible and freestyle code as much as needed. Freestyle development is the right starting point when at least one of these holds:

  • the interaction does not match any floorplan, for example a guided scanning screen or a planning board;
  • the app must work with data sources that are not annotated OData services, or with external systems;
  • the team needs fine-grained control over rendering and performance;
  • the design deliberately departs from standard patterns for a specific user group.

Example: Alder Manufacturing wants warehouse staff to confirm deliveries from Bright Freight by scanning pallets on a tablet, with large buttons and a single-step flow. No floorplan fits that interaction, so a freestyle page is justified. A list of open deliveries for supervisors, by contrast, fits a list report. The decision to build a freestyle SAPUI5 app should be made per screen, not per project.

What are the strengths of a freestyle SAPUI5 app?

  • Full design control: any layout, interaction or visualization that SAPUI5 controls can express is possible.
  • Any data source: the app can combine OData services, REST APIs and local data without needing annotations.
  • Same visual language: because it uses SAPUI5 controls and themes, a well-designed freestyle app looks like the rest of SAP Fiori.
  • Combinable: freestyle pages and SAP Fiori elements pages can live in the same app, and the SAP Fiori elements for OData V4 building blocks can be combined into custom layouts.
  • Extensible by others: SAPUI5 flexibility supports adaptation of freestyle apps as well as SAP Fiori elements apps, provided the app sets the flexEnabled flag and uses stable control IDs.

A freestyle SAPUI5 app is the option that removes the ceiling on what the user interface can do.

Where does a freestyle SAPUI5 app stop?

  • Ownership stays with the customer. SAP's guidance places maintenance and code ownership mainly on the customer or partner side for freestyle apps, compared with SAP Fiori elements, where the framework carries more of it.
  • Consistency is a design task. SAP Fiori compliance is automatic for floorplans but must be built and reviewed for freestyle screens.
  • Framework evolution is manual. New floorplan features arrive in SAP Fiori elements apps through the framework; freestyle apps only change when someone changes them, including when SAPUI5 deprecates APIs.
  • Skills are specific. The team needs web development and SAPUI5 framework knowledge, not only OData and annotations.
  • Logic can drift into the browser. Rules coded in a controller do not protect data written through other channels.

These boundaries are the price of flexibility: a freestyle SAPUI5 app costs more to keep healthy over its lifetime.

Freestyle, SAP Fiori elements or a custom page: how do you choose?

SAP describes three starting points, and one app can combine all three:

Starting pointWhat you getChoose it when
Full-page SAP Fiori elements floorplanStandard layout and logic from annotationsA floorplan matches the task
Custom page with building blocks (OData V4)Own layout, standard filter bars and tablesThe layout is special but parts are standard
Freestyle SAPUI5 pageComplete controlNothing standard fits

The middle option belongs to the flexible programming model, which lets developers mix metadata-driven building blocks with their own code. For teams that default to freestyle by habit, it is often the better compromise. Choosing between freestyle and SAP Fiori elements is rarely all-or-nothing; the flexible programming model makes it a page-by-page decision.

What are common mistakes with freestyle SAPUI5 apps?

  1. Choosing freestyle by habit. Check the floorplans first; build freestyle only where they do not fit.
  2. No named owner after go-live. A frequent complaint in practitioner communities is custom apps that nobody maintains once the project team leaves. Assign ownership before deployment.
  3. Developing on a newer SAPUI5 version than production. Test against the version of the target front-end server.
  4. Business rules only in the controller. Keep validations in the backend service as well.
  5. Unstable control IDs. SAPUI5 flexibility identifies controls by stable IDs, so generated IDs undermine key-user adaptation and make automated tests fragile.

Most freestyle SAPUI5 problems appear months after go-live, which is why ownership matters as much as code quality.

Freestyle SAPUI5 app vs. SAP Fiori elements: what is the difference?

Freestyle SAPUI5 appSAP Fiori elements app
How the UI is definedHand-written views and controllersGenerated at runtime from OData annotations and floorplans
Maintenance and code ownershipMainly customer or partnerShared, with more carried by SAP's framework
SAP Fiori complianceCustom implementation and reviewLargely automatic
CustomizationUnlimitedExtension points, building blocks and custom code
Skills neededWeb development and SAPUI5Annotations, OData and the floorplans

Both produce SAPUI5 apps; the difference is whether the team or the framework owns the user interface.

FAQ

Is a freestyle SAPUI5 app still an SAP Fiori app?

It can be. A freestyle SAPUI5 app uses the same controls and themes as other SAP Fiori apps and can run in the SAP Fiori Launchpad. Whether it is a good SAP Fiori app depends on whether the team followed the SAP Fiori Design Guidelines.

Can I mix SAP Fiori elements and freestyle code in one app?

Yes. SAP explicitly supports combining full SAP Fiori elements floorplans, custom pages with building blocks and freestyle SAPUI5 pages in one app. Building blocks from the flexible programming model can also be reused inside custom pages, within that model's prerequisites.

Can key users adapt a freestyle SAPUI5 app?

SAPUI5 flexibility supports freestyle apps as well as SAP Fiori elements apps, so key users can make UI adaptations without modifying the original code. Developers must prepare the app: set the flexEnabled flag in the app descriptor and give every control and view a stable ID.

Can freestyle SAPUI5 apps run in SAP S/4HANA Cloud Public Edition?

Public Edition allows custom SAP Fiori apps, built against OData services exposed as UI services, to be deployed to the SAPUI5 ABAP repository of the development tenant. SAP documents custom SAP Fiori apps in general rather than by app type, so check the SAP Help Portal for your release before planning a freestyle app there.

Do I need TypeScript for a freestyle SAPUI5 app?

No. Freestyle SAPUI5 apps can be written in JavaScript or TypeScript. TypeScript adds type checking and editor support, which helps larger teams, but the resulting app runs the same SAPUI5 runtime either way.

Sources

Applies to
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP BTP
Last reviewed

Go deeper

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP and other SAP products and services mentioned are trademarks or registered trademarks of SAP SE (or an SAP affiliate company) in Germany and other countries. This guide is independent and is not affiliated with, sponsored or endorsed by SAP SE.