Как установить xamarin для visual studio 2019

Обновлено: 04.07.2024

Xamarin.Forms представляет платформу, которая нацелена на создание кроссплатформенных приложений под Android, iOS и Windows 10. Зачем использовать именно данную платформу, какие преимущества она несет? Есть определенные статистические данные, что значительная часть мобильных приложений создается более чем для одной платформы, например, для Android и iOS. Однако неизбежно разработчики сталкиваются со следующими трудностями:

различие в подходах построение графического интерфейса так или иначе влияет на разработку. Разработчики вынуждены подстраивать приложение под требования к интерфейсу на конкретной платформе

разные API - различие в программных интерфейсах и реализациях тех или иных функциональностей также требует от программиста учет этих специфических особенностей

разные платформы для разработки. Например, чтобы создавать приложения для iOS нам необходима соответствующая среда - Mac OS X и ряд специальных инструментов, типа XCode. А в качестве языка программирования выбирается Objective-C или Swift. Для Androidа мы можем использовать самый разный набор сред - Android Studio, Eclipse и т.д. Но здесь для подавляющего большинства приложений применяется Java или Kotlin.

Такой диапазон платформ, средств разработки и языков программирования не может положительно сказываться на сроках создания приложений, и, в конечном счете, на денежных средствах, выделяемых на разработку. Было бы очень эффективно иметь один инструмент, который позволял легко и просто создавать приложения сразу для всех платформ. И именно таким инструментом и является платформа Xamarin (произносится как "зэмарин").

Преимущества использования Xamarin.Forms:

В процессе разработки создается единый код для всех платформ

Xamarin предоставляет прямой доступ к нативным API каждой платформы

5 января 2021 года вышла последняя версия данной платформы - Xamarin Forms 5.0 и собственно она и будет рассматриваться в данном руководстве.

Как работает Xamarin

Работу Xamarin графически можно представить следующим образом:

Как работает Xamarin Forms

На уровне каждой отдельной платформы Xamarin полагается на ряд субплатформ. В частности:

Xamarin.Android - библиотеки для создания приложений на ОС Android

Xamarin.iOS - библиотеки для создания приложений для iOS

Эти субплатформы играют большую роль - через них приложения могут напрявлять запросы к прикладным интерфейсам на устройствах под управлением ОС Android или iOS. Вкратце это выглядит следующим образом.

И наоборот, когда Android Runtime (ART) обращается к приложению с кодом Xamarin, то все вызовы проходят через обертку Android Callable Wrappers (ACW) .

Установка Xamarin

Для разработки кроссплатформенных приложений на Xamarin нам нужна среда разработки. Для Windows такой средой является Visual Studio. То есть, если нашей ОС является Windows, то нам вначале надо установить Visual Studio 2019. При этом можно использовать в том числе и бесплатный выпуск Visual Studio 2019 Community.

При установке Visual Studio 2019 в программе для установщика обязательно надо выбрать пункт "Разработка мобильных приложений на .NET":

Установка Xamarin для Visual Studio 2019

После инсталляции мы сможем в меню Help -> About Microsoft Visual Studio увидеть отметку о Xamarin:

Xamarin в Visual Studio

Если целевой операционной системой является Mac OS X, то в этом случе нам надо установить Visual Studio for Mac.

Кроме того, для разработки на Mac OS X требуется установить XCode, который доступен в AppStore.

Перед началом работы изучите требования к системе.

Установка

Xamarin можно установить в рамках нового процесса установки Visual Studio 2019, выполнив следующие действия:

Скачайте Visual Studio 2019 Community, Visual Studio Professional или Visual Studio Enterprise со страницы Visual Studio (ссылки для скачивания приведены в нижней части).

Дважды щелкните скачанный пакет, чтобы начать установку.

Разработка мобильных приложений на выбранной платформе .NET

Если вы готовы начать установку Visual Studio 2019, нажмите кнопку Установить в правом нижнем углу:

Кнопка "Установить"

Ход выполнения установки можно отслеживать с помощью индикаторов:

Индикаторы хода выполнения во время установки

После установки Visual Studio 2019 нажмите кнопку Запустить, чтобы запустить Visual Studio:

Расположение кнопки "Запуск"

Добавление Xamarin в Visual Studio 2019

Если среда Visual Studio 2019 уже установлена, Xamarin можно добавить путем повторного запуска установщика Visual Studio 2019 для изменения рабочих нагрузок (Дополнительные сведения см. в разделе об изменении Visual Studio). Затем следует выполнить приведенные выше действия по установке Xamarin.

Дополнительные сведения о скачивании и установке Visual Studio 2019 см. в статье Установка Visual Studio 2019.

Чтобы проверить, установлена ли среда Xamarin, в Visual Studio 2019 щелкните меню Справка. Если Xamarin установлен, вы увидите пункт меню Xamarin, как показано на снимке экрана:

Пункт меню Xamarin в меню "Справка"

Кроме того, можно щелкнуть Справка > О Microsoft Visual Studio и, прокрутив список установленных продуктов, узнать, установлена ли среда Xamarin.

Экран установленных продуктов Visual Studio 2019

Дополнительные сведения о поиске данных о версии см. в статье Где можно найти сведения о версии и журналы?

Следующие шаги

Установка Xamarin в Visual Studio 2019 позволяет приступить к написанию кода для приложений, но требует дополнительной настройки для создания и развертывания приложений в симуляторе, эмуляторе и на устройствах. Сведения в приведенных далее руководствах помогут завершить установку и начать создавать кроссплатформенные приложения.

В этом пошаговом руководстве с помощью Visual Studio 2017 или 2019 вы создадите кроссплатформенный пакет NuGet, который можно использовать в проектах для мобильных устройств в Windows, iOS и Android.

предварительные требования

nuget.exe является программой интерфейса командной строки, а не установщиком, поэтому сохраните скачиваемый из браузера файл, но не запускайте его.

Создание структуры проекта и кода абстракции

Новый проект пустого приложения (переносимое Xamarin.Forms) в Visual Studio 2017

Новый проект пустого приложения (переносимое Xamarin.Forms) в Visual Studio 2019

Измените имя на LoggingLibrary и щелкните "Создать".

Новая конфигурация пустого приложения (переносимое Xamarin.Forms) в Visual Studio 2019

Полученное решение содержит два общих проекта, а также различные проекты для конкретных платформ:

  • Проект ILoggingLibrary , который содержится в файле ILoggingLibrary.shared.cs , определяет общий интерфейс (контактную зону API) компонента. Именно здесь вы можете определить интерфейс для библиотеки.
  • Другой общий проект содержит код в CrossLoggingLibrary.shared.cs , который будет определять реализацию абстрактного интерфейса во время выполнения для конкретной платформы. В общем случае изменять этот файл не требуется.
  • Каждый из проектов для конкретных платформ, таких как LoggingLibrary.android.cs , содержит собственную реализацию интерфейса в его соответствующих файлах LoggingLibraryImplementation.cs (VS 2017) или LoggingLibrary.<PLATFORM>.cs (VS 2019). Именно здесь вы можете создать код библиотеки.

По умолчанию файл ILoggingLibrary.shared.cs проекта ILoggingLibrary содержит определение интерфейса, но не методы. В рамках этого пошагового руководства добавьте метод Log следующим образом:

Написание кода для конкретных платформ

Чтобы реализовать интерфейс ILoggingLibrary и его методы для конкретной платформы, сделайте следующее:

Откройте файл LoggingLibraryImplementation.cs (VS 2017) или LoggingLibrary.<PLATFORM>.cs (VS 2019) для проекта каждой платформы и добавьте необходимый код. Например (при использовании проекта платформы Android ):

Повторите эту реализацию в проектах для каждой платформы, которую требуется поддерживать.

Щелкните правой кнопкой мыши решение и выберите Собрать решение, чтобы проверить свою работу и создать артефакты, которые вы затем упакуете. Если возникают ошибки об отсутствующих ссылках, щелкните решение правой кнопкой мыши, выберите Восстановить пакеты NuGet, чтобы установить зависимости, и повторите сборку.

Если вы используете Visual Studio 2019, перед тем как выбрать параметр Восстановить пакеты NuGet и попытаться выполнить перестроение, необходимо изменить версию MSBuild.Sdk.Extras на 2.0.54 в LoggingLibrary.csproj . Доступ к этому файлу можно получить только щелкнув правой кнопкой мыши проект (под решением) и выбрав Unload Project , после чего нужно щелкнуть правой кнопкой мыши выгруженный проект и выбрать Edit LoggingLibrary.csproj .

Чтобы выполнить сборку для iOS, необходим сетевой Mac, подключенный к Visual Studio, как описано в разделе Введение в Xamarin.iOS для Visual Studio. Если у вас нет доступного Mac, очистите проект iOS в диспетчере конфигураций (шаг 3 выше).

Создание и изменение файла NUSPEC

Откройте командную строку, перейдите в папку LoggingLibrary , находящуюся на один уровень ниже места расположения файла .sln , и выполните команду NuGet spec , чтобы создать первичный файл Package.nuspec :

Переименуйте этот файл на LoggingLibrary.nuspec и откройте его в редакторе.

Вы можете добавить для версии пакета суффикс -alpha , -beta или -rc , чтобы пометить пакет как предварительную версию. Дополнительные сведения о предварительных версиях см. в разделе Предварительные версии.

Добавление базовых сборок

Чтобы включить базовые сборки для конкретной платформы, добавьте следующий код в элемент <files> файла LoggingLibrary.nuspec соответствующим образом для поддерживаемых платформ:

Чтобы сократить имена файлов DLL и XML, щелкните правой кнопкой мыши любой заданный проект, откройте вкладку Библиотека и измените имена сборок.

Добавление зависимостей

При наличии конкретных зависимостей для собственных реализаций укажите их с помощью элемента <dependencies> с элементами <group> , например:

Например, следующий код задает iTextSharp в качестве зависимости для целевого объекта UAP:

Итоговый файл NUSPEC

Итоговый файл .nuspec должен выглядеть следующим образом (YOUR_NAME, и в этом случае необходимо заменить на соответствующее значение):

Упаковка компонента

Когда будет готов файл .nuspec со ссылками на все файлы, которые необходимо включить в пакет, можно выполнить команду pack :

Это действие создаст файл LoggingLibrary.YOUR_NAME.1.0.0.nupkg . Если открыть файл в таком средстве, как обозреватель пакетов NuGet, и развернуть все узлы, отобразится следующее содержимое:

Пакет LoggingLibrary в обозревателе пакетов NuGet

Чтобы предоставить доступ к пакету другим разработчикам, следуйте инструкциям в разделе Публикация пакета.

Первая часть будет демонстрировать, как создать приложение, которое будет преобразовать буквенно-цифровой номер, введенный пользователем в числовой номер телефона и затем вызывать этот номер.

Пример итогового приложения

Пример итогового приложения

И так, условимся, что мы начинаем новый проект в Visual Studio с Xamarin.Forms под названием Phoneword:

1). Сначала запускаем Visual Studio. На картинке начальное окно программы:

Начальное окно программы Visual Studio

Начальное окно программы Visual Studio

Нажимаем на кнопку создания нового проекта

Нажимаем на кнопку создания нового проекта

3). В диалоге New Project, жмем Cross-Platform, выбираем шаблон Mobile App (Xamarin.Forms), задаем имя Phoneword, выбираем расположение проекта и жмем кнопку OK:

Диалог создания проекта

Диалог создания проекта

Диалог выбора платформ и стратегии развития проекта

Диалог выбора платформ и стратегии развития проекта

5). В разделе Solution Explorer, проекта Phoneword, делаем двойной щелчок на MainPage.xaml для открытия этого файла в редакторе:

Открытый файл MainPage.xaml в редакторе

Открытый файл MainPage.xaml в редакторе

6). В MainPage.xaml, удаляем весь код шаблона и заменяем кодом, который ниже. Этот код декларативно определяет интерфейс пользователя для страницы:

Сохраняем изменения в MainPage.xaml , нажав комбинацию CTRL+S, и закрываем файл.

7). В разделе Solution Explorer, распускаем MainPage.xaml и двойным щелчком открываем файл кода страницы MainPage.xaml.cs:

Файл кода страницы MainPage.xaml.cs

Файл кода страницы MainPage.xaml.cs

8). В коде MainPage.xaml.cs, удаляем весь код шаблона и заменяем его на следующий код. Методы OnTranslate и OnCall должны быть выполнены в ответ на нажатие кнопок Translate и Call со стороны пользовательского интерфейса соответственно:

Сохраняем изменения в файле MainPage.xaml.cs нажатием комбинации CTRL+S, закрываем файл.

Добавляем новый элемент в проект

Добавляем новый элемент в проект

Диалог добавления нового класса

Диалог добавления нового класса

11). В файле PhoneTranslator.cs, удаляем весь шаблон кода и заменяем на ниже указанный. Этот код транслирует буквы в телефонный номер:

Сохраняем файл PhoneTranslator.cs , нажатием CTRL+S, и закрываем файл.

Добавляем новый элемент в проект

Добавляем новый элемент в проект

Добавление нового интерфейса

Добавление нового интерфейса

14). В файле IDialer.cs, удаляем шаблон кода по умолчанию и заменяем его кодом, указанным ниже. В этом коде определен метод Dial , который должен быть реализована каждой платформе для набора переведенного номера телефона:

Сохраняем изменения IDialer.cs нажатием CTRL+S, закрываем файл.

Замечание. Общий код для приложения сейчас закончен. На уровне определенной платформы код набора номера теперь будет реализован как DependencyService.

Добавляем элемент к проекту Phoneword.iOS

Добавляем элемент к проекту Phoneword.iOS

16). В разделе диалога Add New Item, выбираемApple > Code > Class, вводим имя PhoneDialer, и жмем на кнопку Add:

Добавляем новый класс к проекту iOS

Добавляем новый класс к проекту iOS

17). В файле PhoneDialer.cs, удаляем весь шаблон кода и заменяем его на ниже приведенный. Этот код содержит метод Dial который должен быть использован платформой iOS для набора транслированного телефонного номера:

Сохраняем файл PhoneDialer.cs , нажатием CTRL+S, и закрываем файл.

Добавляем элемент к проекту Phoneword.Android

Добавляем элемент к проекту Phoneword.Android

19). В разделе диалога Add New Item, выбираем Android > Code > Class, вводим имя PhoneDialer, и жмем на кнопку Add:

Добавляем новый класс к проекту Android

Добавляем новый класс к проекту Android

20). В файле PhoneDialer.cs, удаляем весь шаблон кода и заменяем его на ниже приведенный. Этот код содержит метод Dial который должен быть использован платформой Android для набора транслированного телефонного номера:

Сохраняем файл PhoneDialer.cs , нажатием CTRL+S, и закрываем файл.

Замечание. Обратите внимание, что этот код предполагает, что вы используете новейший Android API.

21). Во вкладке Solution Explorer, в проекте Phoneword.Android, двумя щелчками открываем файл MainActivity.cs , удаляем весь шаблон кода и заменяем на следующий код:

Сохраняем файл MainActivity.cs , нажатием CTRL+S, и закрываем файл.

23). В секции Required permissions , разрешаем телефону выполнять звонок CALL_PHONE:

Разрешаем телефону звонить

Разрешаем телефону звонить

Сохраняем файл манифеста, нажатием CTRL+S, и закрываем файл.

Добавляем элемент к проекту Phoneword.UWP

Добавляем элемент к проекту Phoneword.UWP

Добавляем новый класс к проекту UWP

Добавляем новый класс к проекту UWP

26). В файле PhoneDialer.cs, удаляем весь шаблон кода и заменяем его на ниже приведенный. Этот код содержит метод Dial который должен быть использован платформой Universal Windows Platform для набора транслированного телефонного номера:

Сохраняем файл PphoneDialer.cs , нажатием CTRL+S, и закрываем файл.

Добавляем новую ссылку к проекту UWP

Добавляем новую ссылку к проекту UWP

28). В диалоге Reference Manager , выбираем Universal Windows > Extensions > Windows Mobile Extensions for UWP, и жмем на кнопку OK:

Диалог менеджера ссылок

Диалог менеджера ссылок

Замечание. В v10.0.16299.0 Windows Mobile Extensions для UWP должен быть выбран класс PhoneLine .

29). Во вкладке Solution Explorer, в проекте Phoneword.UWP, делаем двойной щелчок и открываем файл Package.appxmanifest:

Настройка файла Package.appxmanifest

Настройка файла Package.appxmanifest

30). На странице Capabilities , разрешаем возможность звонить Phone Call:

Сохраняем изменения в файле нажатием CTRL+S, и закрываем файл.

32). Во вкладке Solution Explorer, кликаем правую кнопку на проекте Phoneword.UWP и выбираем Set as StartUp Project:

Устанавливаем проект по умолчанию

Устанавливаем проект по умолчанию

33). В панели инструментов Visual Studio, жмем кнопку Start (треугольная кнопка, которая имитирует кнопку проигрывания) для запуска приложения:

Запущенное приложение UWP

Запущенное приложение UWP

34). Во вкладке Solution Explorer, жмем правой кнопкой на проект Phoneword.Android выбираем пункт Set as StartUp Project.

35). На панели инструментов Visual Studio, жмем на кнопку Start (треугольная кнопка, которая имитирует кнопку проигрывания) для запуска приложения Android в эмуляторе:

Читайте также: