Как установить 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 полагается на ряд субплатформ. В частности:
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":
После инсталляции мы сможем в меню Help -> About Microsoft Visual Studio увидеть отметку о Xamarin:
Если целевой операционной системой является 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 (ссылки для скачивания приведены в нижней части).
Дважды щелкните скачанный пакет, чтобы начать установку.
Если вы готовы начать установку 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, как показано на снимке экрана:
Кроме того, можно щелкнуть Справка > О Microsoft Visual Studio и, прокрутив список установленных продуктов, узнать, установлена ли среда Xamarin.
Дополнительные сведения о поиске данных о версии см. в статье Где можно найти сведения о версии и журналы?
Следующие шаги
Установка Xamarin в Visual Studio 2019 позволяет приступить к написанию кода для приложений, но требует дополнительной настройки для создания и развертывания приложений в симуляторе, эмуляторе и на устройствах. Сведения в приведенных далее руководствах помогут завершить установку и начать создавать кроссплатформенные приложения.
В этом пошаговом руководстве с помощью Visual Studio 2017 или 2019 вы создадите кроссплатформенный пакет NuGet, который можно использовать в проектах для мобильных устройств в Windows, iOS и Android.
предварительные требования
nuget.exe является программой интерфейса командной строки, а не установщиком, поэтому сохраните скачиваемый из браузера файл, но не запускайте его.
Создание структуры проекта и кода абстракции
Измените имя на LoggingLibrary и щелкните "Создать".
Полученное решение содержит два общих проекта, а также различные проекты для конкретных платформ:
- Проект 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, и развернуть все узлы, отобразится следующее содержимое:
Чтобы предоставить доступ к пакету другим разработчикам, следуйте инструкциям в разделе Публикация пакета.
Первая часть будет демонстрировать, как создать приложение, которое будет преобразовать буквенно-цифровой номер, введенный пользователем в числовой номер телефона и затем вызывать этот номер.
Пример итогового приложения
И так, условимся, что мы начинаем новый проект в Visual Studio с Xamarin.Forms под названием Phoneword:
1). Сначала запускаем Visual Studio. На картинке начальное окно программы:
Начальное окно программы Visual Studio
Нажимаем на кнопку создания нового проекта
3). В диалоге New Project, жмем Cross-Platform, выбираем шаблон Mobile App (Xamarin.Forms), задаем имя Phoneword, выбираем расположение проекта и жмем кнопку OK:
Диалог создания проекта
Диалог выбора платформ и стратегии развития проекта
5). В разделе Solution Explorer, проекта Phoneword, делаем двойной щелчок на MainPage.xaml для открытия этого файла в редакторе:
Открытый файл MainPage.xaml в редакторе
6). В MainPage.xaml, удаляем весь код шаблона и заменяем кодом, который ниже. Этот код декларативно определяет интерфейс пользователя для страницы:
Сохраняем изменения в MainPage.xaml , нажав комбинацию CTRL+S, и закрываем файл.
7). В разделе Solution Explorer, распускаем MainPage.xaml и двойным щелчком открываем файл кода страницы 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
16). В разделе диалога Add New Item, выбираемApple > Code > Class, вводим имя PhoneDialer, и жмем на кнопку Add:
Добавляем новый класс к проекту iOS
17). В файле PhoneDialer.cs, удаляем весь шаблон кода и заменяем его на ниже приведенный. Этот код содержит метод Dial который должен быть использован платформой iOS для набора транслированного телефонного номера:
Сохраняем файл PhoneDialer.cs , нажатием CTRL+S, и закрываем файл.
Добавляем элемент к проекту Phoneword.Android
19). В разделе диалога Add New Item, выбираем Android > Code > Class, вводим имя PhoneDialer, и жмем на кнопку Add:
Добавляем новый класс к проекту 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
Добавляем новый класс к проекту UWP
26). В файле PhoneDialer.cs, удаляем весь шаблон кода и заменяем его на ниже приведенный. Этот код содержит метод Dial который должен быть использован платформой Universal Windows Platform для набора транслированного телефонного номера:
Сохраняем файл PphoneDialer.cs , нажатием CTRL+S, и закрываем файл.
Добавляем новую ссылку к проекту 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
30). На странице Capabilities , разрешаем возможность звонить Phone Call:
Сохраняем изменения в файле нажатием CTRL+S, и закрываем файл.
32). Во вкладке Solution Explorer, кликаем правую кнопку на проекте Phoneword.UWP и выбираем Set as StartUp Project:
Устанавливаем проект по умолчанию
33). В панели инструментов Visual Studio, жмем кнопку Start (треугольная кнопка, которая имитирует кнопку проигрывания) для запуска приложения:
Запущенное приложение UWP
34). Во вкладке Solution Explorer, жмем правой кнопкой на проект Phoneword.Android выбираем пункт Set as StartUp Project.
35). На панели инструментов Visual Studio, жмем на кнопку Start (треугольная кнопка, которая имитирует кнопку проигрывания) для запуска приложения Android в эмуляторе:
Читайте также: