Professional Documents
Culture Documents
development journey
A developer's journey to a new set of technologies is a
very personal one, but there are definitely a few pointers
that I can give you based upon my own experience.
Following on from my previous post Can I build a Fiori app? Yes you can!
here's a top ten list of tips for the next steps on your journey to become a
Fiori developer.
But the visible building blocks that are used to construct a Fiori app come
from the sap.m library. These days the "m" stands for "main"; originally it
stood for "mobile", as a reference to the responsive nature of these controls.
How do you go about getting to know sap.m library controls? Start with the
Explored app in the UI5 SDK; it's a super resource that gives you real
examples of how the controls can and should be used, and you can say
"show me the code" too.
Begin developing a new Fiori app from one of the starter templates, or even
starting from one of the reference apps. A Fiori app has a lot of moving parts;
if you're just starting out, getting help getting those moving parts going and
working well together is worth a lot.
You're using Chrome, right? That pretty much goes without saying; it's just as
if not more important than your editor; in fact, it is *becoming* the editor.
Conclusion
Of course, if you ask others how you go about learning to build Fiori apps, it's
likely that they'll have other tips too. But I'm pretty sure that these will be
the common denominators. And they're all things that have helped me on
my journey. Happy travels!
The title of this piece is in two parts. If we're not careful it could be a very
short piece, because I've already given you the answer in the second part "Yes!". What else do you need to know?
Well, let's start with some assumptions. I'm going to assume that, at least to
a greater or lesser extent, you're possibly a developer, or at least are of a
technical nature ... otherwise, you may want to stop reading now ;-). And
that you're wondering about Fiori. What it is, how it works, what the
component parts are, and how you put a Fiori app together.
You might be faced with the exciting yet terrifying prospect of building one
from scratch; you might be more in the game of modifying and extending
existing standard SAP Fiori apps. And you'd be in a good place; Fiori is a huge
part, some might argue the single most important part, of SAP's frontend
future.
Some definitions
In order to work out why the answer to the question is "yes", let's back up a
bit and start with a few definitions. Let's have a look at what Fiori means,
what it represents.
Philosophy
User experience
It's user experience. UX, as the hip designer kids say these days. This is
pretty closely related to the 1-1-3 concept. Three screens. What do those
screens look like? It's not about the colours, but it *is* about what a user
sees, and perhaps just importantly what a user doesn't see. It's also about
how a user navigates through the task at hand, and also how they become
familiar with visual paradigms so that when they move from one task, say,
approving a purchase order, to another, such as managing a product, things
are familiar, and they know what to expect.
Cross platform
It's cross platform. And that means written for the One True Platform, i.e. the
web. Web native. So it runs on different devices, with varying screen sizes.
Desktops, tablets, smartphones. Even Windows phones! If that's not cross
platform, then I don't know what is.
So I've got this far and our conclusion must be that Fiori is actually a state of
mind
and how that user experience is realised. At some stage, in every computing
context, you're going to have to come down to bare metal.
And in our case, that bare metal is at the UI layer. There's also the data layer,
don't worry, I haven't forgotten about that. But let's just concentrate on the
frontend for now.
Have you noticed the subtle distinctions that SAP are making with regards to
Fiori UX and UI? I outlined that distinction in a blog post around this time last
year: The essentials: SAPUI5, OpenUI5 and Fiori. Now SAP are underlining
that distinction by creating a brand new community in the SAP Community
Network, specifically for Fiori. There's already a community for UI5, but now
there's a separate community for Fiori. And that's sort of the the point I'm
trying to make.
Before we get down to UI5, let's just consider this abstraction we know and
already have started to love, called Fiori. It could be realised with all sorts of
different technologies. If you think about it, that abstraction, that distinction
between philosophy and practicality, is the one way SAP can continue to
forge ahead with some sort of (eventually) unifying user experience strategy
while at the same time dealing with the reality of products from differing
sources, with differing frontends - Concur, Ariba, Lumira, and more.
Don't hold your breath, they haven't even managed to get login working
properly and cleanly on their service portal even after more than a decade ;-)
But the thought and the focus and the intention is very much there.
Getting down to it
So Fiori is technology agnostic, and deliberately so. But at some point you're
going to want to actually build something, so let's start to descend through
the clouds down to reality.
UI5 features
Well, full support for Model-View-Controller, for a start. Fiori apps can be
complex beasts, and adopting an MVC approach to your code design is
almost a must, if you want to survive with your hair intact.
And then there's a very accomplished data model mechanism for client and
server side models, with a rather powerful binding system.
Need to write apps that work in different languages, some of them right-toleft? Got that covered. Need to make your apps extensible? Yep, got that
covered. Need to build your views declaratively? Yep. Want to construct your
JavaScript
There's a lot of navel gazing out there right now about web toolkits and
frameworks not being "native" enough, not being JavaScript-y enough.
Frankly, I don't understand that. The whole point of a framework, of a toolkit,
is to make you more productive. And to do that by providing abstractions and
mechanisms that allow you to get things done, to build responsive user
interfaces and interact with data in backend systems, while not tripping you
up or getting in your way.
So to build with UI5 is to build using JavaScript, but it's not the full story. It's
understanding and properly wielding MVC. It's understanding how to build
applications where your application logic is separated from your view
definitions. And it's understanding where the joins are. It's also
understanding how to build an application that allows a user to get on with
the task in hand. They have a role, they have a task to perform, and they
want to carry it out with as little fuss as possible.
But it's also understanding where the data comes from, and where the
frontend meets the backend.
OData
And that's where OData comes in. OData is a protocol and a format. Folks
like to say that OData came from Microsoft, but the truth is actually a lot
more interesting. It came from RSS, or rather, from the broken community
that was borne out of a specific person trying to own the space (and failing).