public CompassPage()
        {
            CompassViewModel viewModel;

            InitializeComponent();
            BindingContext          = viewModel = new CompassViewModel();
            Compass.ReadingChanged += Compass_ReadingChanged;
            try
            {
                if (!Compass.IsMonitoring)
                {
                    Compass.Start(viewModel.Speed);
                }
            }
            catch (FeatureNotSupportedException fnsEx)
            {
                // Feature not supported on device
                //UserDialogs.Instance.Alert(AppResources.CihazDesteklemiyor, AppResources.CihazDesteklemiyor);
                Debug.WriteLine($"**** {this.GetType().Name}.{nameof(Compass_ReadingChanged)}: {fnsEx.Message}");
            }
            catch (Exception ex)
            {
                UserDialogs.Instance.Alert(ex.Message);
                Debug.WriteLine(ex.Message);
            }
        }
        public CompassPage()
        {
            InitializeComponent();

            On <Xamarin.Forms.PlatformConfiguration.iOS>().SetUseSafeArea(true);

            BindingContext = new CompassViewModel();
        }
        public void Compass_Changed_Should_Update_Aspect(double heading, string expectedAspect)
        {
            var compassMock = new Mock <ICompassSensor>();

            var compassViewModel = new CompassViewModel(compassMock.Object);

            compassViewModel.OnAppearing();

            compassMock.Raise(c => c.ReadingChanged += null, new CompassChangedEventArgs(new CompassData(heading)));

            Assert.AreEqual(expectedAspect, compassViewModel.CurrentAspect);
            Assert.AreEqual(heading, compassViewModel.CurrentHeading);
        }