SlideShare uma empresa Scribd logo
1 de 12
Baixar para ler offline
Handbook and Tips:

Five Mistakes to Avoid in Creating
User Interfaces for Mobile Devices


Abstract:

When creating a mobile user interface, developers inevitably face a number of
challenges. Most of them are caused by the difference in developing user interfaces for
mobile and desktop applications. This white paper will explain how to create an effective
user interface for mobile devices and avoid the most common mistakes.




                                   By Michael Fedotov,
                                     Alex Khizhnyak,
                                   Renat Khasanshyn


                                    Altoros Systems, Inc.                 October 15, 2008
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                 Page 2 of 12




                                                Table of Contents
        1.   Executive Summary                                                                        3

        2.   Mistake #1: Poor Data Structuring and Ineffective Usage of Space                         3

        3.   Mistake #2: Ineffective Navigation                                                       6

        4.   Mistake #3: No Screen Resolution Optimization                                            8

        5.   Mistake #4: Overloading Mobile Hardware Resources                                       10

        6.   Mistake #5: Ignoring the Specific Technical Features of Mobile Devices                  10

        7.   Short Summary                                                                           11

        8.   About the Authors                                                                       12




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                            Page 3 of 12




          1. Executive Summary

        Every mobile application developer inevitably faces a number of serious challenges. Most
        challenges are caused by the drastic difference between developing user interfaces (UI) for
        mobile and for desktop applications, which is why even experience with one does not guarantee
        avoiding mistakes with another. The main factors that influence these challenges are the natural
        limits of mobile hardware resources, smaller screen resolutions, and so on. Typically, mistakes
        that developers make when creating mobile UIs are of the kind that is a lot easier to prevent
        than to fix post factum, since in practice ‘fixing’ them means rewriting certain fragments of the
        interface entirely.

        This white paper identifies the five mistakes most commonly made by mobile UI developers.
        The research was created as the result of trial and error during several years of mobile
        application development at Altoros Systems, a global service provider specializing in mobile
        development for software companies and interactive agencies. This white paper will explain how
        to avoid the most common mistakes, and how to ultimately create an effective user interface.




          2. Mistake #1: Poor Data Structuring and Ineffective Usage of Space
                                             Creating effective user interfaces is only one half of a
                                             developer’s work. In fact, it is the most crucial part of the work
          “Poor user                         that has to be carried out before development proper, in the
          interface design                   stage of business analysis and designing the UI. Remember
          can hardly be                      that poor user interface design can hardly be compensated for
          compensated for by                 by developer effort.
          developer effort.”

                                             2.1 Control positions and names

                                           Data fields and other controls should be thoughtfully
        structured; their positions on the screen have to be defined at this early stage, so as to avoid
        difficulties in the process of development. Texts and captions also have to be well thought out,
        aspiring to as much brevity as possible. For example, Full Name is preferable to User Full Name
        because it is shorter and, therefore, saves considerable screen space.

        Also, think about acronyms that could be used instead of full words, but remember to keep them
        intuitive.



        2.2 Using icons

        Using intuitive icons is another good way to save screen space. Not only is an icon smaller than
        a text inscription, it can also be more informative, as long as it is really intuitive (and achieving


                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                          Page 4 of 12



        that requires effort). Icons should be implemented in several sizes (16x16, 32x32, 48x48,
        64x64) and two color modes (16 colors and 16-bit color) to ensure that they look sharp on all
        screens. The small size of icons, however, is not a reason to cram the screen with them. Per-
        screen quantity regulations (see below) apply to icons just as much as any other controls.



        2.3 Grouping items into tabs

        Grouping controls into tabs is also something to think over carefully. Grouping should have clear
        and logical criteria, so that users have no problem finding what they are looking for, and do not
        find themselves in the disconcerting position of having to repeatedly fill in consecutive fields that
        have little or no relationship between with one another (putting a University Major field right after
        a First Name field, for example).



                                      Figure 2.1. Field distribution between tabs




                                              Source: Altoros Systems, Inc.


        For mobile devices, distributing controls between tabs adequately is especially important, as
        controls distribution is the ultimate way out of the scarce screen space problem.


        2.4 Using screen space efficiently

        It is important to make use of the whole screen space. Literally,           “Grouping related
        you should try to use every pixel. This means no unnecessary                menu items into
        graphics, borders, etc. On the other hand, overloading the                  sub-menus can
        screen with controls is also something to avoid. Not only does it           help save space
        cause difficulties with the perception of the screen contents by            considerably.”
        users, it also makes navigation inconvenient.




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                       Page 5 of 12



        2.5 Allowed numbers of controls and recommended sizes

        Ten is considered the upper limit of controls that can be displayed on the screen at the same
        time. If there are 11 or more controls, we recommend reducing the number of controls per
        screen. It is a good idea to put no more than three controls in a row and a maximum of two
        multiline blocks on a page. Typically you want to avoid putting scrollbars on data control groups.

        If there are more than three tabs, using multi-tab navigation is recommended.

        The name of a control that cannot have a label on it, such as an input field, should be put to the
        left of the control and aligned right. We suggest that the distance between a control and its
        name is 5 pixels.



        2.6 Menus and sub-menus

        Grouping related menu items into sub-menus can help save space considerably and create a
        more convenient user interface. On the other hand, it is important to keep this within reasonable
        limits: make sure your navigation does not get cumbersome due to numerous nested sub-
        menus. We recommend that every menu contain no more than seven items. We suggest that
        the height of every single item is 30 pixels.

                                                    Figure 2.2. Menus




                                              Source: Altoros Systems, Inc.



        2.7 Zoning

        To achieve maximum efficiency of screen space usage, zoning is a good approach. Divide the
        screen into several areas of fixed height and assign a specific function to each of them.

        In one of our projects, for example, we zoned the screen (of 320x240 resolution) like this:




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                       Page 6 of 12




                                                   Figure 2.3. Zoning




                                              Source: Altoros Systems, Inc.



        All of the zones had fixed height.

        We used Zone A for the Windows Navigation Panel.

        Zone B was used to display the data control group.

        The functioning of Zone C depended on the mode that was used:

                In what we called the TabNavigation mode, Zone C was where tabs were displayed.
                In the MultiTabNavigation mode, it displayed tabs and additional buttons.
                In the ButtonNavigation mode, buttons were displayed in Zone C.

        Finally, zone D was used for displaying application control buttons in different modes.



                3.      Mistake #2: Ineffective Navigation
        There are three main means of navigation: using the                   “There can be
        keyboard, stylus, or fingers.                                         nothing worse
                                                                              about a UI than if it
        One of the fundamental principles of building a mobile user           causes a user to
        interface is to minimize switching. Ideally, a user should be         make several
        able to stick to just one method of navigation all the time.          attempts to hit a
        Using a stylus is not recommended, since taking out the               button.”
        stylus and putting it back, is not always convenient. Many
        mobile devices do not have keyboards—on the other hand,


                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                         Page 7 of 12



        not all of them support touch navigation, either.

        Thus, if your mobile application is not oriented to a specific group of devices or intended for
        special usage that sets its own requirements to the user interface, it is a good idea to enable the
        support of both keyboard and touch navigation. At the same time, a user should be able to stick
        to one way of navigation without having to switch to another.

        Just as crucial as that, is to make sure that the size of controls is adequate for touch navigation.
        There can be nothing worse about a UI than if it causes a user to make several attempts to hit a
        button. Research shows that on a 2" QVGA screen 29 pixels is the smallest height and width for
        a button to be easy to hit. Also, never forget about the distance between controls: it should be
        there to prevent mis-hits. Avoid creating large gaps, however: we recommend that spacing
        between controls does not exceed 10 pixels.

        If your application has a menu, the menu should be assigned to the right soft key. The left soft
        key is typically for quick (common) actions, such as New. If a second menu is used, it can be
        assigned to the left soft key.

        Gesture navigation is a technology that any mobile application could benefit from, provided the
        implementation is smart enough. Messages from gesture navigation should be processed on
        the top level and forwarded using the cascade mode to lower levels (parent to child).

                                                 Figure 3.1. Night mode




                                              Source: Altoros Systems, Inc.

        Another thing that is worth considering, is implementing a night mode. Color perception is
        greatly dependent on light conditions; when there is little light, the human eye perceives dim
        colors better. In night mode, therefore, the gamma should be dimmer, which enables the user to
        work comfortably during nighttime.




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                       Page 8 of 12




                4.      Mistake #3: No Screen Resolution Optimization
        There are several standards of screen resolution for mobile devices. Usually, an application
        developer would want to support as many devices with a compatible operation system as
        possible, and to do so, the developer has to optimize their application for all standard screen
        resolutions. It is advised that any mobile application supports these resolutions: 240x320,
        320x240, 240x240, 320x320, 480x640, 640x480, and 480x480.

        Unless the specifications of the project require something different, we recommend the creation
        of layouts for QVGA screens that would be supported on VGA devices. A layout initially created
        for a QVGA resolution should work on VGA resolutions; a layout initially created for a VGA
        resolution is not guaranteed to work on QVGA resolutions.

        When we used zoning (see chapter 2) for one of our applications that supported QVGA, zone B
        was sized 240x240. If running on a device with a 240x240 px screen (and using zoning), zone C
        was hidden in our applications, as well as the navigation panels. They opened and were
        available for work upon clicking and holding.



                                        Figure 4.1. Zoning in 240x240 resolution




                                              Source: Altoros Systems, Inc.



        For devices with high screen resolutions (such as 800x600 and higher), we recommend creating
        a different user interface, based on the same design elements as the smaller version, but
        making use of the large screen space such devices have to offer. High screen resolution means
        more space to display information, which is a considerable advantage over smaller resolutions.
        The number of controls that can be put on the screen increases, but in no way does this enable
        a developer to overload the screen with controls. The number of controls is still limited for high
        resolution screens; the limit is just different.




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                           Page 9 of 12



                            Figure 4.2. User interface design on a high-resolution screen




                                              Source: Altoros Systems, Inc.



        Control layouts should be anchored and resized/moved when the window is resized. That will
        allow using one application for both QVGA and VGA-type resolutions.

        Most UI-friendly applications support portrait, landscape, and square screen modes. This will
        enable the application to run and will make it more convenient to use on mobile devices with
        screens of all types.

        If target devices are likely to be used in different orientations (landscape and portrait), it is wise
        to consider implementing dynamic changing of the view. Surely there are some obstacles to it,
        such as the necessity to rearrange the controls, treat scrollable elements, etc., but, if the
        implementation is done carefully, it can be quite a clever stroke.




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                       Page 10 of 12



            5. Mistake #4: Overloading Mobile Hardware Resources
        The scantiness of hardware resources affects mobile application development considerably. In
        fact, effective use of hardware resources becomes one of the primary goals of a developer.

        This means that one should not get overenthusiastic about adding animations, rounded corners,
        and other decorative features to the application. In fact, we recommend avoiding them
        completely. Customers pay—first and foremost—for functionality and efficiency. The customer
        can hardly consider an application effective if it does not run smoothly because it is packed with
        visual effects. With the right approach, it is absolutely possible to create an efficient and nice
        looking mobile application without resource-consuming visual effects.

        Another example: there are no mobile devices whose screens
        can display more than 65,536 colors. This means that storing
        pictures with the color depth of 24 or 32 bit is pointless. All it
                                                                              “If a modeless
        accomplishes is the consumption of more resources.
                                                                              window loses focus
        For a mobile application to run smoothly, it is important that the    to another window,
        balance between caching and calculating on request is                 there is no
        maintained. The former consumes RAM; the latter, CPU                  opportunity for the
        resources—and in mobile devices both are quite limited. If            user to retrieve it.”
        your mobile application is relatively resource-consuming, the
        only way to optimize its performance is to find and maintain the
        balance between CPU and RAM usage.



        6. Mistake #5: Ignoring the Specific Technical Features of Mobile
        Devices
        A mobile application developer has to keep in mind that different models of mobile devices, as
        well as different versions of operating systems, have their own specific features. Ironically,
        although the aim of a developer is to make his or her project as universal as possible, to
        achieve that he or she has to keep in mind the peculiar features of the different systems the
        application may be run on. More precisely, the developer must not just keep them in mind, but
        optimize the product, so that the difference between models does not become a hassle to the
        application functioning on any compatible device.

                Internet connection. For example, a mobile application can connect to the Internet in a
                variety of ways: via Wi-Fi, Bluetooth, GPRS, ActiveSync, etc. A mobile application
                developer should provide for all of these, instead of implementing just one means of
                connection.

                Modal and modeless forms. Another thing to be aware of is that if a modeless window
                of a mobile application loses focus to another window, there is no opportunity for the
                user to retrieve it. Therefore, a mobile application absolutely should use modal forms for
                the main application form, messages, and every form that has input controls, in order to
                exclude the risk of focus being lost. An application can use modeless forms, however,
                but either all these modeless forms have to be moved to the top when the main form is


                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                            Page 11 of 12



                activated, or a form management subsystem should be implemented, in which all
                modeless forms are children of the main form or its children.

                Operating systems. Ideally, a mobile application for an operating system of a certain
                version should work on all devices supporting this operating system, as long as the
                application is not intended to be used on mobile
                devices of a specific model.

                Most popular mobile applications for Windows                  “One should not get
                support the following operating systems: Windows
                                                                              overenthusiastic about
                Mobile 5.x, Windows Mobile 6.x, and Windows CE
                                                                              adding animations,
                5.x. Testing them on a wide range of devices is
                                                                              rounded corners, and
                recommended to ensure their maximum
                                                                              other decorative
                workability on different types of mobile devices.
                                                                              features.”


              7.        Short Summary
        To recap, the five most typical mistakes that mobile application user interface developers
        make are:

                   1) Not giving enough consideration to the structure of a user interface before actually
                      starting to develop it; creating a structure that is initially ineffective owing to unwise
                      space usage (putting too many controls on the screen or leaving too much empty
                      space) and poor logic in distributing controls between tabs.

                   2) Creating navigation that is inconvenient or ineffective (i.e. requires switching
                      between means of control, such as keyboard, stylus, and touch screen); making
                      controls too small or too closely spaced to each other to hit easily when using
                      finger navigation.

                   3) Ignoring the fact that a user might run the application on a device with a screen
                      resolution different than the one on the developer’s device, and, therefore, not
                      optimizing the application for different resolutions and orientations (portrait,
                      landscape, square screen mode); not implementing support for devices with big
                      resolutions.

                   4) Overusing the mobile devices’ hardware resources by not regulating the balance
                      between caching and calculating on-demand, implementing unnecessary design
                      elements, etc.

                   5) Not ensuring the application’s compatibility with the maximum number of mobile
                      devices possible; ignoring specific features of different devices.

        Avoiding and fixing the foregoing mistakes can be a very hard thing to do, sometimes it is
        practically unfeasible. Looking out for them, however, is imperative for every mobile application
        developer who wants his or her UI to be truly user-friendly and convenient. Otherwise,
        developers risk ending up with a user interface adopting poorly.




                                                   Altoros Systems, Inc.
Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices                              Page 12 of 12



              8.        About the Authors
        Michael Fedotov is Technology Evangelist at Altoros Systems, Inc. and has been working as a
        freelance journalist for a number of IT-related periodicals since 2003, covering next to all
        aspects of IT, and specifically software developments, in an abundance of articles. He has
        taken part in several scientific conferences and provided service for many more participants
        creating and holding their presentations. He also has experience working as an interpreter and
        presently is studying Japanese.

        Alex Khizhnyak is Chief Evangelist at Altoros Systems, Inc. and co-founder of the Belarus Java
        User Group. Since 1998, he has gained experience as an author, editor, media specialist, event
        manager, conference speaker, and blogger. So far, his educational background combines IT,
        programming, economics, and journalism.

        Renat Khasanshyn is the founder and CEO of Altoros Systems, Inc. Mr. Khasanshyn speaks
        frequently at a wide range of events, and most recently was selected as a finalist for the 2007
        Emerging Executive of the Year award by the Massachusetts Technology Leadership Council.
        Prior to founding Altoros Systems, Mr. Khasanshyn was VP of Engineering for Tampa-based
        insurance company, PriMed, Inc. Mr. Khasanshyn is a co-founder of the Belarus Java User
        Group and studied Engineering at the Belarusian State Technical University.

        Altoros Systems, Inc. is a global software delivery acceleration specialist that provides focused outsourced
        software product engineering, independent Quality Assurance, and testing services to software
        organizations and information-driven enterprises. Founded in 2001 and headquartered in Sunnyvale,
        California, Altoros has representative offices in Western Massachusetts and Norway. It manages a
        software development center in Eastern Europe out of its offices in Minsk, Belarus. For more information,
        please visit www.altoros.com .




                                                   Altoros Systems, Inc.

Mais conteúdo relacionado

Destaque

Accessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIAAccessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIADirk Ginader
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Dirk Ginader
 
The 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityThe 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityDirk Ginader
 
1.9. el uso de can y can't, oraciones y preguntas con este verbo
1.9.  el uso de can y can't, oraciones y preguntas con este verbo1.9.  el uso de can y can't, oraciones y preguntas con este verbo
1.9. el uso de can y can't, oraciones y preguntas con este verboAlberto Carranza Garcia
 
Ubuntu 16.04 LTS Security Features
Ubuntu 16.04 LTS Security FeaturesUbuntu 16.04 LTS Security Features
Ubuntu 16.04 LTS Security FeaturesDustin Kirkland
 
Javascript done right
Javascript done rightJavascript done right
Javascript done rightDirk Ginader
 

Destaque (6)

Accessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIAAccessible Javascript with and without WAI ARIA
Accessible Javascript with and without WAI ARIA
 
Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010Javascript auf Client und Server mit node.js - webtech 2010
Javascript auf Client und Server mit node.js - webtech 2010
 
The 5 Layers of Web Accessibility
The 5 Layers of Web AccessibilityThe 5 Layers of Web Accessibility
The 5 Layers of Web Accessibility
 
1.9. el uso de can y can't, oraciones y preguntas con este verbo
1.9.  el uso de can y can't, oraciones y preguntas con este verbo1.9.  el uso de can y can't, oraciones y preguntas con este verbo
1.9. el uso de can y can't, oraciones y preguntas con este verbo
 
Ubuntu 16.04 LTS Security Features
Ubuntu 16.04 LTS Security FeaturesUbuntu 16.04 LTS Security Features
Ubuntu 16.04 LTS Security Features
 
Javascript done right
Javascript done rightJavascript done right
Javascript done right
 

Semelhante a Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices

Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldWorklight
 
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docxhoney725342
 
User Interface Design for Web and Mobile Devices
User Interface Design for Web and Mobile DevicesUser Interface Design for Web and Mobile Devices
User Interface Design for Web and Mobile DevicesIRJET Journal
 
Designing With User In Mind
Designing With User In MindDesigning With User In Mind
Designing With User In Mindintuitiv.de
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationSalocin Dot TEN
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdfruvabebe
 
Comparison of Concurrent Mobile OS Characteristics
Comparison of Concurrent Mobile OS CharacteristicsComparison of Concurrent Mobile OS Characteristics
Comparison of Concurrent Mobile OS CharacteristicsIJLT EMAS
 
Introduction To Usability
Introduction To UsabilityIntroduction To Usability
Introduction To UsabilityOvidiu Von M
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Designghayour abbas
 
Chrome for android_devfestx
Chrome for android_devfestxChrome for android_devfestx
Chrome for android_devfestxDominic Travers
 
The Laws of User Experience: Making it or breaking it with the UX Factor
The Laws of User Experience: Making it or breaking it with the UX FactorThe Laws of User Experience: Making it or breaking it with the UX Factor
The Laws of User Experience: Making it or breaking it with the UX FactorEffectiveUI
 
The Laws of User Experience: Making it or Breaking It with the UX Factor
The Laws of User Experience: Making it or Breaking It with the UX FactorThe Laws of User Experience: Making it or Breaking It with the UX Factor
The Laws of User Experience: Making it or Breaking It with the UX FactorEffective
 
user-interface-design-131010063550-phpapp01.pdf
user-interface-design-131010063550-phpapp01.pdfuser-interface-design-131010063550-phpapp01.pdf
user-interface-design-131010063550-phpapp01.pdfLPhiHng3
 
Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Belal Mohammed
 
The Pros And Cons Of Respration System
The Pros And Cons Of Respration SystemThe Pros And Cons Of Respration System
The Pros And Cons Of Respration SystemJasmine Culbreth
 
User Experience for the Experienced Presentation
User Experience for the Experienced PresentationUser Experience for the Experienced Presentation
User Experience for the Experienced PresentationAmanda Lopez, PMP
 
The User Interface-Introduction .ppt
The User Interface-Introduction .pptThe User Interface-Introduction .ppt
The User Interface-Introduction .pptssuserd67eb9
 

Semelhante a Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices (20)

hema ppt (2).pptx
hema ppt (2).pptxhema ppt (2).pptx
hema ppt (2).pptx
 
Designing Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented WorldDesigning Rich Mobile Apps in a Fragmented World
Designing Rich Mobile Apps in a Fragmented World
 
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx
1 PROGRAM ISEM RESEARCH PAPER FOR APPLIED.docx
 
User Interface Design for Web and Mobile Devices
User Interface Design for Web and Mobile DevicesUser Interface Design for Web and Mobile Devices
User Interface Design for Web and Mobile Devices
 
Designing With User In Mind
Designing With User In MindDesigning With User In Mind
Designing With User In Mind
 
CSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 DocumentationCSE 5930 Assignment 2 Documentation
CSE 5930 Assignment 2 Documentation
 
Embedded Systems.pdf
Embedded Systems.pdfEmbedded Systems.pdf
Embedded Systems.pdf
 
Comparison of Concurrent Mobile OS Characteristics
Comparison of Concurrent Mobile OS CharacteristicsComparison of Concurrent Mobile OS Characteristics
Comparison of Concurrent Mobile OS Characteristics
 
Unit v
Unit vUnit v
Unit v
 
Introduction To Usability
Introduction To UsabilityIntroduction To Usability
Introduction To Usability
 
SWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface DesignSWE-401 - 8. Software User Interface Design
SWE-401 - 8. Software User Interface Design
 
Chrome for android_devfestx
Chrome for android_devfestxChrome for android_devfestx
Chrome for android_devfestx
 
The Laws of User Experience: Making it or breaking it with the UX Factor
The Laws of User Experience: Making it or breaking it with the UX FactorThe Laws of User Experience: Making it or breaking it with the UX Factor
The Laws of User Experience: Making it or breaking it with the UX Factor
 
The Laws of User Experience: Making it or Breaking It with the UX Factor
The Laws of User Experience: Making it or Breaking It with the UX FactorThe Laws of User Experience: Making it or Breaking It with the UX Factor
The Laws of User Experience: Making it or Breaking It with the UX Factor
 
user-interface-design-131010063550-phpapp01.pdf
user-interface-design-131010063550-phpapp01.pdfuser-interface-design-131010063550-phpapp01.pdf
user-interface-design-131010063550-phpapp01.pdf
 
User interface-design
User interface-designUser interface-design
User interface-design
 
Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.Different Web Architectures. UI VS UX and future improvements.
Different Web Architectures. UI VS UX and future improvements.
 
The Pros And Cons Of Respration System
The Pros And Cons Of Respration SystemThe Pros And Cons Of Respration System
The Pros And Cons Of Respration System
 
User Experience for the Experienced Presentation
User Experience for the Experienced PresentationUser Experience for the Experienced Presentation
User Experience for the Experienced Presentation
 
The User Interface-Introduction .ppt
The User Interface-Introduction .pptThe User Interface-Introduction .ppt
The User Interface-Introduction .ppt
 

Mais de Altoros

Maturing with Kubernetes
Maturing with KubernetesMaturing with Kubernetes
Maturing with KubernetesAltoros
 
Kubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity AssessmentKubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity AssessmentAltoros
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityAltoros
 
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain NetworksSGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain NetworksAltoros
 
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...Altoros
 
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
A Zero-Knowledge Proof:  Improving Privacy on a BlockchainA Zero-Knowledge Proof:  Improving Privacy on a Blockchain
A Zero-Knowledge Proof: Improving Privacy on a BlockchainAltoros
 
Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Altoros
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and KubernetesAltoros
 
Distributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter TradingDistributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter TradingAltoros
 
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple Nodes5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple NodesAltoros
 
Deploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with KubesprayDeploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with KubesprayAltoros
 
UAA for Kubernetes
UAA for KubernetesUAA for Kubernetes
UAA for KubernetesAltoros
 
Troubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud FoundryTroubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud FoundryAltoros
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFAltoros
 
How to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment UnattendedHow to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment UnattendedAltoros
 
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and LogsCloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and LogsAltoros
 
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based SolutionSmart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based SolutionAltoros
 
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesNavigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesAltoros
 
AI as a Catalyst for IoT
AI as a Catalyst for IoTAI as a Catalyst for IoT
AI as a Catalyst for IoTAltoros
 
Over-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and TreatmentOver-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and TreatmentAltoros
 

Mais de Altoros (20)

Maturing with Kubernetes
Maturing with KubernetesMaturing with Kubernetes
Maturing with Kubernetes
 
Kubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity AssessmentKubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity Assessment
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment Maturity
 
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain NetworksSGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
 
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
 
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
A Zero-Knowledge Proof:  Improving Privacy on a BlockchainA Zero-Knowledge Proof:  Improving Privacy on a Blockchain
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
 
Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
 
Distributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter TradingDistributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter Trading
 
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple Nodes5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
 
Deploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with KubesprayDeploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with Kubespray
 
UAA for Kubernetes
UAA for KubernetesUAA for Kubernetes
UAA for Kubernetes
 
Troubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud FoundryTroubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud Foundry
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCF
 
How to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment UnattendedHow to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment Unattended
 
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and LogsCloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
 
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based SolutionSmart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based Solution
 
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesNavigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
 
AI as a Catalyst for IoT
AI as a Catalyst for IoTAI as a Catalyst for IoT
AI as a Catalyst for IoT
 
Over-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and TreatmentOver-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and Treatment
 

Último

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 

Último (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 

Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices

  • 1. Handbook and Tips: Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Abstract: When creating a mobile user interface, developers inevitably face a number of challenges. Most of them are caused by the difference in developing user interfaces for mobile and desktop applications. This white paper will explain how to create an effective user interface for mobile devices and avoid the most common mistakes. By Michael Fedotov, Alex Khizhnyak, Renat Khasanshyn Altoros Systems, Inc. October 15, 2008
  • 2. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 2 of 12 Table of Contents 1. Executive Summary 3 2. Mistake #1: Poor Data Structuring and Ineffective Usage of Space 3 3. Mistake #2: Ineffective Navigation 6 4. Mistake #3: No Screen Resolution Optimization 8 5. Mistake #4: Overloading Mobile Hardware Resources 10 6. Mistake #5: Ignoring the Specific Technical Features of Mobile Devices 10 7. Short Summary 11 8. About the Authors 12 Altoros Systems, Inc.
  • 3. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 3 of 12 1. Executive Summary Every mobile application developer inevitably faces a number of serious challenges. Most challenges are caused by the drastic difference between developing user interfaces (UI) for mobile and for desktop applications, which is why even experience with one does not guarantee avoiding mistakes with another. The main factors that influence these challenges are the natural limits of mobile hardware resources, smaller screen resolutions, and so on. Typically, mistakes that developers make when creating mobile UIs are of the kind that is a lot easier to prevent than to fix post factum, since in practice ‘fixing’ them means rewriting certain fragments of the interface entirely. This white paper identifies the five mistakes most commonly made by mobile UI developers. The research was created as the result of trial and error during several years of mobile application development at Altoros Systems, a global service provider specializing in mobile development for software companies and interactive agencies. This white paper will explain how to avoid the most common mistakes, and how to ultimately create an effective user interface. 2. Mistake #1: Poor Data Structuring and Ineffective Usage of Space Creating effective user interfaces is only one half of a developer’s work. In fact, it is the most crucial part of the work “Poor user that has to be carried out before development proper, in the interface design stage of business analysis and designing the UI. Remember can hardly be that poor user interface design can hardly be compensated for compensated for by by developer effort. developer effort.” 2.1 Control positions and names Data fields and other controls should be thoughtfully structured; their positions on the screen have to be defined at this early stage, so as to avoid difficulties in the process of development. Texts and captions also have to be well thought out, aspiring to as much brevity as possible. For example, Full Name is preferable to User Full Name because it is shorter and, therefore, saves considerable screen space. Also, think about acronyms that could be used instead of full words, but remember to keep them intuitive. 2.2 Using icons Using intuitive icons is another good way to save screen space. Not only is an icon smaller than a text inscription, it can also be more informative, as long as it is really intuitive (and achieving Altoros Systems, Inc.
  • 4. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 4 of 12 that requires effort). Icons should be implemented in several sizes (16x16, 32x32, 48x48, 64x64) and two color modes (16 colors and 16-bit color) to ensure that they look sharp on all screens. The small size of icons, however, is not a reason to cram the screen with them. Per- screen quantity regulations (see below) apply to icons just as much as any other controls. 2.3 Grouping items into tabs Grouping controls into tabs is also something to think over carefully. Grouping should have clear and logical criteria, so that users have no problem finding what they are looking for, and do not find themselves in the disconcerting position of having to repeatedly fill in consecutive fields that have little or no relationship between with one another (putting a University Major field right after a First Name field, for example). Figure 2.1. Field distribution between tabs Source: Altoros Systems, Inc. For mobile devices, distributing controls between tabs adequately is especially important, as controls distribution is the ultimate way out of the scarce screen space problem. 2.4 Using screen space efficiently It is important to make use of the whole screen space. Literally, “Grouping related you should try to use every pixel. This means no unnecessary menu items into graphics, borders, etc. On the other hand, overloading the sub-menus can screen with controls is also something to avoid. Not only does it help save space cause difficulties with the perception of the screen contents by considerably.” users, it also makes navigation inconvenient. Altoros Systems, Inc.
  • 5. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 5 of 12 2.5 Allowed numbers of controls and recommended sizes Ten is considered the upper limit of controls that can be displayed on the screen at the same time. If there are 11 or more controls, we recommend reducing the number of controls per screen. It is a good idea to put no more than three controls in a row and a maximum of two multiline blocks on a page. Typically you want to avoid putting scrollbars on data control groups. If there are more than three tabs, using multi-tab navigation is recommended. The name of a control that cannot have a label on it, such as an input field, should be put to the left of the control and aligned right. We suggest that the distance between a control and its name is 5 pixels. 2.6 Menus and sub-menus Grouping related menu items into sub-menus can help save space considerably and create a more convenient user interface. On the other hand, it is important to keep this within reasonable limits: make sure your navigation does not get cumbersome due to numerous nested sub- menus. We recommend that every menu contain no more than seven items. We suggest that the height of every single item is 30 pixels. Figure 2.2. Menus Source: Altoros Systems, Inc. 2.7 Zoning To achieve maximum efficiency of screen space usage, zoning is a good approach. Divide the screen into several areas of fixed height and assign a specific function to each of them. In one of our projects, for example, we zoned the screen (of 320x240 resolution) like this: Altoros Systems, Inc.
  • 6. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 6 of 12 Figure 2.3. Zoning Source: Altoros Systems, Inc. All of the zones had fixed height. We used Zone A for the Windows Navigation Panel. Zone B was used to display the data control group. The functioning of Zone C depended on the mode that was used: In what we called the TabNavigation mode, Zone C was where tabs were displayed. In the MultiTabNavigation mode, it displayed tabs and additional buttons. In the ButtonNavigation mode, buttons were displayed in Zone C. Finally, zone D was used for displaying application control buttons in different modes. 3. Mistake #2: Ineffective Navigation There are three main means of navigation: using the “There can be keyboard, stylus, or fingers. nothing worse about a UI than if it One of the fundamental principles of building a mobile user causes a user to interface is to minimize switching. Ideally, a user should be make several able to stick to just one method of navigation all the time. attempts to hit a Using a stylus is not recommended, since taking out the button.” stylus and putting it back, is not always convenient. Many mobile devices do not have keyboards—on the other hand, Altoros Systems, Inc.
  • 7. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 7 of 12 not all of them support touch navigation, either. Thus, if your mobile application is not oriented to a specific group of devices or intended for special usage that sets its own requirements to the user interface, it is a good idea to enable the support of both keyboard and touch navigation. At the same time, a user should be able to stick to one way of navigation without having to switch to another. Just as crucial as that, is to make sure that the size of controls is adequate for touch navigation. There can be nothing worse about a UI than if it causes a user to make several attempts to hit a button. Research shows that on a 2" QVGA screen 29 pixels is the smallest height and width for a button to be easy to hit. Also, never forget about the distance between controls: it should be there to prevent mis-hits. Avoid creating large gaps, however: we recommend that spacing between controls does not exceed 10 pixels. If your application has a menu, the menu should be assigned to the right soft key. The left soft key is typically for quick (common) actions, such as New. If a second menu is used, it can be assigned to the left soft key. Gesture navigation is a technology that any mobile application could benefit from, provided the implementation is smart enough. Messages from gesture navigation should be processed on the top level and forwarded using the cascade mode to lower levels (parent to child). Figure 3.1. Night mode Source: Altoros Systems, Inc. Another thing that is worth considering, is implementing a night mode. Color perception is greatly dependent on light conditions; when there is little light, the human eye perceives dim colors better. In night mode, therefore, the gamma should be dimmer, which enables the user to work comfortably during nighttime. Altoros Systems, Inc.
  • 8. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 8 of 12 4. Mistake #3: No Screen Resolution Optimization There are several standards of screen resolution for mobile devices. Usually, an application developer would want to support as many devices with a compatible operation system as possible, and to do so, the developer has to optimize their application for all standard screen resolutions. It is advised that any mobile application supports these resolutions: 240x320, 320x240, 240x240, 320x320, 480x640, 640x480, and 480x480. Unless the specifications of the project require something different, we recommend the creation of layouts for QVGA screens that would be supported on VGA devices. A layout initially created for a QVGA resolution should work on VGA resolutions; a layout initially created for a VGA resolution is not guaranteed to work on QVGA resolutions. When we used zoning (see chapter 2) for one of our applications that supported QVGA, zone B was sized 240x240. If running on a device with a 240x240 px screen (and using zoning), zone C was hidden in our applications, as well as the navigation panels. They opened and were available for work upon clicking and holding. Figure 4.1. Zoning in 240x240 resolution Source: Altoros Systems, Inc. For devices with high screen resolutions (such as 800x600 and higher), we recommend creating a different user interface, based on the same design elements as the smaller version, but making use of the large screen space such devices have to offer. High screen resolution means more space to display information, which is a considerable advantage over smaller resolutions. The number of controls that can be put on the screen increases, but in no way does this enable a developer to overload the screen with controls. The number of controls is still limited for high resolution screens; the limit is just different. Altoros Systems, Inc.
  • 9. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 9 of 12 Figure 4.2. User interface design on a high-resolution screen Source: Altoros Systems, Inc. Control layouts should be anchored and resized/moved when the window is resized. That will allow using one application for both QVGA and VGA-type resolutions. Most UI-friendly applications support portrait, landscape, and square screen modes. This will enable the application to run and will make it more convenient to use on mobile devices with screens of all types. If target devices are likely to be used in different orientations (landscape and portrait), it is wise to consider implementing dynamic changing of the view. Surely there are some obstacles to it, such as the necessity to rearrange the controls, treat scrollable elements, etc., but, if the implementation is done carefully, it can be quite a clever stroke. Altoros Systems, Inc.
  • 10. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 10 of 12 5. Mistake #4: Overloading Mobile Hardware Resources The scantiness of hardware resources affects mobile application development considerably. In fact, effective use of hardware resources becomes one of the primary goals of a developer. This means that one should not get overenthusiastic about adding animations, rounded corners, and other decorative features to the application. In fact, we recommend avoiding them completely. Customers pay—first and foremost—for functionality and efficiency. The customer can hardly consider an application effective if it does not run smoothly because it is packed with visual effects. With the right approach, it is absolutely possible to create an efficient and nice looking mobile application without resource-consuming visual effects. Another example: there are no mobile devices whose screens can display more than 65,536 colors. This means that storing pictures with the color depth of 24 or 32 bit is pointless. All it “If a modeless accomplishes is the consumption of more resources. window loses focus For a mobile application to run smoothly, it is important that the to another window, balance between caching and calculating on request is there is no maintained. The former consumes RAM; the latter, CPU opportunity for the resources—and in mobile devices both are quite limited. If user to retrieve it.” your mobile application is relatively resource-consuming, the only way to optimize its performance is to find and maintain the balance between CPU and RAM usage. 6. Mistake #5: Ignoring the Specific Technical Features of Mobile Devices A mobile application developer has to keep in mind that different models of mobile devices, as well as different versions of operating systems, have their own specific features. Ironically, although the aim of a developer is to make his or her project as universal as possible, to achieve that he or she has to keep in mind the peculiar features of the different systems the application may be run on. More precisely, the developer must not just keep them in mind, but optimize the product, so that the difference between models does not become a hassle to the application functioning on any compatible device. Internet connection. For example, a mobile application can connect to the Internet in a variety of ways: via Wi-Fi, Bluetooth, GPRS, ActiveSync, etc. A mobile application developer should provide for all of these, instead of implementing just one means of connection. Modal and modeless forms. Another thing to be aware of is that if a modeless window of a mobile application loses focus to another window, there is no opportunity for the user to retrieve it. Therefore, a mobile application absolutely should use modal forms for the main application form, messages, and every form that has input controls, in order to exclude the risk of focus being lost. An application can use modeless forms, however, but either all these modeless forms have to be moved to the top when the main form is Altoros Systems, Inc.
  • 11. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 11 of 12 activated, or a form management subsystem should be implemented, in which all modeless forms are children of the main form or its children. Operating systems. Ideally, a mobile application for an operating system of a certain version should work on all devices supporting this operating system, as long as the application is not intended to be used on mobile devices of a specific model. Most popular mobile applications for Windows “One should not get support the following operating systems: Windows overenthusiastic about Mobile 5.x, Windows Mobile 6.x, and Windows CE adding animations, 5.x. Testing them on a wide range of devices is rounded corners, and recommended to ensure their maximum other decorative workability on different types of mobile devices. features.” 7. Short Summary To recap, the five most typical mistakes that mobile application user interface developers make are: 1) Not giving enough consideration to the structure of a user interface before actually starting to develop it; creating a structure that is initially ineffective owing to unwise space usage (putting too many controls on the screen or leaving too much empty space) and poor logic in distributing controls between tabs. 2) Creating navigation that is inconvenient or ineffective (i.e. requires switching between means of control, such as keyboard, stylus, and touch screen); making controls too small or too closely spaced to each other to hit easily when using finger navigation. 3) Ignoring the fact that a user might run the application on a device with a screen resolution different than the one on the developer’s device, and, therefore, not optimizing the application for different resolutions and orientations (portrait, landscape, square screen mode); not implementing support for devices with big resolutions. 4) Overusing the mobile devices’ hardware resources by not regulating the balance between caching and calculating on-demand, implementing unnecessary design elements, etc. 5) Not ensuring the application’s compatibility with the maximum number of mobile devices possible; ignoring specific features of different devices. Avoiding and fixing the foregoing mistakes can be a very hard thing to do, sometimes it is practically unfeasible. Looking out for them, however, is imperative for every mobile application developer who wants his or her UI to be truly user-friendly and convenient. Otherwise, developers risk ending up with a user interface adopting poorly. Altoros Systems, Inc.
  • 12. Five Mistakes to Avoid in Creating User Interfaces for Mobile Devices Page 12 of 12 8. About the Authors Michael Fedotov is Technology Evangelist at Altoros Systems, Inc. and has been working as a freelance journalist for a number of IT-related periodicals since 2003, covering next to all aspects of IT, and specifically software developments, in an abundance of articles. He has taken part in several scientific conferences and provided service for many more participants creating and holding their presentations. He also has experience working as an interpreter and presently is studying Japanese. Alex Khizhnyak is Chief Evangelist at Altoros Systems, Inc. and co-founder of the Belarus Java User Group. Since 1998, he has gained experience as an author, editor, media specialist, event manager, conference speaker, and blogger. So far, his educational background combines IT, programming, economics, and journalism. Renat Khasanshyn is the founder and CEO of Altoros Systems, Inc. Mr. Khasanshyn speaks frequently at a wide range of events, and most recently was selected as a finalist for the 2007 Emerging Executive of the Year award by the Massachusetts Technology Leadership Council. Prior to founding Altoros Systems, Mr. Khasanshyn was VP of Engineering for Tampa-based insurance company, PriMed, Inc. Mr. Khasanshyn is a co-founder of the Belarus Java User Group and studied Engineering at the Belarusian State Technical University. Altoros Systems, Inc. is a global software delivery acceleration specialist that provides focused outsourced software product engineering, independent Quality Assurance, and testing services to software organizations and information-driven enterprises. Founded in 2001 and headquartered in Sunnyvale, California, Altoros has representative offices in Western Massachusetts and Norway. It manages a software development center in Eastern Europe out of its offices in Minsk, Belarus. For more information, please visit www.altoros.com . Altoros Systems, Inc.