43
Xamarin.Forms Navigation Patterns Dan Hermes developer, author, consultant, founder of Lexicon Systems [email protected] www.mobilecsharpcafe.com @danhermes Xamarin Dev Days Boston

Xamarin Navigation Patterns

Embed Size (px)

Citation preview

Page 1: Xamarin Navigation Patterns

Xamarin.FormsNavigation

Patterns

Dan Hermesdeveloper, author, consultant,

founder of Lexicon [email protected]

@danhermes

Xamarin Dev Days Boston

Page 2: Xamarin Navigation Patterns

About me

• Software consultant since 1999• Code, write, and lead teams • Minecraft, tiki cocktails, digital art, and

parrot• I love Xamarin

Page 3: Xamarin Navigation Patterns

Xamarin Book

Now Available on Amazon

“This weighty book gives clear guidance that will help you build quality apps, starting with architectural considerations, and then jumping into practical code strategies.” - Bryan Costanich, Vice President, Xamarin

“Dan Hermes’ extraordinary book is the most intelligent work on cross-platform mobile development I’ve seen.” – Jesse Liberty, Director of New Technology Development, Falafel Software, Xamarin Certified Developer / Xamarin MVP

Page 4: Xamarin Navigation Patterns

• Founded in 1999• Develop web and mobile

apps• Microsoft technology stack

We advise on and build apps for business.

Page 5: Xamarin Navigation Patterns

Our Clients Include

Page 6: Xamarin Navigation Patterns

What is Navigation?

• More than menus• Nav controls are a means to an end

Page 7: Xamarin Navigation Patterns

What is Navigation?

Page 8: Xamarin Navigation Patterns

What is Navigation?

• Gives users what they need to get around an app quickly, moving from screen to screen with confidence and ease

• This may include menus, tappable icons, buttons, tabs, and list items, as well as many types of gesture-sensitive screens to display data, information, and options to the user

Page 9: Xamarin Navigation Patterns

Navigation Patterns• Hierarchical • Modal • Drill-down list • Navigation drawer• Tabs• Springboard• Carousel

Page 10: Xamarin Navigation Patterns

Hierarchical

Modal

Page 11: Xamarin Navigation Patterns

Drill-down List

Page 12: Xamarin Navigation Patterns

Navigation Drawer

Page 13: Xamarin Navigation Patterns

Tabs

Page 14: Xamarin Navigation Patterns

Springboard

Page 15: Xamarin Navigation Patterns

Carousel

Page 16: Xamarin Navigation Patterns

Most Common Navigation Patterns

• Hierarchical• Modal

Page 17: Xamarin Navigation Patterns

Hierarchical

• stack-based pattern • allows users to move down into a stack of

screens • pop back out again, one screen at a time• drill-down or breadcrumb

Page 18: Xamarin Navigation Patterns

Hierarchical: Up and Back Buttons

Up

Back

Up

Page 19: Xamarin Navigation Patterns

Hierarchical Navigation using NavigationPage

• Instantiate a NavigationPage and pass in a ContentPage

• In the child page:• Set Title and Icon Properties• Navigation.PushAsync (new MyPage)• Navigation.PopAsync();

Page 20: Xamarin Navigation Patterns

NavigationPage

public class App : Application {{ public App() {

MainPage = new NavigationPage(new HomePage()); }}

Page 21: Xamarin Navigation Patterns

NavigationPage

• Demo: HomePage

Page 22: Xamarin Navigation Patterns

NavigationPage:Remove and Insert

• Navigation.RemovePage(page);• Navigation.InsertPageBefore(insertPage,

beforePage);

Page 23: Xamarin Navigation Patterns

Back Button

public override void OnBackButtonPressed(){ // your code here base.OnBackButtonPressed ();}

Page 24: Xamarin Navigation Patterns

Modal

• Single, interruptive pop-up or screen

Page 25: Xamarin Navigation Patterns

Modal Types

1.Box: floats on top of the main page and is usually an alert, dialog box, or menu that the user can respond to or cancel

2.Screen: replaces the main page entirely, interrupting the hierarchical navigation stack

Page 26: Xamarin Navigation Patterns

Modal

• NavigationPage for full-page modals • Alerts for user notifications • Action sheets for pop-up menus

Page 27: Xamarin Navigation Patterns

Full Screen Modal using Push and Pop

• Navigation.PushModalAsync( new nextPage());

• Navigation.PopModalAsync();

Page 28: Xamarin Navigation Patterns

Full Screen Modal using Push and Pop

• Demo: ModalPage

Page 29: Xamarin Navigation Patterns

Modal: Alerts

Boolean answer = await DisplayAlert(" Start", "Are you ready to begin?", "Yes", "No");

Page 30: Xamarin Navigation Patterns

Modal: Action Sheets

Button button = new Button { Text = "Show ActionSheet" };button.Clicked += async (sender, e) =>{ String action = await DisplayActionSheet("Options", "Cancel", null, "Here", "There", "Everywhere"); label.Text = "Action is :" + action;};

Page 31: Xamarin Navigation Patterns

Modal: Action Sheets

Page 32: Xamarin Navigation Patterns

Modal: Action Sheets

• Demo: PopupMenu

Page 33: Xamarin Navigation Patterns

Hierarchical vs. Modal

• Hierarchical – stack-based down and back up• Modal – lateral interruption

Page 34: Xamarin Navigation Patterns

Xamarin.Forms Navigation

• Hierarchical navigation using NavigationPage• Modal using NavigationPage, alerts, and ActionSheets• Drill-down lists using NavigationPage, ListView, and

TableView• Navigation drawer using MasterDetailPage• Tabs using TabbedPage• Springboard using images with gesture recognizers• Carousel using CarouselPage

Page 35: Xamarin Navigation Patterns

Drill-down Lists:NavigationPage

• Wrap list page in a NavigationPagepublic class App : Application{ public App() { MainPage = new NavigationPage(new DrilldownListViewByItem ()); }}

Page 36: Xamarin Navigation Patterns

Drill-down Lists

• Demo: DrilldownListViewByItem• Demo: DrilldownListViewByPage• Demo: DrilldownTableView

Page 37: Xamarin Navigation Patterns

Navigation Drawer

• Use MasterDetailPage

Page 38: Xamarin Navigation Patterns

Tabs using TabbedPage

• Static • Data-bound

• Demos

Page 39: Xamarin Navigation Patterns

Springboard: Images with

Gesture Recognizers

• Roll your own Springboard (demo)

Page 40: Xamarin Navigation Patterns

Carousel using CarouselPage

this.Children.Add(new FirstPage()); this.Children.Add(new SecondPage()); this.Children.Add(new ThirdPage());

demo

Page 41: Xamarin Navigation Patterns

Navigation Patterns• Hierarchical • Modal • Drill-down list • Navigation drawer• Tabs• Springboard• Carousel

Page 42: Xamarin Navigation Patterns

It’s all on GitHub

https://github.com/danhermes/xamarin-book-examples

Page 43: Xamarin Navigation Patterns

Xamarin.FormsNavigation

PatternsDan Hermes

developer, author, consultant, founder of Lexicon Systems

[email protected]

@danhermes Available on Amazon