Evolve 2014 - Effective Navigation in Xamarin Android

Preview:

DESCRIPTION

Video: https://www.youtube.com/watch?v=Hw8tB45kse4 Abstract: With so many navigation styles in Android, selecting what's perfect for your app can be difficult. There are Tabs, Navigation Drawers, and Dashboards... it can be overwhelming! Join James as he covers best practices for creating elegant navigation patterns for your Xamarin.Android mobile application. Together, you'll take a look at what style of navigation is optimal for different types of apps.

Citation preview

Effective Navigation in Xamarin.Android

Developer Evangelist, Xamarin@JamesMontemagno

James Montemagno

Why Navigation?

State of Navigation

Lists

Dashboards

Tabs

Tabs…in the wrong place

Drop Down List

Overflow Menu…don’t do this

Flyouts

Way too many ways!

Subtitle

Subtitle

Enter Navigation Drawer

How it works:

Why Navigation Drawer?

I am glad you asked

• User Familiarity

• Content First

• Standard Control

• Easy to Implement

• Highly Customizable

• “Fragment” First Approach

Demo

Combine It

• Plays great with:

• Tabs

• Drop Downs

• Buttons

• Just about anything

Better together

Tips & Tricks

• Only show specific menu items

• Hide most when open

• Show all when closed

• Open drawer on first run

• Gets your user familiar with you app

• Use standard icons

Even more effective

Android L

Compatibility

• ActionBarCompat v7

• Gotchas:

• Ensure you use Compat variables

• GravityCompat

• ?android:attr/activatedBackgroundIndicator doesn’t exist

• Use CheckedTextView and a custom drawable background

Xamarin.Forms Compatible

• Master

• Content Page w/ListView

• Detect Selection

• Set Detail Page

• Use same hamburger button

MasterDetailPage

Demo

Up Navigation

Up Navigation

Back vs. Up

Demo

Choose wiselyNot everyone needs it

Perhaps this would work nicelyMake use of overflow for sections not used often.

Evolution of an appEasily switch out fragments

Make Beautiful Navigable Apps!

!

code: http://github.com/jamesmontemagno/Xam.NavDrawer

Navigation.End(﴾)﴿;

James Montemagno@JamesMontemagno