In this tutorial we'll introduce you to all major development paradigms of OpenUI5. We'll demonstrate the use of TypeScript with OpenUI5 and highlight the specific characteristics of this approach.
We first introduce you to the basic development paradigms like Model-View-Controller and establish a best-practice structure of our application. We'll do this along the classic example of “Hello World” and start a new app from scratch. Next, we'll introduce the fundamental data binding concepts of OpenUI5 and extend our app to show a list of invoices. We'll continue to add more functionality by adding navigation, extending controls, and making our app responsive. We'll also have look at the testing features and the built-in support tools of OpenUI5.
💡 Tip:
You don't have to do all tutorial steps sequentially, you can also jump directly to any step you want. Just download the code from the previous step and make sure that the application runs as intended.You can view the samples for all steps here in this repository.
For more information, read the Getting Started section below.
The tutorial consists of the following steps. To start, just open the first link - you`ll be guided from there.
- Step 1: Hello World! (🔗 Live Preview | 📥 Download Solution)
- Step 2: Bootstrap (🔗 Live Preview | 📥 Download Solution)
- Step 3: Controls (🔗 Live Preview | 📥 Download Solution)
- Step 4: XML Views (🔗 Live Preview | 📥 Download Solution)
- Step 5: Controllers (🔗 Live Preview | 📥 Download Solution)
- Step 6: Modules (🔗 Live Preview | 📥 Download Solution)
- Step 7: JSON Model (🔗 Live Preview | 📥 Download Solution)
- Step 8: Translatable Texts (🔗 Live Preview | 📥 Download Solution)
- Step 9: Component Configuration (🔗 Live Preview | 📥 Download Solution)
- Step 10: Descriptor for Applications (🔗 Live Preview | 📥 Download Solution)
- Step 11: Pages and Panels (🔗 Live Preview | 📥 Download Solution)
- Step 12: Shell Control as Container (🔗 Live Preview | 📥 Download Solution)
- Step 13: Margins and Paddings (🔗 Live Preview | 📥 Download Solution)
- Step 14: Custom CSS and Theme Colors (🔗 Live Preview | 📥 Download Solution)
- Step 15: Nested Views (🔗 Live Preview | 📥 Download Solution)
- Step 16: Dialogs and Fragments (🔗 Live Preview | 📥 Download Solution)
- Step 17: Fragment Callbacks (🔗 Live Preview | 📥 Download Solution)
- Step 18: Icons (🔗 Live Preview | 📥 Download Solution)
- Step 19: Aggregation Binding (🔗 Live Preview | 📥 Download Solution)
- Step 20: Data Types (🔗 Live Preview | 📥 Download Solution)
- Step 21: Expression Binding (🔗 Live Preview | 📥 Download Solution)
- Step 22: Custom Formatters (🔗 Live Preview | 📥 Download Solution)
- Step 23: Filtering (🔗 Live Preview | 📥 Download Solution)
- Step 24: Sorting and Grouping (🔗 Live Preview | 📥 Download Solution)
- Step 25: Remote OData Service (🔗 Live Preview unfeasible | 📥 Download Solution)
- Step 26: Mock Server Configuration (🔗 Live Preview | 📥 Download Solution)
- Step 27: Unit Test with QUnit (🔗 Live Preview | 📥 Download Solution)
- Step 28: Integration Test with OPA (🔗 Live Preview | 📥 Download Solution)
- Step 29: Debugging Tools (code remains unchanged from the previous step)
- Step 30: Routing and Navigation (🔗 Live Preview | 📥 Download Solution)
- Step 31: Routing with Parameters (🔗 Live Preview | 📥 Download Solution)
- Step 32: Routing Back and History (🔗 Live Preview | 📥 Download Solution)
- Step 33: Custom Controls (🔗 Live Preview | 📥 Download Solution)
- Step 34: Responsiveness (🔗 Live Preview | 📥 Download Solution)
- Step 35: Device Adaptation (🔗 Live Preview | 📥 Download Solution)
- Step 36: Content Density (🔗 Live Preview | 📥 Download Solution)
- Step 37: Accessibility (🔗 Live Preview | 📥 Download Solution)
- Step 38: Build Your Application (📥 Download Solution)
The project uses npm workspaces and requires a Node.js version >= 20.11.0
to be installed.
The project is setup as monorepo. All steps are located inside the steps
folder and labelled with their step number. The monorepo uses npm
workspaces to manage all steps together. But you can also run npm
inside each individual step.
To setup the monorepo you first need to install all depenedencies:
npm install
To run any step, just execute one of the scripts from package.json
via npm, e.g.:
# Option 1: use workspace command to start the step
npm start -w ui5.walkthrough.step01
# Option 2: change to the folder of the step and start it
cd steps/01
npm start
No known issues.
Create an issue in this repository if you find a bug or have questions about the content.
For additional support, ask a question in OpenUI5 Community on Slack.
If you wish to contribute code, offer fixes or improvements, please send a pull request. Due to legal reasons, contributors will be asked to accept a DCO when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses the standard DCO text of the Linux Foundation.
Copyright (c) 2024 SAP SE or an SAP affiliate company. All rights reserved. This project is licensed under the Apache Software License, version 2.0 except as noted otherwise in the LICENSE file.