So, what is the SEAM?
I was reading with interest the recent blogs from Martin Grasshoff, Lisa Haag and Sue Berry about the new tools that are being made available by SAP to generate native iOS applications using a rapid, code free, modelling approach.
Ideally, the business can work with these tools and “describe” their application. This information can then be turned into a native mobile application through a code generation process.
Developing applications using a metadata driven approach will facilitate faster build loops and allow businesses to innovate quickly on new ideas. This is especially important where requirements are rapidly changing and a more traditional development approach may mean being too late to market.
The downside of this being that at some point a business requirement will not easily translate into metadata, and a code based solution will be required. Because of this, it will become very important to understand the capabilities of the SEAM so that it’s used in use cases that are appropriate for its capabilities.
That said, first a disclaimer: I know very very little about the SEAM, and cannot speak in any real detail on its capabilities. My interest at this stage is purely out of curiosity – I’ve been working with the iOS SDK and noticed that the SEAM Client is bundled in the 1.2 release. It was screaming out to be looked at 🙂
Building a SEAM Application in the WebIDE.
So, how do I build the sample application shown in Martin’s Blog – I’m glad you asked…
- You’ll need an SAP CP account – a trial account is fine for this demo
Once you’re logged into the Cloud Platform, you need to start the WebIDE. Part of the SEAM tooling is a plugin for the WebIDE. This plugin allows us to build our SEAM Application in terms of metadata – we will describe what we want our application to look like and behave like, but we won’t say how – the SEAM Client tools will do this for us.
You will need to use the Multi-Cloud version of the WebIDE – the SEAM plugin is not available in the older WebIDE. You can Access the WebIDE from your SAP CP Services
From within the WebIDE, activate the SEAM plugin – this is done from Tools->Preferences->Features. Activate the feature and then save your settings. You will then need to refresh the browser for the changes to take effect.
Once the WebIDE has reloaded, select File->New->Project. The Template Selection popup will open. Select App Modeler Application from the Category menu, and create a new App Modeler Mobile Application.
The WebIDE will open and you should see the following application structure:
At this point I’m going to re-iterate that I really know very little about the capabilities of SEAM – I’m just an interested party. That said, there are some very cool concepts in here. Explore it for yourself and see what you think.
Each folder contains a type of object that you can add to your application. For example,
- Actions – These describe how the application will respond to user input and other events
- Pages – These make up the User Interface of your application
- Rules – Build business rule definitions for your application
- Services – Define backend connections
What will interesting here is how much (if any) code I can add to augment the library of logic components delivered allowing me to build more sophisticated business rules as needed.
At this stage, complete your application as described in Martin’s blog and make sure there are no errors.
Turning Metadata into a Mobile Application.
This is where the fun begins! Before we start on the process of using the SEAM Client to build your application, we need to export the application definition from the WebIDE. Select your application and choose File->Export. This will download a ZIP file which you will need later.
The SEAM Client is currently bundled as part of the iOS SDK which is a free download from the SAP Store. Follow this link to download the SDK. Once you have downloaded and installed the SDK you should see the following:
Unzip the SEAMClient_SDK archive in its directory. Once this process has finished, navigate to the MDCFramework folder and unzip the SAPMDC.zip archive in its directory. You should end up with the following:
At this point the README.md file will guide you in the process of generating an iOS application. There are several prerequisites needed to make this process work, and these are outlined below.
- You need a Mac (Though I have read that Android will be supported in 2018, so I assume this is only a temporary roadblock for my non Apple friends 😉 )
- A recent version of Node.js. The current Long Term Support version is 6.11 and this is sufficient for generating SEAM Applications.
- TypeScript. Install this globally using npm install -g typescript.
- XCode and its associated iOS simulators
- The SAP iOS SDK – downloaded earlier.
- CocoaPods. This is a library/dependency manager for Swift (similar to what maven is to Java). Install this from the command line with the following command:
sudo gem install cocoapods
- Copy the iOS SDK libraries from the Frameworks directory of the SDK to the Frameworks directory of the SEAM Client.
Once you have installed the dependencies as described above you can begin the build process by following these steps.
- Unzip the archive you exported from the WebIDE into the application.definition directory. This should now look something like this:
- From the command line, navigate into the SEAM Client directory – this is SEAMClient_SDK-1.2.100-Universal based on my release of the iOS SDK.
- Execute the following from the command line.
This will start the build process.
Before the process starts the script will ask for 3 pieces of information – the Application Name, the Bundle Id, which is a namespace for your application, and if the build is for the iOS simulator or to run on an actual device – this will determine which libraries are used for the build. For this example I am using a simulated iOS device.
Once the build finishes (hopefully successfully) you should get the following message:
Now, we just follow the instructions. The tns run ios command starts the TypeScript application which will turn our SEAM Application into an XCode Application and deploy it to the simulated device. Run the command and watch the output in the terminal window. You should see BUILD SUCCEEDED in the terminal window and the Simulator should open with the following screen.
Once again, I must plead ignorance – I have no idea what “Safe Default Data” is or what it means. Once we start seeing the tutorials for the SEAM tools I imagine this will become much clearer.
Click on “Try the Demo” to start your application. You should see the following:
Click the button to make sure your application works.
There is much to explore here, and much to learn. From what I’ve read we can expect to hear much more from SAP on this in the coming weeks, and I imagine there will be much more information available when the Tech Ed season starts.
Please note that this information is based on my own exploration and I have not received any input from SAP. It’s quite possible that the way I have used the tools is incorrect, or may change as the tools become more mature. My intention was to demonstrate what is some very cool technology that is coming very soon.
To quote Matt Harding, Have Fun!