Mobile Applications
Applications are no longer limited to just running on a desktop PC or laptop. Instead, we now have
a plethora of devices on which applications can live. Specifically, we will be thinking about smart
phones and tablets. These devices have something in common … they are consumer items that are
generally small enough to be carried with a person. Unlike classic PC desktops which are
physically cumbersome and remain static in a person's office or home, the phone and tablet travel
with people. In other words, they are "mobile". Applications written specifically for phones and
tablets are termed "mobile applications".
How does a "mobile application" differ from a "regular application"? The answer to that is not
always so clear. There are some obvious thoughts. First, the phone and the tablet don't commonly
have keyboards or mice attached. As such, user interaction is primarily performed through touch
and gestures. This changes the way in which UI styling is built. Next, the screen sizes of the
devices and their resolutions vary. This is typically called the devices "form factor". Screens vary
from a few inches to a dozen or more. Tablets and phones often have additional hardware
technologies in them including accelerometers, GPS and other sensors. The network connections
on these devices should not be considered to be "always available" or may be too costly to maintain.
For these reasons and many more, when one is considering an application to be hosted by one of
these devices, there are considerations to be taken into account which are not present for desktop
applications that simply run Windows. Because of the wide variety of new areas to be covered,
there is the need for new frameworks, platforms and tools to support such new application
development. It is for this purpose that IBM built Worklight.
Types of Mobile App architectures
When looking at a Mobile app, there are number of high level architectures that can be employed.
The first is the Web or HTML5 type. In this style, the app is written purely as a web page using a
combination of standardized technologies HTML, DOM, JavaScript and CSS. A key benefit to a
web app is that it can run without modification on a variety of platforms without modification.
Unfortunately, pure web-apps typically require a network connection in order to run as they must be
downloaded for execution. In addition, the browser environment hosting the application is not
commonly as rich in functions that are available to the native applications. Finally, a browser
hosted application may be slower than a native application is the logic has longer "path lengths"
than native apps.
The next type of app is what is termed a "native app". These apps are written using the
programming language native to the device on which it will run. For example, Java for Android.
The user interface is also native. A native app can't be run on a platform for which it was not
designed. For example, an Android native app can't run on iOS. The benefit of a native app is that
it is likely to perform as quickly as possible and will usually appear seamless to other apps on the
platform. The down-side is that the time cost of developing a single app that is to run on a variety
of platforms increases as very little of the code built for one platform can be re-used on a different
platform.
The last type of app is called the "hybrid app" which is a combination or mix of web app
technology and native app technology. In this story, the core of the development remains web app
based however that app is "wrappered" in a natively installable framework. This means that it can
installed in exactly the same fashion as native apps and will be available while disconnected from
the network.
Design guidelines for Mobile Apps
Page 13
Comentários a estes Manuais