The Challenge in Designing Mobile Apps: Part 2

on Oct 19th, 2012 in Mobility, | Comments Off on The Challenge in Designing Mobile Apps: Part 2

In my previous post, which was titled The Challenge in Designing Mobile Apps: Part 1, one of the challenges I presented had to do with how the app should be narrowly focused and do just a few things very well.  In addition, the app should be simple and intuitive to use, and should not require any sort of users manual to be read before the user is able use it.  I talked about how the scenarios and environments in which a mobile app is used are quite different than for more traditional desktop computer software.  I also talked about how a user will often use an app for only short periods of time and expect the app to accomplish their task quickly and efficiently.

You may be familiar with the Apple App Store.  This is a web-based iOS app store that a user can access from any computing device.  In the Apple App Store, a user can shop for, and purchase, apps directly from their iOS device ( iPhone, iPad, or iPod Touch ).  The Apple App Store is now a few years old and contains over half a million apps for sale and download.  I read on the news all the time how the number of apps just keeps growing and growing.  In my humble opinion, I would classify only a small number of these apps as “world class and top quality”.  Why so few?  The answer is, of course, because designing and programming mobile apps is full of challenges!  Of course, what those challenges are depends on the type of the app, and it’s features.

Since there are so many challenges that must be dealt with when designing and programming a mobile app, I was not able to fit them all into my previous article.  This second article will present some additional challenges a professional mobile app design and programming team, such as the CIBER Global Mobility Practice, must contend with when designing and programming a “world class, top quality”  mobile app.

To start the ball rolling, I’ll start off by saying that users expect any mobile app they are using to be rock, solid stable.

Rock, solid stable.  Huh?

As an example, let’s consider your television.  Any television designed and built during the last couple of years has a fair amount of software running on it, in order to provide that beautiful digital viewing experience.  Personally, I can’t recall a time when my television behaved strangely, or worse yet, just stopped working.  That is, behaved strangely due to the software.  By “behave strangely”, I mean, for instance, when I select to increase the brightness and, instead of increasing, the brightness decreases.

In general, whether it’s a television or a coffee maker, software on these devices tends to behave very reliably, and in a consistent manner.  Users expect this when using their electronics and appliances.  Not surprisingly, users now expect this when using their mobile apps also, as well they should.  Top quality, world class apps do not behave buggy and do not crash.  Ever!

Another challenge in building a great mobile app is what’s referred to as “app responsiveness”.  This primarily pertains to any app running on a touch screen device, like the iPhone or the iPad.  Great app responsiveness means that when a button is tapped, or a scroll list is swiped, the app should immediately give some feedback to the user that something has happened.

One of the reasons great mobile apps are such a joy to use is because they often represent the digital version of a real world experience.  For instance, the Apple iBooks app allows a user to read a digital book and turn pages, just as if he or she is reading a real book.  When reading a real book, there is never a delay, or stuttering, in the physical movement of the page, as it curls over from one side to the other.  Unless, that is, something like chewing gym is involved.  When a user turns the page while reading an iBooks book, the page turning animation is smooth and immediate.  This is what users expect.

The final challenge I want to introduce is that apps must look beautiful.  The graphics and images should be created by a professional graphic artist and fit perfectly with the theme of the app.  Also, the color scheme should be carefully considered and also should involve the graphic artist.  Apple, and it’s iOS devices, reset the bar on how world class, top quality apps should look.  Users now expect this from all apps.  Especially an app they spent their hard earned money on.  Even apps designed to be used only within the corporate enterprise environment should look nice.  Otherwise, the app is less likely to be used.  Unlike traditional software, it is very easy for a user to never tap your app’s icon in order to launch it.  Even worse, it is very easy for a user to uninstall an app.  When designing an app, I like to keep in mind what I call the “warm and fuzzy” feeling.  That is, when someone is using my app, I want them to love using it and to always have that comfortable “warm and fuzzy” feeling.

Stay tuned for my next article in this series, in which I will be presenting yet more challenges encountered when designing and programming world class, top quality mobile apps.







The Challenge in Designing Mobile Apps: Part 1

on Jul 7th, 2011 in Mobility, | 2 comments

I’ve been designing and programming mobile device software for about 7 years and each piece of software that I work on usually involves something new and interesting.  I find mobile device software to be some of the most challenging software to design well, which is one reason I enjoy working with it so much.  There are many factors to consider in the design of mobile device software, that if not thought out well, can result in a
software application that will not be winning any software design awards and will leave the user unhappy and frustrated.

Before I talk about some of the design criteria that must be considered when designing a mobile device application, (from here on out just referred to as “app”), let me define for the reader what exactly an “app” is.

If you have ever used an iOS device (iPhone, iPod Touch, or iPad) or a Google Android device, then you have been exposed to apps.  I believe there are also apps running on other types of mobile devices, such as Blackberry.  All of these devices come with a few apps pre-installed from the factory and additional apps can be purchased and downloaded directly onto the device.

An app is basically a narrowly focused software application that runs on a mobile device.  Well designed apps are a joy to use and usually do just a few things very well.  A good app should be very simple and intuitive to use.  Rarely will any type of software instructions or manual be required in order for the user to get up and running with a good app.  Some apps may display a few initial usage instructions here and there when the user first launches the app, but the best apps are usually so well designed that the user can figure out how it works on his/her own. 

Apps are usually purchased and downloaded from an online app store that is easily accessed from the mobile device itself.  The Apple App Store is one of the most easy to use and requires only a couple of taps on the iOS device screen to purchase and download a new app.

To design an excellent app requires quite a bit of creativity and thinking “outside the box” on the part of the software engineer.  The best app software engineers will usually have a portfolio of well designed apps under their belt and will be able to demonstrate their apps to anybody that may be interested, such as when interviewing for a project or for employment.  Since apps run on mobile devices, such as the iPhone, and an app software engineer will undoubtedly have a device on his person, the engineer should be able to demonstrate her apps right on the spot. 

The market and demand for apps has obviously exploded during the last couple of years and the pool of experienced and talented app software engineers needed to meet the demand has not yet caught up.  A company such as CIBER, Inc. and it’s Global Mobility Practice should be able to command premium client billing rates when negotiating with prospective clients  to provide mobile device app design and engineering resources.

So you may be asking yourself “What is so special about apps that creativity and “outside the box” thinking on the part of the engineer is required?”  To put it simple, the environment in which an app is used is quite different than the environment in which a desktop computer application is used.  Most notable is the way in which the typical person actually uses the mobile device and the installed apps. 

It is very common for a user to use their device only for short periods of time.  For example, if a user is interested in the weather forecast for the following day.  As soon as the thought of checking the weather forecast comes to mind, the user will probably reach into the pocket, pull out their device, tap the weather app, and expect to see the next day’s forecast almost immediately.  The user will then probably immediately drop the device right back into the pocket or switch to a different app to accomplish some other very narrowly focused, well defined function. 

Another such common function is calculating an exchange rate or seeing how traffic is flowing on the expressway or getting a map route to a certain location.

Often users will have a few minutes of down time, such as waiting in line, and will decide to pull out their device and play a video game app or read a bit of a digital magazine app. 

This type of usage environment where the user uses the software for only short periods of time and expects quick results in the form of information presentation or action puts special requirements in the design of the app software that requires experience, skill, and creativity on the part of the app software engineer to get right. 

There are many other factors that I have yet to mention that must be carefully considered when designing mobile device apps.  To learn about those, you will have to await my next blog post.

Breaking Apart Augmented Reality

on Jun 16th, 2011 in Mobility, | 3 comments

Lately I’ve been running across the term “Augmented Reality”.  It’s been popping up in the news, on the web, in various blog posts, and in white papers.  I even saw it on a billboard as I was driving to the office.  What the heck does this term, Augmented Reality (AR), mean?

Well, I’m here to tell you.  Let’s break it apart.

First, AR, as I describe it in this post, pertains to a type of software application (app) that can usually be found running on mobile devices.  Think smart phones here.  Myself, being an iOS software engineer, will be primarily referring to Apple iOS devices in this post.  Although, there are AR apps that run on Android, Windows Phone, and many other types of mobile device operating systems.

By the way, for those of you who may not know, iOS is the name of Apple’s mobile device operating system.  So, a mobile device running iOS is either an iPhone, iPod Touch, or an iPad.  Android is, of course, the name of Google’s mobile device operating system, and Windows Phone is Microsoft’s mobile device operating system.

First, let’s consider the word “reality”.  The “reality” part of AR refers to the aspect of the software application that provides a display of the real world to the user.  This usually comes in the form of the live video camera feed.  Although, I don’t see any reason why a real world feed couldn’t come from the audio mic.  Just as long as the feed provides a close representation of what the user is actually seeing or hearing in the real world.  Most AR applications currently in existence augment the mobile device’s video display.

Now let’s consider the second word, “Augmented”.  According to the Merriam-Webster dictionary, to augment something is “to make greater, more numerous, larger, or more intense”.  In the case of an augmented reality app, it is most likely going to be the mobile device’s video display that is made more “intense”.  That is, the real-time video display is going to be augmented in such a way that additional, computer-provided data will be inserted into the video display.  This computer generated data usually pertains to objects and / or people that appear in the video display.  The data is often displayed in the form of graphical images that overly the video display.  An example of an AR app is one that shows the constellations of stars when the user points the mobile device video camera towards the sky.

constellations of stars

Another example of an AR app is one which displays to the user a computer generated image of a business, such as a coffee shop or a hardware store, as the user is viewing the urban environment through the video camera.  The image appears as an overlay over the video camera screen and shows the direction and distance to the business.  It could also show some information about the business such as hours when open and any coupons or specials that might be in effect.  The CIBER Mobility Practice designs and programs these types of apps for various clients and also for proof-of-concept demonstration purposes.

There is a third part to the AR equation which is just as important, if not more so, and that is how to connect the “reality” part to the “augmented” part.  For instance, how does the constellation app, as shown above, know where and how to insert and position the graphic images over the video display?  This is where the mobile device’s built-in sensor hardware comes into play.  Many of the newer mobile devices, such as the Apple iPhone and iPad, now come with various environment sensors built-in.  These would be device location sensors such as GPS and cell phone tower triangulation.  Device position sensors such as a gyroscope and accelerometer and device direction sensors such as a magnetic compass. 

Even newer versions of mobile devices, for instance the upcoming iPhone 5, may have Near Field Communication (NFC) sensors built in.  One such type of sensor is called Radio Frequency Identification (RFID) and is very useful for allowing a mobile device to acquire data on objects within its proximity.  In order to sense RFID data, an RFID transmitter device is needed.  Data pertaining to an object is programmed into the RFID transmitter device and the device is then attached to the object.  Any mobile device within the proximity of the transmitting RFID device would then be able to automatically receive the RFID device data and thereby acquire information pertaining to the object upon which the RFID device is attached.  Applications of this technology are often used for warehouse inventory control systems.

By using the device sensor data in combination with data stored on a remote network server, AR app software engineers are able to create sophisticated AR apps such as the constellation app.

I hope this article has been helpful in helping the reader to better understand what augmented reality is and what the future possibilities of the technology are.  AR apps are still very much a new technology and mobile devices have just recently emerged with the required environment sensors and computer processing power needed to realize AR apps.

As a mobile device software engineer in the CIBER Global Mobility Practice, I find AR apps to be one of the most exciting types of mobile device software to work on and I look forward to helping to realize the future potential of this new technology.

Powered by WordPress