ANDROID DESIGN PATTERNS IN MOBILE
APPLICATION DEVELOPMENT
GRIGOROPOULOS MICHAIL
Master of Science in Networking and Data Communications
THESIS PRESENTATION
Kingston University London
Abstract
Design patterns help developers and designers to
solve common design problems by using tested and
user friendly solutions. The term can be applied to
both directions to build a thing and the thing itself.
The purpose of this study is to present such
solutions and examine their applicability in android
application development and user experience. For
the study's purposes, an application called
"Messeme" was developed based on some of the
design patterns that are presented in the Second
section of this Thesis.
Introduction
Design Patterns
• Design patterns in software design are defined as tested
solutions to solving design problems. The term can be
applied to both directions to build a thing and the thing
itself.
• A pattern can describe a design problem and the procedure
or the object that can be used to solve this problem or even
an instance of the problem.
• Design patterns are formalized best practices that the
developer or the designer can use to solve common
problems when designing software.
• A Design Pattern can also be described as the intermediate
between the levels of a programming paradigm and a
concrete algorithm.
The History of Design Patterns
• The whole idea of design patterns was born
from architects who investigated automated,
computerized building design in the 60s.
• This trend was later known as modular
construction/design.
• Christopher Alexander was the main exponent
of the idea at the time.
• Christopher Alexander is considered to be the
father of the pattern language movement.
Why do we need Design Patterns?
• Since design patterns are proven solutions to a
problem, they are already tested and known to work
effectively
• Valuable time and effort can be saved from the
development of a project by using patterns
• A pattern can be customized in order to fit the project's
requirements
• By using design patterns developers can deliver to the
user a more friendly and easy to learn Application
• Design Patterns do not tell the developer/designer how
to code/design an application but instead it uses values
to determine which is the best solution to his problem
Structure of a Design Pattern (1/2)
• Design patterns are described by authors in
highly structured documentation
• Usually uses a template in order to identify
the information that is needed to understand
and solve a software problem
• There is no standard agreement on how this
template should be but it usually resembles
the one shown in Table 1
Structure of a Design Pattern (2/2)
Term Description
Pattern Name
Describes the essence of the pattern in a short, but
expressive, name
Intent Describes what the pattern does
Also Known As List any synonyms for the pattern
Motivation
Provides an example of a problem and how the pattern
solves that problem
Applicability Lists the situations where the pattern is applicable
Structure
Set of diagrams of the classes and objects that depict the
pattern
Participants
Describes the classes and objects that participate in the
design pattern and their responsibilities
Collaborations
Describes how the participants collaborate to carry out their
responsibilities
Consequences
Describes the forces that exist with the pattern and the
benefits, trade-offs, and the variable that is isolated by the
pattern
Table 1: Design pattern common template
Design Anti-patterns
• Anti-patterns, also called pitfalls, are classes of
commonly reinvented bad solutions to
problems
• Anti-patterns should always be avoided when
designing a project, so they are studied in
order to be recognizable when investigating
possible solutions to problems
Android OS
• Android is today's most popular Operating System running on
mobile devices
• It runs on 80% of mobile devices worldwide
• It was designed and launched in 2007 by Google and revealed
commercially in September of 2008
• Android OS is based on the Linux Kernel
• After android version 5.0 each application runs on its own process
and instance of the Android Runtime (ART)
• Java* is used for the development of android applications that
control the device with Java libraries developed by Google
• XML is used by Android for the creation of layout files
• Each Android application lives in each own, protected by several
features
Android Application Design Principles
(1/2)
• Android uses a new design metaphor inspired by paper and ink that
provides a reassuring sense of tactility, which is called “Material
Design”
• The use of familiar tactile attributes helps users quickly understand
affordances
• The flexibility of the material creates new affordances that
supersede those in the physical world, without breaking the rules of
physics
• Measuring and sizing things in DPs ensures your designs have a
consistent physical size across devices of varying density
• The fundamentals of light, surface, and movement are key to
conveying how objects move, interact, and exist in space and in
relation to each other
Android Application Design Principles
(2/2)
The basic principles Material Design is based on:
• Human-Mobile Interaction Observation
• Variety in Form Factors
• Simplicity and Sophistication
• Cross-Channel Experiences
Application Design Patterns
and Anti-Patterns
Interaction (1/3)
• Gestures - Selecting the right gesture for an action means that the
system will be user-friendly and easy to learn and use.
• Smart Keyboards and Controls - Using smart keyboards, means that
different type of keyboard appears to the user according to the type
of data inserted to the selected field
• Cancel/OK Buttons - Action Buttons must be positioned as
Cancel/OK on the top or bottom of a form. The primary button (OK)
must be on the right in order to be reachable from right-handed
users
• Auto-Complete and Default Values - Using default values means
presetting the value of a field, so that the user does not have to fill
it if not necessary. Auto Complete functions are functions that
prompt the user to choose from a possible list of values and auto-
complete his entry as he types
Interaction (2/3)
• Easy Login/ Registration - An easy-to-fill registration
form, is a registration form that the user can complete
easily, with the least amount of typing and time
• Search, Sort and Filter - Searching and sorting data in
an application can be easier and bring better results
when using patterns like implicit or explicit search,
auto-complete, onscreen sorting and filters
• Swiping - -Swiping means allowing the user to move
content on the screen to perform actions like Deletion,
Archiving, accepting, rejecting, changing screens or any
other action related to the application's functionalities
Interaction (3/3)
• Date and Time Wheel - Date and Time when is a
control on a field that brings up a date/time
picker light-box. The picker resembles a wheel
which the user can swipe vertically to scroll
between a range of dates or time
• Floating Action Button - Floating action buttons
are used for a special type of promoted action
• Pull To Refresh - Refresh content by pulling or
swiping down the results
Navigation (1/2)
• Action Bars - The top section of an application
can be used as an action bar that shows different
buttons according to the action performed
• Overflow Menus - Overflow menus are menus
that appear or pop up over the main content of
the application
• PopOver - PopUp - Context Menus - PopOver,
PopUp and context menus are menus that are
triggered when the user touches an arrow sign or
action buttons or, in many cases, by long-pressing
an item
Navigation (2/2)
• Swiss-Army-Knife Navigation - A Swiss-Army-Knife is a tool
that has foldable hidden blade and tools inside the handle.
Swiss-Army-Knife Navigation has the exact same ability and
the pattern took its name from that
• Swiping Between Tabs Navigation - Swiping between tabs
and views navigation allow users to navigate between views
by swiping left or right on the content area
• Vertical Navigation - Grouped List of Links - Vertical
scrolling Navigation, is presenting important sections of the
UI in list views that are vertically scrollable
• Sticky/Fixed Navigation - The top, bottom or side
navigation or menu is static and stays always in place even
when the view is scrolled
Presentation (1/2)
• Hub-and-Spoke Homescreen - Hub-and-Spoke
pattern, lists all the major parts of the application
on the Homescreen or "Hub"
• Dashboard / News Feed - Dashboard pattern,
presents critical information for the user on the
application's Homescreen in a Dashboard form
• Transparency - Transparency pattern is the use of
gradients and fading overlays in menus,
notifications or other layers, to show that there is
layered content below
Presentation (2/2)
• Huge Buttons - Use huge buttons when there is
no space restriction. Full width buttons is a
pattern that is often used in popular applications.
Basic choice buttons should share the full width
of the screen
• Full Screen Mode - In Full Screen Mode, the UI is
minimized and users only see the content
• Spinners - When the applications loads data,
fetches data from the internet or performs a
procedure a spinner appears on the screen and
content becomes faded
Feedback
• Toast Messages/Alerts - In the original Android
implementation Toast alerts are messages that
pop up from the bottom of the screen
• Pop-Up Alert - Pop-Up alerts are flow disrupters
that inform the user with text and icons and ask
for an action to be taken
• Inline Error Messages - When an input error
occurs the system notifies the user by showing an
error indication next to the field that is not
properly filled or below it
Anti-Patterns (1/4)
• Novel Notions - Attending to translate old
interaction models to new innovative ones is not
always the best idea especially when non-
standard UI elements are introduced
• Control Mismatch - Using non standard custom
controls is an anti-pattern.
• Icon Mismatch - Using non standard custom icons
is an anti-pattern
• Gesture Mismatch - Using non standard custom
gestures is an anti-pattern
Anti-Patterns (2/4)
• Model Mismatch - Not using the right flows that a user can logically
follow means bad user experience and difficulty in operating the
application
• "Idiot" Boxes - The user's flow should not be disrupted with
unnecessary Boxes/Pop Ups. Interrupting the user's flow for no
urgent reason is something to avoid in order to keep the user's
experience in high levels
• Chart Junk - Chart Junk is the all the visual elements in graphs and
charts that are not necessary for the user to see and does not need
them to comprehend the results
• Bottom tabs - While bottom tabs can be used a design Pattern,
sometimes it can also be an anti-pattern
• Drill-down List Navigation - A deep list-based navigation, known as
drill-down navigation, is where lists lead to more lists which lead to
even more lists. It is often inefficient and difficult to use
Anti-Patterns (3/4)
• Using the Action Bar Overflow for Core App Navigation - On
Android, primary app navigation is done using Navigation Drawers,
Tabs or Spinners
• Oceans Of Buttons - Placing too many buttons on the screen makes
it hard for the user to focus on content and difficult for him to
choose a button to press among many others on his screen
• Square Peg, Round Hole - The Square Peg, round Hole anti-pattern
is a mistake made by many developers who do not want to take the
time re designing the application which was initially designed and
developed for another OS (e.g. iOS)
• Forced Login - A common mistake that developers do is forcing
users to log in or signup before they can use the application
• Small Touch Targets - Small Touch targets are targets that are too
small and in small distance from other objects that the user cannot
press
Anti-Patterns (4/4)
• Neglecting Touch Feedback - Not giving a user
feedback when they take an action increases the app's
perceived latency
• Not Including a tutorial or contextual help - Not
including a tutorial or contextual help inside the
application is a common mistake made by developers
who think that all users can directly understand the
application's functionalities and the developer's way of
thinking and designing the app
• Confusing landing screen - The first page of an app is
very important. If users are confused by the first screen
it is likely that they will not continue to use the app
Application Development Based on
Design Patterns
Project’s Scope
The scope of the project was the creation of an
app in which users can write notes that relate to
a place/location and get notified when they get
to that place. The application should be able to
determine user's location by using 3G/4G, Wifi
and GPS services. It should consume the
minimum amount of the device's battery and
should be as easy as possible to use.
“Messeme” App
Figure 1: Messeme App
App Screens
• Homescreen
• Place Selection Screen
• Search Screen
• About Screen
• Help Screen
• Side Menu
Use Cases
• Adding a new place
• Adding a note to a place
• Receiving Notifications
• Viewing Notifications
• Edit a place’s name
• View a place on the map
• Clear a Note from a Place
• Delete a place
• Remove all Places
• Remove all Notes
• View About Page
• View Help Page
• Battery Saver On/Off
Conclusion
Design Process Criticality
• The design process is crucial to the success of
any software development project
• It forms the central communication document
for the development team
• It reduces the risks and costs to the project. It
helps to manage the complexity that is
inherent to the development lifecycle
Design Patterns Usability in the App
(1/3)
The overall design process of the application
completed by the following steps:
• After completing the analysis, design
problems where recognized and documented.
• For each problem a suitable design pattern
was selected to provide the best solution.
Design Patterns Usability in the App
(2/3)
Patterns Used:
• Floating Button - The floating button was used to allow users to
add a new place at any time from the Homescreen
• Swiss-Army-Knife Menu - The Swiss-Army-Knife menu was used for
the application's main Navigation menu and basic options
• Pop-Ups - Pop-Ups are used often in this application in order to aks
for the users inputs (e.g. Note) or in order to show information to
the user without having to change view / activity
• Overflow Menu - Overflow Menus were used for its items options
in the list view
• Toast Messages - Toast Messages were used to notify the user
about connectivity issues and battery saver mode
activation/deactivation
• Action Bar - The Action bar was used to host the Battery Saver
Button
Design Patterns Usability in the App
(3/3)
• Auto Complete - Auto Complete was used in the
address search screen were the user types in an
address and propositions that much his typing
appear as he types
• Gestures - The standard Android gestures apply
when using the app and especially when using
the map
• Multi-State Button - The Battery saver icon is a
multi-state icon. It activates or deactivates the
battery saver but it also states the battery saver's
current status with green or grey color
Observations
By using design patterns, the overall design
process did not last more than two working days
and it did not take users more than 5 minutes to
understand and comprehend the application's
scope and functionalities. It was easy to develop
an application relatively good-looking and most
of all efficient for users with the minimum
amount of time possible and good overall user
experience journey
The Benefits of Using Design Patterns
(1/2)
Design patterns have major benefits:
• They provide you with a way to solve issues related to software
development and design using a proven solution. The solution
facilitates the development of highly cohesive modules with
minimal coupling. They isolate the variability that may exist in the
system requirements, making the overall system easier to
understand and maintain.
• Design patterns make communication between designers more
efficient. Software professionals can immediately picture the high-
level design in their heads when they refer the name of the pattern
used to solve a particular issue when discussing system desig
• They are language neutral and so can be applied to any language
that supports object-orientation
The Benefits of Using Design Patterns
(2/2)
• They aid communication by the very fact that
they are well documented and can be
researched if that is not the case.
• They have a proven track record as they are
already widely used and thus reduce the
technical risk to the project
• They are highly flexible and can be used in
practically any type of application or domain
Thank You!

Android design patterns in mobile application development presentation

  • 1.
    ANDROID DESIGN PATTERNSIN MOBILE APPLICATION DEVELOPMENT GRIGOROPOULOS MICHAIL Master of Science in Networking and Data Communications THESIS PRESENTATION Kingston University London
  • 2.
    Abstract Design patterns helpdevelopers and designers to solve common design problems by using tested and user friendly solutions. The term can be applied to both directions to build a thing and the thing itself. The purpose of this study is to present such solutions and examine their applicability in android application development and user experience. For the study's purposes, an application called "Messeme" was developed based on some of the design patterns that are presented in the Second section of this Thesis.
  • 3.
  • 4.
    Design Patterns • Designpatterns in software design are defined as tested solutions to solving design problems. The term can be applied to both directions to build a thing and the thing itself. • A pattern can describe a design problem and the procedure or the object that can be used to solve this problem or even an instance of the problem. • Design patterns are formalized best practices that the developer or the designer can use to solve common problems when designing software. • A Design Pattern can also be described as the intermediate between the levels of a programming paradigm and a concrete algorithm.
  • 5.
    The History ofDesign Patterns • The whole idea of design patterns was born from architects who investigated automated, computerized building design in the 60s. • This trend was later known as modular construction/design. • Christopher Alexander was the main exponent of the idea at the time. • Christopher Alexander is considered to be the father of the pattern language movement.
  • 6.
    Why do weneed Design Patterns? • Since design patterns are proven solutions to a problem, they are already tested and known to work effectively • Valuable time and effort can be saved from the development of a project by using patterns • A pattern can be customized in order to fit the project's requirements • By using design patterns developers can deliver to the user a more friendly and easy to learn Application • Design Patterns do not tell the developer/designer how to code/design an application but instead it uses values to determine which is the best solution to his problem
  • 7.
    Structure of aDesign Pattern (1/2) • Design patterns are described by authors in highly structured documentation • Usually uses a template in order to identify the information that is needed to understand and solve a software problem • There is no standard agreement on how this template should be but it usually resembles the one shown in Table 1
  • 8.
    Structure of aDesign Pattern (2/2) Term Description Pattern Name Describes the essence of the pattern in a short, but expressive, name Intent Describes what the pattern does Also Known As List any synonyms for the pattern Motivation Provides an example of a problem and how the pattern solves that problem Applicability Lists the situations where the pattern is applicable Structure Set of diagrams of the classes and objects that depict the pattern Participants Describes the classes and objects that participate in the design pattern and their responsibilities Collaborations Describes how the participants collaborate to carry out their responsibilities Consequences Describes the forces that exist with the pattern and the benefits, trade-offs, and the variable that is isolated by the pattern Table 1: Design pattern common template
  • 9.
    Design Anti-patterns • Anti-patterns,also called pitfalls, are classes of commonly reinvented bad solutions to problems • Anti-patterns should always be avoided when designing a project, so they are studied in order to be recognizable when investigating possible solutions to problems
  • 10.
    Android OS • Androidis today's most popular Operating System running on mobile devices • It runs on 80% of mobile devices worldwide • It was designed and launched in 2007 by Google and revealed commercially in September of 2008 • Android OS is based on the Linux Kernel • After android version 5.0 each application runs on its own process and instance of the Android Runtime (ART) • Java* is used for the development of android applications that control the device with Java libraries developed by Google • XML is used by Android for the creation of layout files • Each Android application lives in each own, protected by several features
  • 11.
    Android Application DesignPrinciples (1/2) • Android uses a new design metaphor inspired by paper and ink that provides a reassuring sense of tactility, which is called “Material Design” • The use of familiar tactile attributes helps users quickly understand affordances • The flexibility of the material creates new affordances that supersede those in the physical world, without breaking the rules of physics • Measuring and sizing things in DPs ensures your designs have a consistent physical size across devices of varying density • The fundamentals of light, surface, and movement are key to conveying how objects move, interact, and exist in space and in relation to each other
  • 12.
    Android Application DesignPrinciples (2/2) The basic principles Material Design is based on: • Human-Mobile Interaction Observation • Variety in Form Factors • Simplicity and Sophistication • Cross-Channel Experiences
  • 13.
  • 14.
    Interaction (1/3) • Gestures- Selecting the right gesture for an action means that the system will be user-friendly and easy to learn and use. • Smart Keyboards and Controls - Using smart keyboards, means that different type of keyboard appears to the user according to the type of data inserted to the selected field • Cancel/OK Buttons - Action Buttons must be positioned as Cancel/OK on the top or bottom of a form. The primary button (OK) must be on the right in order to be reachable from right-handed users • Auto-Complete and Default Values - Using default values means presetting the value of a field, so that the user does not have to fill it if not necessary. Auto Complete functions are functions that prompt the user to choose from a possible list of values and auto- complete his entry as he types
  • 15.
    Interaction (2/3) • EasyLogin/ Registration - An easy-to-fill registration form, is a registration form that the user can complete easily, with the least amount of typing and time • Search, Sort and Filter - Searching and sorting data in an application can be easier and bring better results when using patterns like implicit or explicit search, auto-complete, onscreen sorting and filters • Swiping - -Swiping means allowing the user to move content on the screen to perform actions like Deletion, Archiving, accepting, rejecting, changing screens or any other action related to the application's functionalities
  • 16.
    Interaction (3/3) • Dateand Time Wheel - Date and Time when is a control on a field that brings up a date/time picker light-box. The picker resembles a wheel which the user can swipe vertically to scroll between a range of dates or time • Floating Action Button - Floating action buttons are used for a special type of promoted action • Pull To Refresh - Refresh content by pulling or swiping down the results
  • 17.
    Navigation (1/2) • ActionBars - The top section of an application can be used as an action bar that shows different buttons according to the action performed • Overflow Menus - Overflow menus are menus that appear or pop up over the main content of the application • PopOver - PopUp - Context Menus - PopOver, PopUp and context menus are menus that are triggered when the user touches an arrow sign or action buttons or, in many cases, by long-pressing an item
  • 18.
    Navigation (2/2) • Swiss-Army-KnifeNavigation - A Swiss-Army-Knife is a tool that has foldable hidden blade and tools inside the handle. Swiss-Army-Knife Navigation has the exact same ability and the pattern took its name from that • Swiping Between Tabs Navigation - Swiping between tabs and views navigation allow users to navigate between views by swiping left or right on the content area • Vertical Navigation - Grouped List of Links - Vertical scrolling Navigation, is presenting important sections of the UI in list views that are vertically scrollable • Sticky/Fixed Navigation - The top, bottom or side navigation or menu is static and stays always in place even when the view is scrolled
  • 19.
    Presentation (1/2) • Hub-and-SpokeHomescreen - Hub-and-Spoke pattern, lists all the major parts of the application on the Homescreen or "Hub" • Dashboard / News Feed - Dashboard pattern, presents critical information for the user on the application's Homescreen in a Dashboard form • Transparency - Transparency pattern is the use of gradients and fading overlays in menus, notifications or other layers, to show that there is layered content below
  • 20.
    Presentation (2/2) • HugeButtons - Use huge buttons when there is no space restriction. Full width buttons is a pattern that is often used in popular applications. Basic choice buttons should share the full width of the screen • Full Screen Mode - In Full Screen Mode, the UI is minimized and users only see the content • Spinners - When the applications loads data, fetches data from the internet or performs a procedure a spinner appears on the screen and content becomes faded
  • 21.
    Feedback • Toast Messages/Alerts- In the original Android implementation Toast alerts are messages that pop up from the bottom of the screen • Pop-Up Alert - Pop-Up alerts are flow disrupters that inform the user with text and icons and ask for an action to be taken • Inline Error Messages - When an input error occurs the system notifies the user by showing an error indication next to the field that is not properly filled or below it
  • 22.
    Anti-Patterns (1/4) • NovelNotions - Attending to translate old interaction models to new innovative ones is not always the best idea especially when non- standard UI elements are introduced • Control Mismatch - Using non standard custom controls is an anti-pattern. • Icon Mismatch - Using non standard custom icons is an anti-pattern • Gesture Mismatch - Using non standard custom gestures is an anti-pattern
  • 23.
    Anti-Patterns (2/4) • ModelMismatch - Not using the right flows that a user can logically follow means bad user experience and difficulty in operating the application • "Idiot" Boxes - The user's flow should not be disrupted with unnecessary Boxes/Pop Ups. Interrupting the user's flow for no urgent reason is something to avoid in order to keep the user's experience in high levels • Chart Junk - Chart Junk is the all the visual elements in graphs and charts that are not necessary for the user to see and does not need them to comprehend the results • Bottom tabs - While bottom tabs can be used a design Pattern, sometimes it can also be an anti-pattern • Drill-down List Navigation - A deep list-based navigation, known as drill-down navigation, is where lists lead to more lists which lead to even more lists. It is often inefficient and difficult to use
  • 24.
    Anti-Patterns (3/4) • Usingthe Action Bar Overflow for Core App Navigation - On Android, primary app navigation is done using Navigation Drawers, Tabs or Spinners • Oceans Of Buttons - Placing too many buttons on the screen makes it hard for the user to focus on content and difficult for him to choose a button to press among many others on his screen • Square Peg, Round Hole - The Square Peg, round Hole anti-pattern is a mistake made by many developers who do not want to take the time re designing the application which was initially designed and developed for another OS (e.g. iOS) • Forced Login - A common mistake that developers do is forcing users to log in or signup before they can use the application • Small Touch Targets - Small Touch targets are targets that are too small and in small distance from other objects that the user cannot press
  • 25.
    Anti-Patterns (4/4) • NeglectingTouch Feedback - Not giving a user feedback when they take an action increases the app's perceived latency • Not Including a tutorial or contextual help - Not including a tutorial or contextual help inside the application is a common mistake made by developers who think that all users can directly understand the application's functionalities and the developer's way of thinking and designing the app • Confusing landing screen - The first page of an app is very important. If users are confused by the first screen it is likely that they will not continue to use the app
  • 26.
  • 27.
    Project’s Scope The scopeof the project was the creation of an app in which users can write notes that relate to a place/location and get notified when they get to that place. The application should be able to determine user's location by using 3G/4G, Wifi and GPS services. It should consume the minimum amount of the device's battery and should be as easy as possible to use.
  • 28.
  • 29.
    App Screens • Homescreen •Place Selection Screen • Search Screen • About Screen • Help Screen • Side Menu
  • 30.
    Use Cases • Addinga new place • Adding a note to a place • Receiving Notifications • Viewing Notifications • Edit a place’s name • View a place on the map • Clear a Note from a Place • Delete a place • Remove all Places • Remove all Notes • View About Page • View Help Page • Battery Saver On/Off
  • 31.
  • 32.
    Design Process Criticality •The design process is crucial to the success of any software development project • It forms the central communication document for the development team • It reduces the risks and costs to the project. It helps to manage the complexity that is inherent to the development lifecycle
  • 33.
    Design Patterns Usabilityin the App (1/3) The overall design process of the application completed by the following steps: • After completing the analysis, design problems where recognized and documented. • For each problem a suitable design pattern was selected to provide the best solution.
  • 34.
    Design Patterns Usabilityin the App (2/3) Patterns Used: • Floating Button - The floating button was used to allow users to add a new place at any time from the Homescreen • Swiss-Army-Knife Menu - The Swiss-Army-Knife menu was used for the application's main Navigation menu and basic options • Pop-Ups - Pop-Ups are used often in this application in order to aks for the users inputs (e.g. Note) or in order to show information to the user without having to change view / activity • Overflow Menu - Overflow Menus were used for its items options in the list view • Toast Messages - Toast Messages were used to notify the user about connectivity issues and battery saver mode activation/deactivation • Action Bar - The Action bar was used to host the Battery Saver Button
  • 35.
    Design Patterns Usabilityin the App (3/3) • Auto Complete - Auto Complete was used in the address search screen were the user types in an address and propositions that much his typing appear as he types • Gestures - The standard Android gestures apply when using the app and especially when using the map • Multi-State Button - The Battery saver icon is a multi-state icon. It activates or deactivates the battery saver but it also states the battery saver's current status with green or grey color
  • 36.
    Observations By using designpatterns, the overall design process did not last more than two working days and it did not take users more than 5 minutes to understand and comprehend the application's scope and functionalities. It was easy to develop an application relatively good-looking and most of all efficient for users with the minimum amount of time possible and good overall user experience journey
  • 37.
    The Benefits ofUsing Design Patterns (1/2) Design patterns have major benefits: • They provide you with a way to solve issues related to software development and design using a proven solution. The solution facilitates the development of highly cohesive modules with minimal coupling. They isolate the variability that may exist in the system requirements, making the overall system easier to understand and maintain. • Design patterns make communication between designers more efficient. Software professionals can immediately picture the high- level design in their heads when they refer the name of the pattern used to solve a particular issue when discussing system desig • They are language neutral and so can be applied to any language that supports object-orientation
  • 38.
    The Benefits ofUsing Design Patterns (2/2) • They aid communication by the very fact that they are well documented and can be researched if that is not the case. • They have a proven track record as they are already widely used and thus reduce the technical risk to the project • They are highly flexible and can be used in practically any type of application or domain
  • 39.