SlideShare a Scribd company logo
1 of 53
Android UI Patterns


           Presented by
           Vladan Pulec


Created by Vladan Pulec and Peter Pascale
Agenda

       Android UI History
     Android 4 UI Highlights
      Android UI Patterns
Android Version History




Look and Feel
Formalized

2009
Android Version History




2010 Google IO

Dashboard UI Pattern
Android Version History




2011 Google IO

Tablet Patterns

No More
Dashboard
Android Version History




Ice Cream Sandwich
October 19 2010

Honeycomb UI - Unification

No More Hardware Buttons
Android Market Share




http://blog.nielsen.com/nielsenwire/online_mobile/generation-app-62-of-mobile-users-25-34-own-smartphones/
Android Market Share




 Source: Nielsen
 (http://www.bgr.com/2011/12/15/smartphone-penetration-skyrockets-in-2011-iphone-becomes-no-1-handset/ )
Android Versions - Reality




Source: developer.android.com
As of March 5, 2012
UI Design Pattern Goals




Image Source: http://www.flickr.com/photos/jdhancock/5138860024/
Tablet vs. Phone User Experience
 Users hold and interact with phones and tablets differently

    UI needs to be adaptive to support user interaction
UI Design Goals Related to Patterns


                  Stay Consistent

             Use Visual Hierarchy

                  Value Simplicity

         Pay Attention to Patterns




Image Source: http://www.flickr.com/photos/45574318@N00/5370376951/
Android 4.0 UI Features

                                                                     Simplified Look and Feel

                                                                         Unified Tablet/Phone
                                                                               Platform

                                                                   System Bar and Action Bar

                                                                    Virtual Navigation Buttons

                                                                        No Hardware Buttons



Image Source: http://www.flickr.com/photos/lwallenstein/3870027760/sizes/m/in/photostream/
Navigation in Android 4.0

 Software Navigation Buttons


  System Back

  System Home

  Recents


  No Search or Menu
Android UI Patterns

                Action Bar

             Multi-Pane Layout

                 Carousel

               Quick Actions

                Dashboard

               Workspaces
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Action Bar



    Dedicated Real Estate at the Top of Each Screen

   Make Frequent Actions Prominent

   Support Navigation

   Indicate Current Location in App

   Consistent Between Tablets and Phones

   Provide Branding
Action Bar - Sections



          Where am I?
      application icon or logo
can be used for "upward" navigation
Action Bar - Sections



                What can I see?
                    view details
        (can have a navigation component)
     can include tabs, dropdowns, breadcrumbs
Action Bar - Sections



                      What can I do?
             action buttons (icons, text, or both)
           most important or frequently used actions

              new place for Search and Menu
Action Bar - Examples
Action Bar
Consistency Between Phone and Tablet
Action Bar - Antipatterns
     Ignoring the "Where - See - Do" Best Practice

      Button controls at the bottom of the screen

       Inconsistent across different applications
ActionBar Code Demo

https://github.com/vpulec/ActionBar-Demo
Backward Compatibility

ActionBar native support in Honeycomb and up

Remedy
• Compatibility Pack can be used for earlier
  version
• ActionBarSherlock (actionbarsherlock.com)
  makes the implementation easier
Backwards Compatibility Library




http://developer.android.com/sdk/compatibility-library.html
Action Bar - Summary

               Replaces traditional title bar

               Makes frequently used actions
               prominent

               Convenient means of handling menu
               and search

               Dedicated, persistent real estate

               Displays application icon together
               with the activity title
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Multi-Pane Layout
Multi-Pane Layout
Multi-Pane Layout - Orientation Change



 Preserve
 Functional
 Parity
Implementing Multi-Pane Layout

  Fragments... The Building Blocks



  The Resource System... The Dynamic Assembler



  Backwards Compatibility Library... support 1.6+
Fragments
Fragments                  Reusable Section of an Activity




  Master          Detail Fragment
  List Fragment
Fragment Basics


 Behavior

             .java


 Layout



             .xml
             or programatic...
             or not at all...
Resource System Changes

Old Layout Categories - Since 1.6:

res/layout/my-layout.xml             <-- Typical

Or

res/layout-land/my-layout.xml
res/layout-port/my-layout.xml
Resource System Changes

Honeycomb Layout Categories - 3.0 - 3.1:

Size        small, normal, large, xlarge
Orientation port, land

Ex:
res/layout/my-layout.xml
res/layout-xlarge-land/my-layout.xml
res/layout-xlarge-port/my-layout.xml
Resource System Changes

Honeycomb Layout Categories - 3.0 - 3.1:

Size        small, normal, large, xlarge
Orientation port, land

Ex:
res/layout/my-layout.xml
         Deprecated
res/layout-xlarge-land/my-layout.xml
res/layout-xlarge-port/my-layout.xml
Resource System Changes

New Layout Categories - 3.2+:

Allows Specific Screen Size Designation - Not Just Categories

res/layout/main_activity.xml                                                       Phones
res/layout-sw600dp/main_activity.xml                                               7" Tablets
res/layout-sw720dp/main_activity.xml                                               10" Tablets

sw = Smallest Width
w = Available Min Width
h = Available Min Height
http://developer.android.com/guide/practices/screens_support.html
http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts
Multi-Pane Layout Code Demo


  https://github.com/peterpascale/FragmentExample
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Carousel - "Beyond the List"
               Break the Monotony of List Views
Carousel - "Beyond the List"
                   YouTube Video Wall
Carousel - Implementation


   CarouselView

     - Renderscript
     - Ready for Customization



   Gallery

     - Single Items, Single Images
     - Not Full Screen

             http://j.mp/io2011-carousel-sample
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Quick Actions

Easy access to contextual
actions

Practical even for limited real-
estate

User easily sees context even
when quick action is open
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Dashboard

 Good application entry point

  Takes a lot of real estate

 May appear that application
  has limited functionality

May be overwhelming to a new
            user
Action Bar

Multi-Pane Layout

    Carousel

  Quick Actions

   Dashboard

  Workspaces
Workspaces



 Useful when dealing with a lot of data

           Clear navigation
Thank You
Android UI Patterns
      New Patterns                Problem                       Solution                 Since         Phone     Tablet
Action Bar               Access to most common         Horizontal action bar on top        3.0          Yes       Yes
                         actions                       of the screen
Carousel                 Engaging way to select        scrolling 2D/3D carousel         3rd party       Yes       Yes
                         options                                                         (3.0+)
Multi-pane Layout View   Provide effective use of      Composite UI with reusable          3.0           No       Yes
                         large screens                 components                       (with 1.6
                                                                                      compatibility)




   Existing Patterns              Problem                       Solution                Since          Phone     Tablet
Dashboard                Application home screen       Main brander landing page          Any          In Some     No
                                                                                                        Cases

Quick Action Menu        Provide contextual actions    simple pop-up menu               3rd party       Yes      In Some
                         on a small screen                                               (2.0+)                   Cases


Workspaces               Displaying a lot of data on a horizontally scrollable tabs       Any           Yes        No
                         small screen
Resources

•   http://en.wikipedia.org/wiki/User_interface_design
•   http://www.androiduipatterns.com/
•   http://momentummobile.com/mobile-app-ui-ux-design.html
•   http://developer.android.com/guide/topics/ui/declaring-layout.html
•   http://developer.android.com/guide/practices/screens_support.html
•   http://developer.android.com/guide/practices/ui_guidelines/icon_design.html
•   http://www.google.com/events/io/2011/sessions/designing-and-implementing-android-uis-for-phones-
    and-tablets.html
•   http://www.donnfelker.com/downloads/AndroidTabletDevelopment.pdf
•   http://developer.android.com/guide/topics/fundamentals/fragments.html
•   http://j.mp/io2011-carousel-sample

More Related Content

Similar to Android ui patterns

2012/02/15 Android 4.0 UI Design Tips@happy designer meetup
2012/02/15 Android 4.0 UI Design Tips@happy designer meetup2012/02/15 Android 4.0 UI Design Tips@happy designer meetup
2012/02/15 Android 4.0 UI Design Tips@happy designer meetupJustin Lee
 
Android 4.0 UI Design Tips
Android 4.0 UI Design TipsAndroid 4.0 UI Design Tips
Android 4.0 UI Design TipsJustin Lee
 
Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009Tom Deryckere
 
Designing and implementing_android_uis_for_phones_and_tablets
Designing and implementing_android_uis_for_phones_and_tabletsDesigning and implementing_android_uis_for_phones_and_tablets
Designing and implementing_android_uis_for_phones_and_tabletsCường Doãn
 
An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)rudigrobler
 
Whats New in Android
Whats New in AndroidWhats New in Android
Whats New in Androiddonnfelker
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsPaul Withers
 
Communication Design for the Mobile Experience
Communication Design for the Mobile ExperienceCommunication Design for the Mobile Experience
Communication Design for the Mobile ExperienceDavid Drucker
 
Briding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishingBriding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishingTom Deryckere
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloadedDominik Helleberg
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesRyan Stewart
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Patrick Lauke
 
QuickSoft Mobile Tips & Tricks 11-03-10
QuickSoft Mobile Tips & Tricks 11-03-10QuickSoft Mobile Tips & Tricks 11-03-10
QuickSoft Mobile Tips & Tricks 11-03-10Almog Koren
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2Dori Waldman
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentSimon Guest
 
Interactive cues in flat design
Interactive cues in flat designInteractive cues in flat design
Interactive cues in flat designMing-Liang Liu
 

Similar to Android ui patterns (20)

Android UI Patterns
Android UI PatternsAndroid UI Patterns
Android UI Patterns
 
2012/02/15 Android 4.0 UI Design Tips@happy designer meetup
2012/02/15 Android 4.0 UI Design Tips@happy designer meetup2012/02/15 Android 4.0 UI Design Tips@happy designer meetup
2012/02/15 Android 4.0 UI Design Tips@happy designer meetup
 
Android 4.0 UI Design Tips
Android 4.0 UI Design TipsAndroid 4.0 UI Design Tips
Android 4.0 UI Design Tips
 
Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009
 
Designing and implementing_android_uis_for_phones_and_tablets
Designing and implementing_android_uis_for_phones_and_tabletsDesigning and implementing_android_uis_for_phones_and_tablets
Designing and implementing_android_uis_for_phones_and_tablets
 
An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)An end-to-end experience of Windows Phone 7 development (Part 1)
An end-to-end experience of Windows Phone 7 development (Part 1)
 
Whats New in Android
Whats New in AndroidWhats New in Android
Whats New in Android
 
DanNotes XPages Mobile Controls
DanNotes XPages Mobile ControlsDanNotes XPages Mobile Controls
DanNotes XPages Mobile Controls
 
Communication Design for the Mobile Experience
Communication Design for the Mobile ExperienceCommunication Design for the Mobile Experience
Communication Design for the Mobile Experience
 
Briding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishingBriding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishing
 
Swift
SwiftSwift
Swift
 
Android ActionBar Navigation reloaded
Android ActionBar Navigation reloadedAndroid ActionBar Navigation reloaded
Android ActionBar Navigation reloaded
 
Introduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile DevicesIntroduction to Flex Hero for Mobile Devices
Introduction to Flex Hero for Mobile Devices
 
Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010Making your site mobile-friendly - DevCSI Reading 21.07.2010
Making your site mobile-friendly - DevCSI Reading 21.07.2010
 
QuickSoft Mobile Tips & Tricks 11-03-10
QuickSoft Mobile Tips & Tricks 11-03-10QuickSoft Mobile Tips & Tricks 11-03-10
QuickSoft Mobile Tips & Tricks 11-03-10
 
Android UI Design Tips
Android UI Design TipsAndroid UI Design Tips
Android UI Design Tips
 
Mat Marquis - JQuery Mobile
Mat Marquis - JQuery MobileMat Marquis - JQuery Mobile
Mat Marquis - JQuery Mobile
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
Top Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web DevelopmentTop Ten Tips for HTML5/Mobile Web Development
Top Ten Tips for HTML5/Mobile Web Development
 
Interactive cues in flat design
Interactive cues in flat designInteractive cues in flat design
Interactive cues in flat design
 

More from Mobile March

Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince BullingerCross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince BullingerMobile March
 
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...Mobile March
 
Building Wearables-Kristina Durivage
Building Wearables-Kristina DurivageBuilding Wearables-Kristina Durivage
Building Wearables-Kristina DurivageMobile March
 
The Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkThe Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkMobile March
 
LiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenLiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenMobile March
 
The Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidThe Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidMobile March
 
Unity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisUnity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisMobile March
 
IP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesIP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesMobile March
 
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeUsing Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeMobile March
 
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsMobile March
 
Introduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroIntroduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroMobile March
 
Developing Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseDeveloping Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseMobile March
 
Product Management for Your App
Product Management for Your AppProduct Management for Your App
Product Management for Your AppMobile March
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Mobile March
 
Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote PresentationMobile March
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March
 
Bannin mobile march_2012_public
Bannin mobile march_2012_publicBannin mobile march_2012_public
Bannin mobile march_2012_publicMobile March
 
Beginningi os part1-bobmccune
Beginningi os part1-bobmccuneBeginningi os part1-bobmccune
Beginningi os part1-bobmccuneMobile March
 
Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile March
 

More from Mobile March (20)

Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince BullingerCross-Platform Mobile Development with PhoneGap-Vince Bullinger
Cross-Platform Mobile Development with PhoneGap-Vince Bullinger
 
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
You Can’t Ignore the Tablet-Designing & Developing Universal Apps for Phones ...
 
Building Wearables-Kristina Durivage
Building Wearables-Kristina DurivageBuilding Wearables-Kristina Durivage
Building Wearables-Kristina Durivage
 
The Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-SparkThe Blossoming Internet of Things Zach Supalla-Spark
The Blossoming Internet of Things Zach Supalla-Spark
 
LiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel GerdeenLiveCode Cross-Platform Development-Joel Gerdeen
LiveCode Cross-Platform Development-Joel Gerdeen
 
The Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew DavidThe Mobile Evolution‚ Systems vs. Apps - Matthew David
The Mobile Evolution‚ Systems vs. Apps - Matthew David
 
Unity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh RuisUnity-Beyond Games! - Josh Ruis
Unity-Beyond Games! - Josh Ruis
 
IP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest GrumblesIP for Mobile Startups -Ernest Grumbles
IP for Mobile Startups -Ernest Grumbles
 
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott LembckeUsing Chipmunk Physics to create a iOS Game - Scott Lembcke
Using Chipmunk Physics to create a iOS Game - Scott Lembcke
 
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt PrinsUsing Mobile to Achieve Truly Integrated Marketing - Curt Prins
Using Mobile to Achieve Truly Integrated Marketing - Curt Prins
 
Introduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason ShapiroIntroduction to Core Data - Jason Shapiro
Introduction to Core Data - Jason Shapiro
 
Developing Custom iOs Applications for Enterprise
Developing Custom iOs Applications for EnterpriseDeveloping Custom iOs Applications for Enterprise
Developing Custom iOs Applications for Enterprise
 
Product Management for Your App
Product Management for Your AppProduct Management for Your App
Product Management for Your App
 
Robotium Tutorial
Robotium TutorialRobotium Tutorial
Robotium Tutorial
 
Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication Dueling Banjos: Inter-app Communication
Dueling Banjos: Inter-app Communication
 
Guy Thier Keynote Presentation
Guy Thier Keynote PresentationGuy Thier Keynote Presentation
Guy Thier Keynote Presentation
 
Mobile March Olson presentation 2012
Mobile March Olson presentation 2012Mobile March Olson presentation 2012
Mobile March Olson presentation 2012
 
Bannin mobile march_2012_public
Bannin mobile march_2012_publicBannin mobile march_2012_public
Bannin mobile march_2012_public
 
Beginningi os part1-bobmccune
Beginningi os part1-bobmccuneBeginningi os part1-bobmccune
Beginningi os part1-bobmccune
 
Mobile march2012 android101-pt2
Mobile march2012 android101-pt2Mobile march2012 android101-pt2
Mobile march2012 android101-pt2
 

Recently uploaded

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

Android ui patterns

  • 1. Android UI Patterns Presented by Vladan Pulec Created by Vladan Pulec and Peter Pascale
  • 2. Agenda Android UI History Android 4 UI Highlights Android UI Patterns
  • 3. Android Version History Look and Feel Formalized 2009
  • 4. Android Version History 2010 Google IO Dashboard UI Pattern
  • 5. Android Version History 2011 Google IO Tablet Patterns No More Dashboard
  • 6. Android Version History Ice Cream Sandwich October 19 2010 Honeycomb UI - Unification No More Hardware Buttons
  • 8. Android Market Share Source: Nielsen (http://www.bgr.com/2011/12/15/smartphone-penetration-skyrockets-in-2011-iphone-becomes-no-1-handset/ )
  • 9. Android Versions - Reality Source: developer.android.com As of March 5, 2012
  • 10. UI Design Pattern Goals Image Source: http://www.flickr.com/photos/jdhancock/5138860024/
  • 11. Tablet vs. Phone User Experience Users hold and interact with phones and tablets differently UI needs to be adaptive to support user interaction
  • 12. UI Design Goals Related to Patterns Stay Consistent Use Visual Hierarchy Value Simplicity Pay Attention to Patterns Image Source: http://www.flickr.com/photos/45574318@N00/5370376951/
  • 13. Android 4.0 UI Features Simplified Look and Feel Unified Tablet/Phone Platform System Bar and Action Bar Virtual Navigation Buttons No Hardware Buttons Image Source: http://www.flickr.com/photos/lwallenstein/3870027760/sizes/m/in/photostream/
  • 14. Navigation in Android 4.0 Software Navigation Buttons System Back System Home Recents No Search or Menu
  • 15. Android UI Patterns Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 16. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 17. Action Bar Dedicated Real Estate at the Top of Each Screen Make Frequent Actions Prominent Support Navigation Indicate Current Location in App Consistent Between Tablets and Phones Provide Branding
  • 18. Action Bar - Sections Where am I? application icon or logo can be used for "upward" navigation
  • 19. Action Bar - Sections What can I see? view details (can have a navigation component) can include tabs, dropdowns, breadcrumbs
  • 20. Action Bar - Sections What can I do? action buttons (icons, text, or both) most important or frequently used actions new place for Search and Menu
  • 21. Action Bar - Examples
  • 22. Action Bar Consistency Between Phone and Tablet
  • 23. Action Bar - Antipatterns Ignoring the "Where - See - Do" Best Practice Button controls at the bottom of the screen Inconsistent across different applications
  • 25. Backward Compatibility ActionBar native support in Honeycomb and up Remedy • Compatibility Pack can be used for earlier version • ActionBarSherlock (actionbarsherlock.com) makes the implementation easier
  • 27. Action Bar - Summary Replaces traditional title bar Makes frequently used actions prominent Convenient means of handling menu and search Dedicated, persistent real estate Displays application icon together with the activity title
  • 28. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 31. Multi-Pane Layout - Orientation Change Preserve Functional Parity
  • 32. Implementing Multi-Pane Layout Fragments... The Building Blocks The Resource System... The Dynamic Assembler Backwards Compatibility Library... support 1.6+
  • 34. Fragments Reusable Section of an Activity Master Detail Fragment List Fragment
  • 35. Fragment Basics Behavior .java Layout .xml or programatic... or not at all...
  • 36. Resource System Changes Old Layout Categories - Since 1.6: res/layout/my-layout.xml <-- Typical Or res/layout-land/my-layout.xml res/layout-port/my-layout.xml
  • 37. Resource System Changes Honeycomb Layout Categories - 3.0 - 3.1: Size small, normal, large, xlarge Orientation port, land Ex: res/layout/my-layout.xml res/layout-xlarge-land/my-layout.xml res/layout-xlarge-port/my-layout.xml
  • 38. Resource System Changes Honeycomb Layout Categories - 3.0 - 3.1: Size small, normal, large, xlarge Orientation port, land Ex: res/layout/my-layout.xml Deprecated res/layout-xlarge-land/my-layout.xml res/layout-xlarge-port/my-layout.xml
  • 39. Resource System Changes New Layout Categories - 3.2+: Allows Specific Screen Size Designation - Not Just Categories res/layout/main_activity.xml Phones res/layout-sw600dp/main_activity.xml 7" Tablets res/layout-sw720dp/main_activity.xml 10" Tablets sw = Smallest Width w = Available Min Width h = Available Min Height http://developer.android.com/guide/practices/screens_support.html http://developer.android.com/guide/practices/screens_support.html#DeclaringTabletLayouts
  • 40. Multi-Pane Layout Code Demo https://github.com/peterpascale/FragmentExample
  • 41. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 42. Carousel - "Beyond the List" Break the Monotony of List Views
  • 43. Carousel - "Beyond the List" YouTube Video Wall
  • 44. Carousel - Implementation CarouselView - Renderscript - Ready for Customization Gallery - Single Items, Single Images - Not Full Screen http://j.mp/io2011-carousel-sample
  • 45. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 46. Quick Actions Easy access to contextual actions Practical even for limited real- estate User easily sees context even when quick action is open
  • 47. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 48. Dashboard Good application entry point Takes a lot of real estate May appear that application has limited functionality May be overwhelming to a new user
  • 49. Action Bar Multi-Pane Layout Carousel Quick Actions Dashboard Workspaces
  • 50. Workspaces Useful when dealing with a lot of data Clear navigation
  • 52. Android UI Patterns New Patterns Problem Solution Since Phone Tablet Action Bar Access to most common Horizontal action bar on top 3.0 Yes Yes actions of the screen Carousel Engaging way to select scrolling 2D/3D carousel 3rd party Yes Yes options (3.0+) Multi-pane Layout View Provide effective use of Composite UI with reusable 3.0 No Yes large screens components (with 1.6 compatibility) Existing Patterns Problem Solution Since Phone Tablet Dashboard Application home screen Main brander landing page Any In Some No Cases Quick Action Menu Provide contextual actions simple pop-up menu 3rd party Yes In Some on a small screen (2.0+) Cases Workspaces Displaying a lot of data on a horizontally scrollable tabs Any Yes No small screen
  • 53. Resources • http://en.wikipedia.org/wiki/User_interface_design • http://www.androiduipatterns.com/ • http://momentummobile.com/mobile-app-ui-ux-design.html • http://developer.android.com/guide/topics/ui/declaring-layout.html • http://developer.android.com/guide/practices/screens_support.html • http://developer.android.com/guide/practices/ui_guidelines/icon_design.html • http://www.google.com/events/io/2011/sessions/designing-and-implementing-android-uis-for-phones- and-tablets.html • http://www.donnfelker.com/downloads/AndroidTabletDevelopment.pdf • http://developer.android.com/guide/topics/fundamentals/fragments.html • http://j.mp/io2011-carousel-sample

Editor's Notes

  1. Peter
  2. Peter Android UI as a bit of a moving target. Android 4 - the focus Android UI patterns in the context of Android 4
  3. Peter UI layout established default color schemes boxy immature UI patterns
  4. Peter Dashboard pattern introduced Action bars implemented inconsistently
  5. Peter Dashboard is being replaced with action bar
  6. Peter UI unification lesson learned - UI keeps constantly evolving and applications need to adjust hardware navigation going away
  7. Peter
  8. Peter/Vladan diversified support for multiple versions
  9. Vladan
  10. Vladan phones - one hand holds the device, the other interacts tablets - Because of the size and the weight of tablets, you might design your screens differently to accept interactions on the left and on the right portions of the screen. Ideally, some users would just use their left and right thumbs to interact with your app. Google SDK supports reuse between devices of different screen sizes
  11. Vladan Google Emphasizes Platform Consistency user should feel in control http://momentummobile.com/mobile-app-ui-ux-design.html
  12. Vladan Support in Action Bar or other mechanism Don&apos;t Assume Search Hard Key Unified UI toolkit: A single set of UI components, styles, and capabilities for phones, tablets, and other devices. Rich communication and sharing: New social and calendar APIs, Android Beam for NFC-based instant sharing, Wi-Fi Direct support, Bluetooth Health Device Profile support. Deep interactivity and customization: Improved notifications, lockscreen with camera and music controls, and improved app management in the launcher. New graphics, camera, and media capabilities: Image and video effects, precise camera metering and face detection, new media codecs and containers. Interface and input: Hardware-accelerated 2D drawing, new grid-based layout, improved soft keyboard, spell-checker API, stylus input support, and better mouse support.
  13. Vladan Navigation to Search and Menu items must be supported in the application UI - These functions have to find a place in the UI.
  14. Vladan actions - context sensitive actions, most used actions for each screen  navigation tabs incorporated directly into the bar search button throughout an application Honeycomb tables (and future Ice Cream Sandwich phones) lack physical navigation buttons Contextual actions can be used based on user&apos;s action on the screen (ie. selecting text or an email message) overflow - less commonly used actions, tablets do not have &amp;quot;Menu&amp;quot; button, Overflow menu replaces it Branding and Home Access - excellent spot for application logo, selecting the logo should either send users to the home screen, go back within the application
  15. close to hardware controls
  16. Peter
  17. Peter Take Advantage of Tablet Real Estate Consolidate Multiple Phone Screens into One Layout Master - Detail
  18. Peter Android goal: Create a single APK (android exe) for both tablet and phone app. Ambitious, but Android provides a number of facilities  to support this. First - Fragments You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. 
  19. Peter Android goal: Create a single APK (android exe) for both tablet and phone app. Ambitious, but Android provides a number of facilities  to support this. First - Fragments You can think of a fragment as a modular section of an activity, which has its own lifecycle, receives its own input events, and which you can add or remove while the activity is running. You can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities. 
  20. Fragment - represents a behavior or a portion of user interface in an Activity  Can combine multiple fragments in a single activity to build a multi-pane UI and reuse a fragment in multiple activities.  modular section of an activity,  which has its own lifecycle,  receives its own input events,  you can add or remove while the activity is running 
  21. Peter Honeycomb added new layout categories which you could combine with sizes.
  22. Peter
  23. Peter
  24. Vladan
  25. Vladan
  26. Vladan
  27. Vladan/Peter categorize the patterns into categories-new, relevant, dated new patterns - action bar - multipane - carousel Still good - dashboard - busy indicator - quick action menu - workspaces Not so good - action drawer - dynamic list - look what this is -