SlideShare a Scribd company logo
Android UI patterns
What? Why? How?

            Gautham NS
            One touch expenser
What are covered?
●   Action bar
●   Drag & Drop sorting
●   Swipe to dismiss




                          Gautham NS
Action Bar




Dedicated space at the top of each screen.
Introduced in Android 3.0 (Honeycomb).
Alternative to the menu button.


                      Gautham NS
Action Bar
●   Actions
●   Navigation
●   Branding

●   One of the most important design elements
●   Consistency with core and other Apps.
●   Every modern Android app should have it.
    Absolutely no exception.
                      Gautham NS
Knowing is not enough.

              ●   My own example.
              ●   Not using Action Bar
                  correctly.
              ●   Actions and
                  navigation in the
                  content area.



         Gautham NS
Better




 Gautham NS
General Organization



1. App icon
2. View control
3. Action buttons
4. Action overflow


                     Gautham NS
Action buttons
●   Prioritize your actions using FIT scheme.
    (Frequent, Important, Typical).
●   If either F, I or T apply, then action bar.
    Otherwise, action overflow.
●   Action overflow: Provides access to less
    frequently used actions.




                          Gautham NS
Split Action Bar
1. Main Action bar
2. Top bar
3. Bottom bar


 Be careful. Can be
 overwhelming.
 Note: You cannot have
 actions both on top and
 bottom.

                           Gautham NS
Split Action bar




Do not use it for
navigation please.




                     Gautham NS
View Controls
Three different controls to allow users to
switch between data in different views.
–   Tabs
–   Spinners
–   Drawers




                     Gautham NS
Tabs
●   To switch views frequently.
●   To be highly aware of the alternate views.
●   Fixed tabs
●   Scrollable tabs


    Always allow swiping left or right for switching
    between tabs.


                         Gautham NS
Tabs




Scrollable tabs                Fixed tabs



                  Gautham NS
Spinners
●   Drop down menu.
●   User switching
    between views of
    same data set or
    sets of the same
    type.




                       Gautham NS
Drawers
●   Slide-out menu.
●   Direct navigation to a
    number of views without
    direct relationships between
    each other.
●   Topmost level of app's
    hierarchy.
●   Opened by Up caret & edge
    swipe or swipe from
    anywhere.



                               Gautham NS
Branding

       ●   Branding does not
           stop at ActionBar.
       ●   Use Android Holo
           Colors Generator.
           ( android-holo-colors.com )




  Gautham NS
Branding done right




       Gautham NS
ActionBar Implementation
●   Available for Android 3.0 and above.
●   Use ActionBarSherlock for 2.x and up.
●   ActionBarSherlock uses native implementation
    for 4.0+ and custom implementation for
    previous versions.




                        Gautham NS
ActionBarSherlock implementation
●   Extend SherlockActivity or
    SherlockFragmentActivity.
●   getSupportActionBar() (instead of
    getActionBar()).
●   SherlockFragment and SherlockListFragment
    if you want menu related methods in
    fragments.



                        Gautham NS
Swiping between tabs
●   Always allow the user to navigate between views by
    swiping left or right on the content area.
●   Use ViewPager in conjunction with the ActionBar
    tabs
●   Use fragments as tabs.
●   http://developer.android.com/training/implementing-nav
    igation/lateral.html
●   Bug in Android system in landscape when swiping



                          Gautham NS
Drawers (Slide-out menu)
●   New pattern becoming very popular for
    navigation.
●   Lot of debate in the Android community about
    its behaviour.
●   Popular library: SlidingMenu by Jeremy
    Feinstein. (
    https://github.com/jfeinstein10/SlidingMenu )



                        Gautham NS
Drag. And drop. Any.do style
●   Sorting list view with the help
    of drag and drop.
●   Useful for todo list, favorites,
    music playlists, groceries list
    etc.
●    Easy and intuitive
    rearranging of list items.
●   Remember, Not every list
    needs drag and drop.
●   App should sort for the user
    based on the usage patterns.
                                 Gautham NS
Drag. And Drop.
●   Let the users know they can drag and drop.
●   One way is by showing drag drop image.




                       Gautham NS
Swipe to dismiss
●   As the name
    suggests, swipe to
    remove an item.
●   Actions can also be
    mark completed,
    archive, etc.
●   Used in android core
    UI (dismissing
    notifications).

                          Gautham NS
Swipe to dismiss
●   Swipe from which side? Preferably both.
●   Not suitable for all apps.
●   Few downsides
    –   Difficult to discover.
    –   Swipe also used for navigation between tabs.
    –   Accidental swiping can happen. Should allow for
        recovering data.



                                 Gautham NS
Implementation
●   Library: DragSortListView by Carl A. Bauer.
●   Supports drag and drop sorting and swipe to
    dismiss.
●   DragSortListView an extension of Android
    ListView.
●   Allows both click to remove and fling to
    remove.



                        Gautham NS
Example xml

 <com.mobeta.android.dslv.DragSortListView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dslv="http://schemas.android.com/apk/res/org.blrdroid
                         .expenseapp"
                 android:id="@android:id/list"
              android:layout_width="fill_parent"
            android:layout_height="wrap_content"
                              -----
                              -----
                              -----
                  dslv:track_drag_sort="false"
             dslv:use_default_controller="true" />
                           Gautham NS
Java code:
mDslv = getListView();

DragSortController controller = new
  DragSortController(mDslv);

mDslv.setFloatViewManager(controller);

mDslv.setOnTouchListener(controller);

mDslv.setDropListener(mDropListener);

mDslv.setRemoveListener(mRemoveListener);

                         Gautham NS
Finally,
   Questions?

                   @gauthamns
gauthamns@onetouchexpenser.com

        Gautham NS

More Related Content

Similar to Coding modern UI - Actionbar, Drag & Drop, Swipe to dismiss

Full stack development
Full stack developmentFull stack development
Full stack development
Arnav Gupta
 
Serenity for Android: Design Tips for Android TV
Serenity for Android: Design Tips for Android TVSerenity for Android: Design Tips for Android TV
Serenity for Android: Design Tips for Android TV
David Carver
 
Win8 development lessons learned jayway
Win8 development lessons learned jaywayWin8 development lessons learned jayway
Win8 development lessons learned jayway
Andreas Hammar
 
Milos Marinkovic "Modular Android UI"
Milos Marinkovic "Modular Android UI"Milos Marinkovic "Modular Android UI"
Milos Marinkovic "Modular Android UI"
IT Event
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
GOWSIKRAJA PALANISAMY
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012
Tomáš Kypta
 
MapMapMap documentation
MapMapMap documentationMapMapMap documentation
MapMapMap documentation
Anome
 
Android Design Support Library
Android Design Support LibraryAndroid Design Support Library
Android Design Support Library
Ibnu Sina Wardy
 
Mastering the Master Detail Pattern
Mastering the Master Detail PatternMastering the Master Detail Pattern
Mastering the Master Detail Pattern
CommonsWare
 
Icemtransitionguide2011
Icemtransitionguide2011Icemtransitionguide2011
Icemtransitionguide2011
Boanerges Brito
 
uid 3.4- MKH.pptx
uid 3.4- MKH.pptxuid 3.4- MKH.pptx
uid 3.4- MKH.pptx
RaviAr5
 
I go8 usermanual_eng
I go8 usermanual_engI go8 usermanual_eng
I go8 usermanual_eng
Kodok Ngorex
 
Roamer World
Roamer WorldRoamer World
Roamer World
Malcolm Wilson
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
Yasin Yildirim
 
Material design
Material designMaterial design
Material design
Sarnab Poddar
 
Joanna chwastowska responsive layout - droid con
Joanna chwastowska   responsive layout - droid conJoanna chwastowska   responsive layout - droid con
Joanna chwastowska responsive layout - droid con
apps4allru
 
User experience and interactions design
User experience and interactions design User experience and interactions design
User experience and interactions design
Rakesh Jha
 
Ugnius vaznys tesonet
Ugnius vaznys   tesonetUgnius vaznys   tesonet
Ugnius vaznys tesonet
UgniusVaznys
 
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
Teddy Koornia
 
Google I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and JetpackGoogle I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and Jetpack
Sunita Singh
 

Similar to Coding modern UI - Actionbar, Drag & Drop, Swipe to dismiss (20)

Full stack development
Full stack developmentFull stack development
Full stack development
 
Serenity for Android: Design Tips for Android TV
Serenity for Android: Design Tips for Android TVSerenity for Android: Design Tips for Android TV
Serenity for Android: Design Tips for Android TV
 
Win8 development lessons learned jayway
Win8 development lessons learned jaywayWin8 development lessons learned jayway
Win8 development lessons learned jayway
 
Milos Marinkovic "Modular Android UI"
Milos Marinkovic "Modular Android UI"Milos Marinkovic "Modular Android UI"
Milos Marinkovic "Modular Android UI"
 
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptxUNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
UNIT V ACTIONS AND COMMANDS, FORMS AND CONTROLS.pptx
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012
 
MapMapMap documentation
MapMapMap documentationMapMapMap documentation
MapMapMap documentation
 
Android Design Support Library
Android Design Support LibraryAndroid Design Support Library
Android Design Support Library
 
Mastering the Master Detail Pattern
Mastering the Master Detail PatternMastering the Master Detail Pattern
Mastering the Master Detail Pattern
 
Icemtransitionguide2011
Icemtransitionguide2011Icemtransitionguide2011
Icemtransitionguide2011
 
uid 3.4- MKH.pptx
uid 3.4- MKH.pptxuid 3.4- MKH.pptx
uid 3.4- MKH.pptx
 
I go8 usermanual_eng
I go8 usermanual_engI go8 usermanual_eng
I go8 usermanual_eng
 
Roamer World
Roamer WorldRoamer World
Roamer World
 
Getting Started With Material Design
Getting Started With Material DesignGetting Started With Material Design
Getting Started With Material Design
 
Material design
Material designMaterial design
Material design
 
Joanna chwastowska responsive layout - droid con
Joanna chwastowska   responsive layout - droid conJoanna chwastowska   responsive layout - droid con
Joanna chwastowska responsive layout - droid con
 
User experience and interactions design
User experience and interactions design User experience and interactions design
User experience and interactions design
 
Ugnius vaznys tesonet
Ugnius vaznys   tesonetUgnius vaznys   tesonet
Ugnius vaznys tesonet
 
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
 
Google I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and JetpackGoogle I/O 2019 - what's new in Android Q and Jetpack
Google I/O 2019 - what's new in Android Q and Jetpack
 

Recently uploaded

Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Speck&Tech
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 

Recently uploaded (20)

Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 

Coding modern UI - Actionbar, Drag & Drop, Swipe to dismiss

  • 1. Android UI patterns What? Why? How? Gautham NS One touch expenser
  • 2. What are covered? ● Action bar ● Drag & Drop sorting ● Swipe to dismiss Gautham NS
  • 3. Action Bar Dedicated space at the top of each screen. Introduced in Android 3.0 (Honeycomb). Alternative to the menu button. Gautham NS
  • 4. Action Bar ● Actions ● Navigation ● Branding ● One of the most important design elements ● Consistency with core and other Apps. ● Every modern Android app should have it. Absolutely no exception. Gautham NS
  • 5. Knowing is not enough. ● My own example. ● Not using Action Bar correctly. ● Actions and navigation in the content area. Gautham NS
  • 7. General Organization 1. App icon 2. View control 3. Action buttons 4. Action overflow Gautham NS
  • 8. Action buttons ● Prioritize your actions using FIT scheme. (Frequent, Important, Typical). ● If either F, I or T apply, then action bar. Otherwise, action overflow. ● Action overflow: Provides access to less frequently used actions. Gautham NS
  • 9. Split Action Bar 1. Main Action bar 2. Top bar 3. Bottom bar Be careful. Can be overwhelming. Note: You cannot have actions both on top and bottom. Gautham NS
  • 10. Split Action bar Do not use it for navigation please. Gautham NS
  • 11. View Controls Three different controls to allow users to switch between data in different views. – Tabs – Spinners – Drawers Gautham NS
  • 12. Tabs ● To switch views frequently. ● To be highly aware of the alternate views. ● Fixed tabs ● Scrollable tabs Always allow swiping left or right for switching between tabs. Gautham NS
  • 13. Tabs Scrollable tabs Fixed tabs Gautham NS
  • 14. Spinners ● Drop down menu. ● User switching between views of same data set or sets of the same type. Gautham NS
  • 15. Drawers ● Slide-out menu. ● Direct navigation to a number of views without direct relationships between each other. ● Topmost level of app's hierarchy. ● Opened by Up caret & edge swipe or swipe from anywhere. Gautham NS
  • 16. Branding ● Branding does not stop at ActionBar. ● Use Android Holo Colors Generator. ( android-holo-colors.com ) Gautham NS
  • 17. Branding done right Gautham NS
  • 18. ActionBar Implementation ● Available for Android 3.0 and above. ● Use ActionBarSherlock for 2.x and up. ● ActionBarSherlock uses native implementation for 4.0+ and custom implementation for previous versions. Gautham NS
  • 19. ActionBarSherlock implementation ● Extend SherlockActivity or SherlockFragmentActivity. ● getSupportActionBar() (instead of getActionBar()). ● SherlockFragment and SherlockListFragment if you want menu related methods in fragments. Gautham NS
  • 20. Swiping between tabs ● Always allow the user to navigate between views by swiping left or right on the content area. ● Use ViewPager in conjunction with the ActionBar tabs ● Use fragments as tabs. ● http://developer.android.com/training/implementing-nav igation/lateral.html ● Bug in Android system in landscape when swiping Gautham NS
  • 21. Drawers (Slide-out menu) ● New pattern becoming very popular for navigation. ● Lot of debate in the Android community about its behaviour. ● Popular library: SlidingMenu by Jeremy Feinstein. ( https://github.com/jfeinstein10/SlidingMenu ) Gautham NS
  • 22. Drag. And drop. Any.do style ● Sorting list view with the help of drag and drop. ● Useful for todo list, favorites, music playlists, groceries list etc. ● Easy and intuitive rearranging of list items. ● Remember, Not every list needs drag and drop. ● App should sort for the user based on the usage patterns. Gautham NS
  • 23. Drag. And Drop. ● Let the users know they can drag and drop. ● One way is by showing drag drop image. Gautham NS
  • 24. Swipe to dismiss ● As the name suggests, swipe to remove an item. ● Actions can also be mark completed, archive, etc. ● Used in android core UI (dismissing notifications). Gautham NS
  • 25. Swipe to dismiss ● Swipe from which side? Preferably both. ● Not suitable for all apps. ● Few downsides – Difficult to discover. – Swipe also used for navigation between tabs. – Accidental swiping can happen. Should allow for recovering data. Gautham NS
  • 26. Implementation ● Library: DragSortListView by Carl A. Bauer. ● Supports drag and drop sorting and swipe to dismiss. ● DragSortListView an extension of Android ListView. ● Allows both click to remove and fling to remove. Gautham NS
  • 27. Example xml <com.mobeta.android.dslv.DragSortListView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:dslv="http://schemas.android.com/apk/res/org.blrdroid .expenseapp" android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" ----- ----- ----- dslv:track_drag_sort="false" dslv:use_default_controller="true" /> Gautham NS
  • 28. Java code: mDslv = getListView(); DragSortController controller = new DragSortController(mDslv); mDslv.setFloatViewManager(controller); mDslv.setOnTouchListener(controller); mDslv.setDropListener(mDropListener); mDslv.setRemoveListener(mRemoveListener); Gautham NS
  • 29. Finally, Questions? @gauthamns gauthamns@onetouchexpenser.com Gautham NS