Bu sene Mayıs ayındaki online Build etkinliğinde duyurulan .NET Multi-platform App UI, yani kısaca .NET MAUI, Xamarin Forms’un evrilmiş ve geliştirilmiş versiyonu diyebiliriz. Peki nedir bu MAUI? Xamarin artık kullanılmayacak mı? Bu değişim neleri etkileyecek? Bu soruları yanıtlamaya çalışalım.

MAUI neymiş?

.NET 5 ile birlikte tüm .NET platformlarını bir araya getirmek hedefleniyor ve MAUI’da bunun bir sonucu aslında. Normalde Xamarin.Forms ile her platform için ayrı bir proje oluştur ve geliştirmeye öyle devam edilirdi. MAUI ile birlikte ayrı ayrı projeler olarak değil de tek bir proje mimarisi ile geliştirme yapılacak. Yani MAUI, Xamarin’in isim değiştirmiş hali değil yeni bir framework’tür.

Underground Cavern by laspinter

We can use MessagingCenter for this. In your first page, subscribe a message:

public FirstPage()
MessagingCenter.Subscribe<SecondPage>(this, "StartProgress", (sender) =>

public void StartProgress()
//do progression here
//and set Progress bar

In second page send the message:

private void Onpress(s, e)
MessagingCenter.Send(this, "StartProgress");

You can find documentation in here.

In this article, I will first examine the FaceID and TouchID authentication methods and then I will talk about how to add them to our Xamarin Forms applications.

iOS Biometric Authentication

Before we move on to how to use these in practice, let’s see these technologies and how they work on iOS.

Biometric authentication in iOS consists of TouchID and FaceID. What Apple recommends to be aware of when using these APIs in Human Interface Guideline is listed below:

  • The user may never have used or removed biometric authentication. Ensure that the application behaves accordingly.
  • Providing a single login method to the user…

by tanyapodolskaia

We can force the pages into Landscape mode at runtime as needed. UWP, iOS and Android require different approach, so here’s how we can handled it.


public partial class MyAwesomePage : ContentPage
public MyAwesomePage()
protected override void OnAppearing()
MessagingCenter.Send(this, "SetLandscapeModeOn");
protected override void OnDisappearing()
MessagingCenter.Send(this, "SetLandscapeModeOff");
MessagingCenter.Unsubscribe<MyAwesomePage>(this, "SetLandscapeModeOff");


public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
LoadApplication(new App());
MessagingCenter.Subscribe<MyAwesomePage>(this, "SetLandscapeModeOn", sender =>
UIDevice.CurrentDevice.SetValueForKey(new NSNumber((int)UIInterfaceOrientation.LandscapeLeft), new NSString("orientation"))…

by TsaoShin

We can create a simple round buttton with font icon in Xamarin.Forms application like below:

  1. Add font family to your shared app as an EmbeddedResource
  2. Register the font file with the assembly, in a file such as AssemblyInfo.cs, using the ExportFont attribute.
using Xamarin.Forms;using Xamarin.Forms.Xaml;[assembly: XamlCompilation(XamlCompilationOptions.Compile)][assembly: ExportFont(“fa-solid-900.ttf”, Alias = “fa-solid”)]

3. Create a resource in App.xaml

<Application.Resources><x:String x:Key="IconCheck">&#xf00c;</x:String></Application.Resources>

4.Create a button in Page.xaml

by Rajanandepu

We can use DependencyService to check if notifications is enabled for the app.

In iOS:

[assembly: Dependency(typeof(DeviceService))]
class DeviceService : IDeviceService
public bool GetApplicationNotificationSettings()
var settings = UIApplication.SharedApplication.CurrentUserNotificationSettings.Types;
return settings != UIUserNotificationType.None;

In Forms:

public interface IDeviceService
bool GetApplicationNotificationSettings();

And after these, you can call your DependencyService from your page or view model like this:

bool isNotificationEnabled = DependencyService.Get<IDeviceService>().GetApplicationNotificationSettings();

by F-Kroll

You can open your pages dynamically in your Xamarin.Forms application. For that we can use Type.GetType(string):

async Task OpenPage(object obj)
var pageType= Type.GetType($"NamespaceOfYourView.{obj}");
var page = Activator.CreateInstance(pageType) as Page;
await Application.Current.MainPage.Navigation.PushAsync(page );

You can read details of Type.GetType in here.

by sanitrance

SecKeyRef using KeyChain access to read and write key as stated in official documentation:

A SecKeyRef instance that represents a key that is stored in a keychain can be safely cast to a SecKeychainItemRef for manipulation as a keychain item. On the other hand, if the key is not stored in a keychain, casting the object to a SecKeychainItemRef and passing it to Keychain Services functions returns errors.

Having a provisioning profile in iOS application developed in Xcode to use SecKeyRef is not required, but in Xamarin.iOS application in Visual Studio for Mac, it is required to use Entitlements.plist to enable keychain access. So if your binding library used the SecKey API, you need to enable KeyChain Access in Entitlements.plist and set apple developer account in your project.


The Activity Identification API is a great way of adding contextual awareness to our application, by letting us detect whether the user is currently walking, running, cycling, traveling in a car etc.

For example; we may want to develop a fitness app that determines how many kilometers user are running or walking on a particular day and after that, we can find the calories burnt on that day. There are a few ways to do this. …

A geofence is a virtual perimeter set on a real geographic area. Combining a user position with a geofence perimeter, it is possible to know if the user is inside the geofence or if he is exiting or entering the area.

In this article, we will discuss how to use the geofence to notify the user when the device enters/exits an area using the HMS Location Kit in a Xamarin.Android application. We will also add and customize HuaweiMap, which includes drawing circles, adding pointers, and using nearby searches in search places. …

Tuğçe Arar

Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store