Mobile application development is not just for coders and programmers anymore. Rapid mobile app development (RMAD) tools are code-free programming tools that speed the process of creating applications for mobile platforms.
SAP’s new RMAD tool, SAP Enterprise App Modeler (SEAM) is a metadata-driven tool that allows users to customize native SAP applications, as well as create new native mobile applications.
The SEAM applications offer robust offline capabilities with sophisticated business logic. Future releases will add access to mobile qualities such as the camera, contact list, messaging, geolocation, etc. The first application developed with SEAM will be SAP Asset Manager running on Apple devices.
While the initial release of SEAM is focused on customizing SAP Asset Manager, future versions are expected to support new complex mobile applications as well as to allow the rapid development of custom applications.
SEAM application development is web based via the SEAM editor, a plug-in for Web IDE. The SEAM plugin adds additional wizards, drag and drop UI elements, app templates and codeless building blocks that are used to create mobile applications without writing code.
The client applications run in native players and communicate with their backend systems via OData. The communication and other mobile services are provided by the SAP Cloud Platform mobile services.
SEAM will deliver native apps for all platforms, starting with an iOS client. Android Clients are on the roadmap for a 2018 release.
Enterprise App Modeler: Architecture
The Enterprise App Modeler framework has the following components:
- Editor (WebIDE Plug-in)
- Cloud Platform mobile services
- Client / Player application
- Application Metadata definitions
Asset manager (and future applications that access the digital core) also utilize the SAP cloud connector and have add-on components that provide SAP specific functionality used for S4 applications.
SEAM utilizes a metadata-driven development model. This means that the basic functionality of an app is defined as metadata in a database rather than being hard-coded in a programming language.
With this style of development, developers work at a much higher level of abstraction than if they developed applications using Java or Swift, and do not have to worry about low-level system details. This allows a wider pool of resources to develop applications, and provides an abstraction layer for cross platform development.
SEAM application development is Web based via the SEAM editor, a plug-in for Web IDE. The plug-in will be available with standard WebIDE and simply needs to be enabled.
The SEAM plugin leverages the templates and wizards available in Web IDE, and adds a page editor, additional wizards, drag and drop UI elements, and app templates used to define the application. Once the application has been enhanced or developed, the definitions are published via an application metadata file that is imported into the App Update component of mobile services (which provides Lifecycle Management for the SEAM Metadata).
SEAM is extensible to meet specific customer business requirements. Custom controls can be developed in Swift or Objective C (or later Java for Android), and brought into the Editor for consumption. An good example is the Map control that is currently being developed for Asset Manager.
SEAM Client and SEAM Application metadata
The SEAM client is a native player that runs on the device. It provides a metadata framework that takes the business logic, business objects and the user interface and renders it at runtime. (This runs very efficiently since NativeScript makes this a native experience). The client can run applications either online and offline and in a later release will be able to access mobile qualities such as the camera, contact list, messaging, geolocation, etc.
The client has 2 layers:
- A Native layer talking to the device. This provides device storage, the encryption mechanism, communication back and forth between the OData providers (cloud or external), etc.
A bridge between the NativeScript layer and the java runtime engine
- Metadata definitions (the application) – controls, rules, screens, actions and other definitions. These definitions are interpreted by the app modeler client and translated by the NativeScript runtime engine into native controls.
The first SEAM application released by SAP is Asset Manager on iOS devices. This application utilizes the Apple SDK and Fiori guidelines for iOS to provide a beautiful Fiori look and feel for iOS.
Sap Cloud Platform mobile services
The interaction between the client and the backend, (i.e. the OData connection, onboarding, authentication, security, application updates, analytics, etc.), are provided and managed via the SAP Cloud Platform mobile services.
Administration and troubleshooting are done via the SAP Cloud Platform mobile services. Logging is defined on the client via actions and log files are uploaded to the cloud platform where they can be reviewed by administrators. Security and onboarding utilize the Cloud Platform mobile services as well.
Applications are developed using wizards and editors in WebIDE, without the need for writing code. This is accomplished with a group of new features that are added to WebIDE via the SEAM plug-in:
- A new WebIDE WYSIWYG Page Editor allows the user to easily layout pages using drag-and-drop and property sheets. Add and arrange controls on the page, attach event handlers, bind control properties to values specified by object data, properties of other controls or business logic rules, all without needing to write code.
- The new Object Browser helps you quickly search and locate your OData objects and properties, actions, UI elements, globals and rules when you are creating definitions or mapping OData properties to screen elements.
- A new Action Editor provides predefined actions that help the designer easily define the workflow. The action editor interacts with the Object Browser to work with objects, properties, rules, and globals and Execution Rules and Success Failure actions provide conditional execution.
Deployment and Lifecycle management
Enterprise App Modeler developers and/or administrators can easily deploy the updated application to SAP Cloud Platform App Update mobile service with a few clicks. The mobile client communicates with the App Update service to retrieve updated App Modeler metadata definitions.
The application will check for new definitions at launch and every ~30 minutes. If a new version is available, it will download it in the background and notify the user of a pending application update and then force an OData flush action to commit pending local changes.
In the future, there are plans to enable developers to customize this process via override defaults and optionally via an App Modeler action.
SAP’s new RMAD tool, SAP Enterprise App Modeler, provides a metadata-drive tool that supports customization of native SAP Apps, as well as the creation of complex mobile applications.
We expect this will greatly reduce time to market for mobile apps for the B2E and B2C market. We anticipate that 60-70% of app development projects on SAP Cloud Platform Mobile Services will be done with a metadata-driven tool in the next two to three years.
A series of tutorials and demos are in the works. Please check back to this blog for updates as they are released.