Реализация приложения с мертвым счетом с использованием форм Xamarin

#xamarin #xamarin.ios #xamarin.android #xamarin.forms #cross-platform

#xamarin #xamarin.ios #xamarin.android #xamarin.forms #кросс-платформенный

Вопрос:

Мне нужно реализовать приложение мертвого счета с использованием xamarin. Для этого мне нужно получить доступ к шагомеру / акселерометру с Android / ios и Windows phone. Поскольку у них есть свои собственные API, которые нужно вызывать, я полагаю, что подход будет заключаться в создании интерфейса в проекте PCL, а затем иметь собственные реализации для каждой платформы. Затем их можно сделать видимыми с помощью сборок. Помимо этого, существуют ли какие-либо подходы, с помощью которых весь код может быть реализован в самом проекте PCL? Не имея собственных реализаций для каждой платформы?

Ответ №1:

Логика вашего приложения может быть выполнена в PCL, но вызов шагомера или акселерометра должен выполняться изначально.

Основной подход (просто пример)

 public interface IPedometer
{
    int GetSteps();
}
  

и этот интерфейс находится в вашем PCL.

На каждой собственной платформе создайте класс (например, NativePedometer), реализуйте этот интерфейс и исходный код для получения результата.

Используйте внедрение зависимостей на каждой собственной платформе, например

 DependencyService.Register<NativePedometer>();
  

Затем просто используйте приведенное ниже в вашем PCL.

DependencyService.Get<IPedometer>() и выполните бизнес-логику в вашем PCL. Это позволяет повторно использовать как можно больше кода на разных платформах.

Это лучший подход, но вы не можете избежать написания собственного кода, а под собственным кодом я подразумеваю C # в традиционных / собственных проектах Xamarin.

Комментарии:

1. У Джеймса Монтеманьо есть счетчик шагов. Куча примеров при поиске в Google собственных реализаций. github.com/jamesmontemagno/My-StepCounter