2013-05-16 5 views
2

Я узнал, что Xamarin.mobile предоставляет единый набор API-интерфейсов на разных платформах. Но реализуя в кросс-платформенном приложении, как это выглядит?Xalarin.Mobile кроссплатформенная реализация

Архитектура кросс-платформы состоит из одного проекта, содержащего общие коды (основной проект) и другого проекта, состоящего из кодов пользовательских интерфейсов на платформу. Итак, поскольку Xamarin.mobile предоставляет один набор API, как мы можем использовать его для записи один раз и использовать везде? Например: реализовать mediapicker.TakePhotoAsync в одном классе и использовать его на нескольких платформах без написания того же кода на другой платформе. Потому что пример приложения, загруженного с Xamarin.mobile, состоит из приложений, разработанных для разных целей индивидуально (не перекрестно), хотя я вижу, что они используют одно и то же пространство имен, место для геолокации и контактов на разных платформах.

Спасибо!

+0

Чтобы уточнить, Xamarin.Mobile - это конкретная библиотека, входящая в состав Xamarin SDK, которая позволяет вам получить доступ к некоторым специфичным для платформы функциям с использованием общего API. Неясно, есть ли у вас вопрос о Xamarin.Mobile в частности или, в более общем плане, с использованием Xamarin.iOS и Xamarin.Android для кросс-платформенной разработки. – Jason

ответ

0

«Традиционный» подход Xamarin к кросс-платформенным приложениям заключается в использовании связывания файлов.

Я считаю, что это в настоящее время меняется на двойной подход рекомендуя либо:

  • файл сшивание

или

  • Portable Class Libraries (PCL)

Первая версия поддержки Xamarin PCL ожидается очень скоро (в любой день).

Когда это станет доступным и стабильным, я ожидаю, что вы увидите новые версии xamarin.mobile, которые доступны для PCL. Кроме того, они указали, что они могут открыть источник xamarin.mobile. Как и сегодня, я не думаю, что xamarin.mobile - очень активное развитие - я не верю, что он изменился/вырос в прошлом году.

До тех пор, пока эти изменения не произойдут, тогда, если вы хотите использовать xamarin.mobile из портативного кода, то лучшим вариантом может быть либо следовать по пути связывания файлов, либо использовать библиотеки PCL, но использовать некоторую форму facade для обертывания родные библиотеки xamarin.mobile внутри инъектируемых interface

+0

Спасибо за ответ. Я выбрал Xamarin.mobile, чтобы иметь один набор API-доступа, надеясь, что это позволит свести к минимуму коды и будет легко распространяться на разных платформах. Итак, какую альтернативу вы предлагаете для обеспечения общего доступа к API, который будет поддерживаться в PCL? –

+0

Я думаю, вы знаете, кто я уже ... так что вы уже знаете ответ, который я даю ... как подсказку: начинается с mvvm и заканчивается крестом ... также попробуйте прочитать http://stackoverflow.com/faq – Stuart

+0

Да, я знаю вас очень много: D Большое спасибо, я начну использовать MVVMCross и плагины (nugets). Но с помощью nuget я сталкиваюсь с той же проблемой, что и в [здесь] (http://stackoverflow.com/questions/16529794/mvvmcross-3-0-6-nuget-package-installation-issue) после попытки [этого] (http : //slodge.blogspot.nl/2012/09/mvvmcross-vnext-portable-class.html). Любое предложение? –