Friday 21 February 2020

Xamarin Coding Standards

There are many best practices in writing Xamarin. Here are some that we’ve canonized where I work…
  •       By convention the identifier for the ViewModel is vm
  •       Do not assign more than one page to a view model. Generally speaking: it should be one page to one view model
  •     Do not pass view modes to methods of other pages
 The only code in code-behind (e.g., foo.xaml.cs) should be
  • initialize in the constructor
  • create the view model
  • assign the datacontext to the view model
  •  call the viewmodel’s Initialize method
·         Lifecycle methods such as OnAppearing and OnDisappearing

    Why: we want to keep the code behind as sparse as possible. Unit testing requires reaching into code and that is infinitely easier with a viewmodel.

Every ViewModel should have an initialize method.

    Why: Having an initialize method keeps most of the code for the vm out of the constructor. This is recommended practice by Microsoft, and allows for async methods.

Do not put Xaml in templates in App.xaml. Put the Xaml in the Xaml file.

    Why: App.xaml quickly becomes bloated and hard to work with. Having the Xaml in the Xaml file is natural and helps create the troika we want: foo.xaml, foo.xaml.cs and fooViewModel.cs.

Create viewmodel name by appending “viewmodel” to the xaml name

  • LigthController.xaml
  • LightController.xaml.cs
  • LightControllerViewModel.cs

    Why: It is far easier to find the file you want if we follow a convention.

Avoid Xaml file names ending in “view”

  • LightControllerView.xaml
  • LightControllerView.xaml.cs
  • LightControllerViewViewModel.cs

    Why: Adding view to a view file is redundant and it makes reading the name of the ViewModel more difficult.

Use commands rather than event handlers

// wrong - handled in code behind
<button Text="Divide by 2" Clicked="onClick" /> 
//correct - handled in viewmodel
<button Text="Divide by 2" ClickedCommand="{Binding DivideBy2Command"
 
Why: It is much easier to write unit tests when the event handler is in the viewmodel.

Generate a PDF File from HTML String

XFPDF

This repository demonstrates you to generate the PDF file from HTML string in Xamarin Forms without any third party package.
In Xamarin Forms, there is no default support either to generate the PDF or to view the PDF file. But you can achieve these requirements with native support through renderers for both Android and iOS platform.
The demo application in the repository is divided into three segments.
  1. Create HTML from URL.
  2. Convert the HTML string to PDF file.
  3. View the PDF file.
GitHub Link

All About .NET MAUI

  What’s .NET MAUI? .NET MAUI (.NET Multi-platform App UI) is a framework for building modern, multi-platform, natively compiled iOS, Androi...

Ads2