Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Mastering Xamarin.Forms
Mastering Xamarin.Forms

Mastering Xamarin.Forms: App architecture techniques for building multi-platform, native mobile apps with Xamarin.Forms 4 , Third Edition

eBook
€13.98 €19.99
Paperback
€24.99
Subscription
Free Trial
Renews at €18.99p/m

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing
Table of content icon View table of contents Preview book icon Preview Book

Mastering Xamarin.Forms

MVVM and Data Binding

In this chapter, we will take a look at the Model-View-ViewModel (MVVM) pattern, the MVVM elements that are offered with the Xamarin.Forms toolkit, and how we can expand on them to truly take advantage of the power of the pattern. As we dig into these topics, we will apply what we have learned to the TripLog app that we started building in Chapter 1, Getting Started.

In this chapter, we will cover the following topics:

  • Understanding the MVVM pattern and data binding
  • Adding the MVVM pattern and data binding to the Xamarin.Forms mobile app created in Chapter 1, Getting Started
  • Adding client-side validation to the Xamarin.Forms mobile app created in Chapter 1, Getting Started

Before we start applying the MVVM pattern to our app we will review the basics of the pattern in the following section.

Understanding the MVVM pattern

At its core, MVVM is a presentation pattern designed to control the separation between user interfaces and the rest of an application. The key elements of the MVVM pattern are as follows:

  • Models: Models represent the business entities of an application. When responses come back from an API, they are typically deserialized to Models.
  • Views: Views represent the actual pages or screens of an application, along with all of the elements that make them up, including custom controls. Views are very platform-specific and depend heavily on platform APIs to render the application's user interface (UI).
  • ViewModels: ViewModels control and manipulate the Views by serving as their data context. ViewModels are made up of a series of properties represented by Models. These properties are part of what is bound to the Views to provide the data that is displayed to users, or to collect the data that is entered or selected by users. In addition to Model...

Adding MVVM to the app

The first step of introducing MVVM into an app is to set up the structure by adding folders that will represent the core tenants of the pattern, such as Models, ViewModels, and Views. Traditionally, the Models and ViewModels live in a core library (usually, a portable class library or .NET standard library), whereas the Views live in a platform-specific library.

Thanks to the power of the Xamarin.Forms toolkit and its abstraction of platform-specific UI APIs, the Views in a Xamarin.Forms app can also live in the core library.

Just because the Views can live in the core library with the ViewModels and Models doesn't mean that separation between the UI and the app logic isn't important. As we will see in this chapter and throughout the rest of the book, the separation between the UI and app logic is instrumental in keeping the codebase maintainable, testable, and shareable.

When implementing a specific structure to support...

Validation

In software, data validation is a process that ensures the validity and integrity of user input and usually involves checking that data is in the correct format and contains an acceptable value. There are typically two types of validation when building apps: server-side and client-side. Both play an important role in the lifecycle of an app's data. Server-side validation is critical when it comes to security, making sure malicious data or code doesn't make its way into the server or backend infrastructure. Client-side validation is usually more about user experience than security. A mobile app should always validate its data before sending it to a backend (such as a web API) for a number of reasons, including the following:

  • To provide real-time feedback to the user about any issues instead of waiting on a response from the backend
  • To support saving data in offline scenarios where the backend is not available
  • To prevent encoding issues when sending...

Summary

In this chapter, we updated the app that we started creating in Chapter 1, Getting Started, by removing data and data-related logic from the Pages, offloading it to a series of ViewModels, and then binding the Pages to those ViewModels. In the next chapter, we will expand on the Xamarin.Forms navigation service so that we can also move navigation code from the Pages to the ViewModels.

Left arrow icon Right arrow icon

Key benefits

  • Updated for Xamarin.Forms 4
  • Packed with real-world scenarios and solutions to help you build professional grade mobile apps with Xamarin.Forms
  • Includes design patterns and best practice techniques that every mobile developer should know

Description

Discover how to extend and build upon the components of the most recent version of Xamarin.Forms to develop an effective, robust mobile app architecture. This new edition features Xamarin.Forms 4 updates, including CollectionView and RefreshView, new coverage of client-side validation, and updates on how to implement user authentication. Mastering Xamarin.Forms, Third Edition is one of the few Xamarin books structured around the development of a simple app from start to finish, beginning with a basic Xamarin.Forms app and going step by step through several advanced topics to create a solution architecture rich with the benefits of good design patterns and best practices. This book introduces a core separation between the app's user interface and the app's business logic by applying the MVVM pattern and data binding, and then focuses on building 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. You’ll connect the app to a live web-based API and set up offline synchronization before testing the app logic through unit testing. Finally, you will learn how to add monitoring to your Xamarin.Forms projects to track crashes and analytics and gain a proactive edge on quality.

Who is this book for?

This book is intended for .NET developers who are familiar with Xamarin mobile application development and the open source Xamarin.Forms toolkit. If you have already started working with Xamarin.Forms and want to take your app to the next level, making it more maintainable, testable and flexible, then this book is for you.

What you will learn

  • Find out how, when, and why to use architecture patterns and best practices with Xamarin.Forms
  • Implement the Model-View-ViewModel (MVVM) pattern and data binding in Xamarin.Forms mobile apps
  • Incorporate client-side validation in Xamarin.Forms mobile apps
  • Extend the Xamarin.Forms navigation API with a custom ViewModel-centric navigation service
  • Leverage the inversion of control and dependency injection patterns in Xamarin.Forms mobile apps
  • Work with online and offline data in Xamarin.Forms mobile apps
  • Use platform-specific APIs to build rich custom user interfaces in Xamarin.Forms mobile apps
  • Explore how to monitor mobile app quality using Visual Studio App Center

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Dec 30, 2019
Length: 200 pages
Edition : 3rd
Language : English
ISBN-13 : 9781839213380
Category :
Tools :

What do you get with a Packt Subscription?

Free for first 7 days. $19.99 p/m after that. Cancel any time!
Product feature icon Unlimited ad-free access to the largest independent learning library in tech. Access this title and thousands more!
Product feature icon 50+ new titles added per month, including many first-to-market concepts and exclusive early access to books as they are being written.
Product feature icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Product feature icon Thousands of reference materials covering every tech concept you need to stay up to date.
Subscribe now
View plans & pricing

Product Details

Publication date : Dec 30, 2019
Length: 200 pages
Edition : 3rd
Language : English
ISBN-13 : 9781839213380
Category :
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
€18.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
€189.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts
€264.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just €5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total 123.97
C# 8.0 and .NET Core 3.0 – Modern Cross-Platform Development
€65.99
Mastering Xamarin.Forms
€24.99
Hands-On RESTful Web Services with ASP.NET Core 3
€32.99
Total 123.97 Stars icon

Table of Contents

11 Chapters
Getting Started Chevron down icon Chevron up icon
MVVM and Data Binding Chevron down icon Chevron up icon
Navigation Chevron down icon Chevron up icon
Platform-Specific Services and Dependency Injection Chevron down icon Chevron up icon
User Interface Chevron down icon Chevron up icon
API Data Access Chevron down icon Chevron up icon
Authentication Chevron down icon Chevron up icon
Testing Chevron down icon Chevron up icon
App Monitoring Chevron down icon Chevron up icon
Other Books You May Enjoy Chevron down icon Chevron up icon
Index Chevron down icon Chevron up icon

Customer reviews

Top Reviews
Rating distribution
Full star icon Full star icon Full star icon Full star icon Half star icon 4.1
(10 Ratings)
5 star 70%
4 star 10%
3 star 0%
2 star 0%
1 star 20%
Filter icon Filter
Top Reviews

Filter reviews by




Nadine Meißner Apr 19, 2021
Full star icon Full star icon Full star icon Full star icon Full star icon 5
Wurde verschenkt. Dem beschenkten gefiel es Sehr.
Amazon Verified review Amazon
Skye Mar 06, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
If you have never tried Xamarin.Forms it can be very intimidating to jump in as a good Xamarin.Forms developer needs to understand iOS, Android and the Xamarin.Forms APIs. This book touches on every aspect of mobile app development from writing XAML, custom native renderers and app monitoring/analytics. I now recommend this book to Xamarin Developers and team members.Mastering Xamarin.Forms walks you through building a travel logging app from start to finish. This method of writing allows the app that is being written in each chapter to build on itself. There are detailed code samples for the reader to follow along using Visual Studio on windows or mac. I recommend to read the book chapter-to-chapter, but afterwards it is a great reference.I really enjoyed seeing the detailed code samples and explanations for all the popular topics. The author goes into detail about different open source projects in the Xamarin Ecosystem and shows the value of leveraging these libraries. Offline Data is a common troublesome topic in any mobile app, the chapter dedicated to offline data provides excellent advice for getting started in offline data.
Amazon Verified review Amazon
Jsh Apr 20, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
The blurb on the back cover says “Master Xamarin.Forms, Third Edition is one of the few Xamarin books structured around the development of a simple app from start to finish, beginning with a basic Xamarin.Forms app and going step by step through several advanced topics to create a solution architecture rich with the benefits of good design patterns and best practices”. That’s a fair description. I’ve read a lot of Xamarin.Forms books (probably the majority of Xamarin.Forms books), having been working with Xamarin.Forms solidly for 5+ years, and this is the best example I have seen of building up an app from scratch using good design patterns and practices.Whilst there are parts of the book where I would have liked it to go a bit further, there are bits where I would have liked an explanation of the pros and cons of possible alternatives rather than immediately pursuing one choice, and there are bits that I would do differently in complex apps, for the most part I find myself very satisfied with this book. It’s good to see the way that experienced developers do things. I already make use of some of Ed Snider’s work, using a NuGet that he worked on in my current app, as well as having used some of his code as a starting point that I have then adapted. As a result, I knew that Ed knows his stuff, and this book confirms that.One thing that I am also appreciative of, is that this book is well written and proofread. Whilst I haven’t typed all of the code in to check it, what I haven’t done is highlight error after error in the text, which is what I find myself doing in many of the Xamarin.Forms books that I have read. This one has been written well, so I haven’t been distracted from the technical content by errors in use of language.Recommended for intermediate and advanced developers.
Amazon Verified review Amazon
Alexandre Malavasi Jan 10, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
I just read a review copy of the this book written by Microsoft MVP Ed Snider and found it really easy to understand, even if the reader is not a Xamarin Developer, but is just familiar with .NET/C# platform.The book is absolutely worthwhile read for anyone who already knows and works with Xamarin, because it’s not only all of Xamarin.Forms 4' many features, it also takes you to the next level by showing you how to build high quality and standard enterprise mobile applications.I like the way the author explores the recommended approach for good and scalable architecture and the detailed explanation of the View-ViewModel (MVVM) framework. If you have never worked with this pattern, which is mandatory for a standard Xamarin app, the book is full of detailed examples that explain these patterns and show you how to put them to practical use.The book also contains a complete content reference to handling data between the App and external API’s Rest, covering local cache data, integrating with Azure Functions, HTTP requests and more.Given the breadth of its coverage from implementation from scratch with Authentication, to architecture design, API data service, unit tests, and dependency injection examples, I highly recommend this book for any mobile developers who want to learn Xamarin or go into it deeply. It is very well-written and offers lots of useful insights. Of all the books out there on Xamarin.Forms, this is the best one.
Amazon Verified review Amazon
Alvin Ashcraft Jan 19, 2020
Full star icon Full star icon Full star icon Full star icon Full star icon 5
There aren’t a lot of great Xamarin books available, but you can add this one to the shortlist. Mastering Xamarin.Forms by Ed Snider is a fantastic reference for mobile developers. If you’re a .NET developer with at least some exposure to Xamarin development, this book will give you the knowledge you need to build great mobile apps with Xamarin.Forms with Visual Studio on your Mac or Windows environment.Snider takes my favorite approach when writing the book. He builds an end-to-end sample app throughout the book, building onto it with the patterns and practices learned in each chapter. For me, getting hands-on and building a real-world app while reading a book or watching a video training course reinforces the lessons. The app in this book is a TripLog, which can be used as a travel log or diary.After creating the project and a couple of initial screens, Snider dives right into some patterns for mobile app development, starting with the MVVM (model-view-view model) pattern. With each pattern or practice, he explains the concept, how to implement it in Xamarin.Forms and .NET, and then explains how our apps benefit from the implementation. For MVVM, he goes into data binding and validation, which become trivial with the pattern.The next several chapters detail best practices for navigation, leveraging dependency injection to create platform-specific implementations across iOS, Android or UWP on Windows, and some UI tips for handling platform differences through custom renderers. Snider pulls some Azure concepts into the book with Azure Functions. Learn to make API calls from an app service into Azure Functions and then add authentication to Azure Functions and a login screen to the app. I’ve never used any data caching frameworks in my mobile apps, so the section on Akavache for caching was really helpful. It was pretty trivial to add some offline caching to the Xamarin app.The unit testing section is really thorough. I have seen many .NET books that just glance over the topic of unit testing and best practices for testing, but Snider really gives a solid base for readers here. Finally, in the final chapter, monitoring is covered. He mainly explains how to set up Visual Studio App Center to track some usage and the health of the app while it’s running out in the world. When optimally configured, this data can give the information developers need to keep their user base happy and engaged. Kudos to Ed Snider for a really well-written book for Xamarin.Forms developers. I strongly encourage you to check it out if you’re getting serious about building mobile apps.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is included in a Packt subscription? Chevron down icon Chevron up icon

A subscription provides you with full access to view all Packt and licnesed content online, this includes exclusive access to Early Access titles. Depending on the tier chosen you can also earn credits and discounts to use for owning content

How can I cancel my subscription? Chevron down icon Chevron up icon

To cancel your subscription with us simply go to the account page - found in the top right of the page or at https://subscription.packtpub.com/my-account/subscription - From here you will see the ‘cancel subscription’ button in the grey box with your subscription information in.

What are credits? Chevron down icon Chevron up icon

Credits can be earned from reading 40 section of any title within the payment cycle - a month starting from the day of subscription payment. You also earn a Credit every month if you subscribe to our annual or 18 month plans. Credits can be used to buy books DRM free, the same way that you would pay for a book. Your credits can be found in the subscription homepage - subscription.packtpub.com - clicking on ‘the my’ library dropdown and selecting ‘credits’.

What happens if an Early Access Course is cancelled? Chevron down icon Chevron up icon

Projects are rarely cancelled, but sometimes it's unavoidable. If an Early Access course is cancelled or excessively delayed, you can exchange your purchase for another course. For further details, please contact us here.

Where can I send feedback about an Early Access title? Chevron down icon Chevron up icon

If you have any feedback about the product you're reading, or Early Access in general, then please fill out a contact form here and we'll make sure the feedback gets to the right team. 

Can I download the code files for Early Access titles? Chevron down icon Chevron up icon

We try to ensure that all books in Early Access have code available to use, download, and fork on GitHub. This helps us be more agile in the development of the book, and helps keep the often changing code base of new versions and new technologies as up to date as possible. Unfortunately, however, there will be rare cases when it is not possible for us to have downloadable code samples available until publication.

When we publish the book, the code files will also be available to download from the Packt website.

How accurate is the publication date? Chevron down icon Chevron up icon

The publication date is as accurate as we can be at any point in the project. Unfortunately, delays can happen. Often those delays are out of our control, such as changes to the technology code base or delays in the tech release. We do our best to give you an accurate estimate of the publication date at any given time, and as more chapters are delivered, the more accurate the delivery date will become.

How will I know when new chapters are ready? Chevron down icon Chevron up icon

We'll let you know every time there has been an update to a course that you've bought in Early Access. You'll get an email to let you know there has been a new chapter, or a change to a previous chapter. The new chapters are automatically added to your account, so you can also check back there any time you're ready and download or read them online.

I am a Packt subscriber, do I get Early Access? Chevron down icon Chevron up icon

Yes, all Early Access content is fully available through your subscription. You will need to have a paid for or active trial subscription in order to access all titles.

How is Early Access delivered? Chevron down icon Chevron up icon

Early Access is currently only available as a PDF or through our online reader. As we make changes or add new chapters, the files in your Packt account will be updated so you can download them again or view them online immediately.

How do I buy Early Access content? Chevron down icon Chevron up icon

Early Access is a way of us getting our content to you quicker, but the method of buying the Early Access course is still the same. Just find the course you want to buy, go through the check-out steps, and you’ll get a confirmation email from us with information and a link to the relevant Early Access courses.

What is Early Access? Chevron down icon Chevron up icon

Keeping up to date with the latest technology is difficult; new versions, new frameworks, new techniques. This feature gives you a head-start to our content, as it's being created. With Early Access you'll receive each chapter as it's written, and get regular updates throughout the product's development, as well as the final course as soon as it's ready.We created Early Access as a means of giving you the information you need, as soon as it's available. As we go through the process of developing a course, 99% of it can be ready but we can't publish until that last 1% falls in to place. Early Access helps to unlock the potential of our content early, to help you start your learning when you need it most. You not only get access to every chapter as it's delivered, edited, and updated, but you'll also get the finalized, DRM-free product to download in any format you want when it's published. As a member of Packt, you'll also be eligible for our exclusive offers, including a free course every day, and discounts on new and popular titles.