Book Image

Mastering Xamarin.Forms - Second Edition

By : Ed Snider
Book Image

Mastering Xamarin.Forms - Second Edition

By: Ed Snider

Overview of this book

Discover how to extend and build upon the components of the Xamarin.Forms toolkit to develop effective, robust mobile app architecture. Starting with an app built with the basics of the Xamarin.Forms toolkit, we'll go step by step through several advanced topics to create a solution architecture rich with the benefits of good design patterns and best practices. We'll start by introducing a core separation between the app's user interface and the app's business logic by applying the MVVM pattern and data-binding. Then we will focus on building out a layer of plugin-like services that handle platform-specific utilities such as navigation and geo-location, as well as how to loosely use these services in the app with inversion of control and dependency injection. Next we'll connect the app to a live web-based API and set up offline synchronization. Then, we'll dive into testing the app logic through unit tests. Finally, we will setup Visual Studio App Center to automate building, testing, distributing and monitoring the app.
Table of Contents (11 chapters)

Navigation

The overarching goal of this book is to show how you can build a solid architecture based on design patterns and best practices; the objective of this chapter is to take our TripLog app one step closer to achieving that goal. By introducing MVVM into our TripLog app in Chapter 2, MVVM and Data Binding, we set up the app with a very clear pattern to separate the user interface from the rest of the logic in the app. Each subsequent chapter, starting with this one, further advances this concept of separation.

In Chapter 2, MVVM and Data Binding, we moved a large portion of the app logic into ViewModels; however, navigation is still being initiated from the Pages (Views). In this chapter, we will also move navigation into ViewModels.

Here is a quick look at what we'll cover in this chapter:

  • Understanding the basics of the Xamarin.Forms navigation API
  • Thinking about...