Xamarin simulator что это
Удаленный симулятор iOS для Windows
Удаленный симулятор iOS для Windows позволяет тестировать приложения в симуляторе iOS, который отображается в Windows с Visual Studio 2019 и Visual Studio 2017.
Начало работы
Удаленный симулятор iOS для Windows автоматически устанавливается в Visual Studio 2019 и Visual Studio 2017 как часть Xamarin. Чтобы использовать ее, выполните следующие действия.
Просмотрите это видео, чтобы получить пошаговые инструкции.
Окно симулятора
Панель инструментов в верхней части окна симулятора содержит несколько полезных кнопок.
Главная — имитирует кнопку «Главная» на устройстве iOS.
Блокировка — блокирует симулятор (проведите пальцем, чтобы разблокировать).
Снимок экрана — сохранение снимка экрана симулятора (хранящегося в пиктурес\ксамарин\иос симуляторе).
Параметры — отображает клавиатуру, расположение и другие параметры.
Другие параметры — предоставляет различные параметры симулятора, такие как вращение, жесты встряхивания и Touch ID.
Параметры
Щелкнув значок шестеренки на панели инструментов, вы откроете окно Параметры:
Эти параметры позволяют включить аппаратную клавиатуру, выбрать расположение, о котором устройство должно сообщить (поддерживаются как статические, так и подвижные расположения), включить функцию Touch ID, а также сбросить содержимое и настройки симулятора.
Другие параметры
Кнопка с многоточием на панели инструментов открывает другие параметры, такие как вращение, жесты встряхивания и перезагрузка. Эти же параметры можно просмотреть в виде списка, щелкнув правой кнопкой мыши в любом месте окна симулятора:
Поддержка сенсорного экрана
Большинство современных компьютеров Windows имеют сенсорные экраны. Поскольку удаленный симулятор iOS для Windows поддерживает взаимодействия с сенсорным экраном, вы можете протестировать приложение с помощью жестов сжатия, прокрутки и сенсорного ввода с несколькими пальцами, которые используются в физических устройствах iOS.
Аналогичным образом удаленный симулятор iOS для Windows обрабатывает входные данные пера Windows в качестве входных данных Apple Pencil.
Обработка звука
Звуки, воспроизводимые симулятором, поступают из динамиков узла Mac. Звуки iOS не слышны на компьютере Windows.
Отключение удаленного симулятора iOS для Windows
чтобы отключить удаленный симулятор iOS для Windows, выберите сервис параметры > Xamarin > iOS Параметры и снимите флажок >.
Если этот параметр отключен, при отладке на подключенном узле сборки Mac открывается симулятор iOS.
Устранение неполадок
При возникновении проблем с удаленным симулятором iOS журналы можно просмотреть в следующих расположениях:
Если вы сообщаете проблеме в Visual Studio, прикрепление этих журналов может быть полезным (есть параметры для сохранения конфиденциальности загрузок).
Xamarin simulator что это
Среда Visual Studio 2015 является моим основным инструментом при разработке с помощью Xamarin. И одним из самых раздражающих аспектов при разработке с использованием Xamarin является необходимость переключаться между ПК, на котором я разрабатываю свой проект, и MacBook’ом, где я тестирую пользовательский интерфейс создаваемого мною iOS-приложения.
Именно поэтому я с большим нетерпением ждал выхода нового инструмента под названием IOS Simulator для Windows. Самым значительным его преимуществом я считаю то, что девелопер с его помощью может полностью сосредоточиться на том ПК, на котором он ведёт разработку. С помощью этого инструмента я заметно увеличил скорость разработки и тестирования iOS-приложений.
Превосходные новости заключаются в том, что iOS Simulator для Windows уже сейчас работает со стабильной версией Xamarin.
Более подробную информацию об этом инструменте можно найти по следующей ссылке: https://developer.xamarin.com/guides/cross-platform/windows/ios-simulator/
Запуск iOS Simulator для работы в удаленном режиме
Вы должны убедиться в том, что среда Visual Studio подключена к Вашему Mac. Затем необходимо компилировать Mac и удаленно запустить наше Xamarin- iOS-приложение.
Пройдите по пути Tools > Options > Xamarin > iOS Settings и поставьте галочку на Remote Simulator в Windows:
Как Вы сами можете видеть, при практическом рассмотрении iOS Simulator обеспечивает великолепную возможность для тестирования iOS-приложений.
У iOS Simulator имеется в меню несколько кнопок для более легкой навигации по «домашнему экрану», для поворачивания дисплея и для снятия с него скриншотов.
Я нахожу, что iOS Simulator для Windows — это замечательное дополнение Xamarin, которое отлично помогает в деле разработки приложений.
Автор: Tom Walker
Источник: Статья в блоге автора
Достоинства и недостатки Xamarin
Привет, Хабр! Сегодня расскажем вам о том, что пользователям нравится в Xamarin, нашем инструменте для кросс-платформенной разработки мобильных приложений. Кроме того, затронем и недостатки платформы. Кстати, под катом вы найдете много кода и показательные примеры, а не только текст с перечислением. Присоединяйтесь!
Статья подготовлена нашими партнерами, ребятами из EGO.
Для разработки приложения на основе Xamarin вам не потребуется досконально знать специфические языки отдельных платформ. Кроме того, при работе с какой-либо платформой у вас будет полный доступ к возможностям ее пакета SDK и встроенным механизмам создания пользовательских интерфейсов.
Таким образом, Xamarin позволяет создавать приложения, которые почти не отличаются от нативных аналогов, а значит, вполне подходят для распространения через официальные магазины (например, Google Play и App Store).
Кроме того, по словам разработчиков Xamarin, готовое решение не будет существенно уступать и в плане производительности.
Рассмотрим составные части Xamarin.
1. Простота освоения
На что в первую очередь следует обращать внимание при выборе платформы? Конечно, на сложность ее освоения. Вряд ли найдется много желающих тратить время на освоение особенностей синтаксиса (например, для достаточно уверенного владения Angular требуется изучать эту платформу как минимум несколько месяцев). Поэтому если создание качественного кода требует чрезвычайно серьезной подготовки, то многим новичкам попросту не удается в полной мере овладеть средой разработки. А вот начать работу с Xamarin совсем просто: вам не придется учить язык Xamarin или что-нибудь в таком духе.
Для создания полностью «родного» приложения для той или иной платформы вам потребуется в достаточной мере владеть языком Java (в случае Android) или Objective-C/Swift (для iOS). В некоторых случаях это может стать серьезным препятствием. Давайте посмотрим, как одна и та же задача, подразумевающая создание строки атрибутов, решается в Objective-C и в C#.
Если вы не используете возможности кросс-платформенной разработки Xamarin, то для создания коммерческого проекта, который обладал бы достаточной производительностью на обеих платформах, может потребоваться применять сразу два разных подхода. А значит, и затраты практически удваиваются.
2. Снижение расходов на проект
Исходя из описанных выше преимуществ можно отметить, что кросс-платформенная разработка с использованием Xamarin требует примерно в 1,5 раза меньше времени (и денег), чем создание отдельного специализированного проекта под каждую платформу.
Конечно, некоторые фрагменты кода (например, служебные компоненты) будут одинаковыми в обеих версиях, а часть других (в частности, бизнес-логика, не использующая специализированные функции пользовательского устройства) потребует лишь незначительных изменений. Однако общая ситуация немного сложнее. Некоторые компоненты вашего приложения неизбежно придется писать с нуля для каждой ОС. При создании и развертывании двух приложений для двух платформ практически всегда необходимо нанимать две команды разработчиков. При использовании Xamarin все гораздо проще:
благодаря не зависящим от платформы интерфейсам API примерно 70% кода будет написано в универсальном формате.
В этом примере класс MainPage использует интерфейс ITextToSpeech для выбора нужной функции на конкретной платформе:
3. Возможность создавать пользовательские интерфейсы, подобные «родным»
Одна из основных причин, по которым разработчики избегают инструментов кросс-платформенной разработки, заключается в том, что такие средства не позволяют пользоваться всем спектром возможностей конкретных сред. В первую очередь это относится к дизайну (Flat Design в iOS, Material Design в Android) и к интеллектуальным возможностям пользовательских устройств (доступ приложения к контактам, камере, данным GPS и т. п.).
Конечное кросс-платформенное решение не будет обладать высокой производительностью (этот недостаток присущ практически всем приложениям, созданным с помощью кросс-платформенных веб-инструментов) и не сможет пользоваться преимуществами конкретных платформ (а это значит, что некоторые возможности, изначально запланированные создателем проекта, могут быть реализованы не полностью).
4. Оптимальные условия для тестирования
Тестирование продукта, который готовится к выпуску, — задача нетривиальная, особенно когда речь идет о платформе Android. Форматы экранов пользовательских устройств iOS четко определены и известны заранее, а вот устройства Android бывают самыми разными. Если приложение не было протестировано на определенном устройстве, его интерфейс в некоторых случаях может «разъехаться». Создатели Xamarin предложили решение для этой проблемы.
В частности, для пользователей платформы также доступна среда Test Cloud, позволяющая эмулировать более 2000 устройств. Это решение не бесплатно, но затраты на него будут оправданы.
5. Идеальная совместимость с устройствами «Интернета вещей»
Если вы хотите, чтобы ваше приложение получало данные о местоположении пользователя, показания гироскопа, акселерометра или других встроенных датчиков, то Xamarin станет отличным выбором.
Эта среда разработки полностью совместима с устройствами IoT (например, с Estimote), позволяющими получать данные о местоположении, а значит, вам не придется настраивать интеграцию со сторонними решениями (тем более что такой возможности не будет в принципе).
6. Качественная документация и большое сообщество
Для Xamarin доступна отлично организованная документация с практическими примерами, фрагментами кода и пошаговыми инструкциями.
Разумеется, на некоторые вопросы найти ответ в ней не получится. В этом случае вам поможет онлайн-сообщество. Существует два официальных сообщества Xamarin: на официальном сайте платформы и на портале StackOverflow.
Если и здесь вам не удалось получить интересующую информацию (некоторые разработчики жалуются, что эксперты сообществ не очень активны), вы можете обратиться в частную службу технической поддержки, доступную для обладателей бизнес-лицензий Xamarin. Специалисты ответят вам уже через несколько часов и предложат не просто набор стандартных процедур, которые редко помогают полностью устранить проблему, а подробные пошаговые инструкции по решению именно вашей задачи.
7. Безупречная интеграция с Microsoft Windows
Практически в каждой ИТ-компании есть развитая инфраструктура используемого ПО на платформе Windows.
Для всех редакций Visual Studio (для Mac OS и Windows) с весны 2016 года в рамках подписки предоставляется и Xamarin. Если вы уже используете Visual Studio для разработки, вносить дополнительную оплату не потребуется.
Недостатки Xamarin
Мы постарались подробно рассказать о сильных сторонах Xamarin и рассмотрели ряд его очевидных преимуществ. Однако нам бы хотелось сделать этот обзор более объективным, так что обратимся к слабым сторонам решения. На самом деле внимания заслуживает лишь один недостаток: размер приложений, написанных с помощью Xamarin, обычно немного превышает объем нативных аналогов. Тем не менее оптимизация никогда не бывает лишней.
Подробно о Xamarin
Что это?
Xamarin — это фреймворк для кроссплатформенной разработки мобильных приложений (iOS, Android, Windows Phone) с использованием языка C#. Идея очень простая. Вы пишете код на своем любимом языке, с применением всех привычных для вас языковых фич типо LINQ, лямбда-выражений, Generic`ов и async`ов. При этом вы имеете полный доступ ко всем возможностям SDK платформы и родному механизму создания UI, получая на выходе приложение, которое, строго говоря, ничем не отличается от нативных и (по крайней мере по заверениям) не уступает им в производительности.
Давай подробнее
Некоторое время назад достаточно широкую известность получили ряд фреймворков(например PhoneGap), которые предлагают разработку кроссплатформенных мобильных приложений на HTML5 с использованием JavaScript. Идея заключается в том, что приложение разрабатывается как обычный сайт для мобильных устройств с использованием соответствующих js-библиотек, например, Jquery Mobile. Затем все это упаковывается в некий контейнер, который для пользователя выглядит как нативное приложение. Минусы этих фреймворков очевидны: во-первых, вы не имеете доступа к нативным элементам UI. То есть даже если вы хотите использовать стандартную кнопку «Назад» для iPhone, вы должны ее нарисовать и сверстать. Во-вторых, вы получаете урезанный и обобщенный API для работы с платформой. Таким образом, те или иные фичи, присущие какой-то отдельной платформе будут вам недоступны. Ну и третье и самое важное — такое приложение физически запускается внутри браузера телефона (точнее внутри контрола WebView). Не нужно расписывать долго, что это значит: низкая производительность (особенно «хорош» WebView на старых версиях Android) и огромные проблемы с отображением (ну, господа, это же — браузер). Хотя, конечно, в определенных случаях эти фреймворки могут оказаться очень уместны.
Это все хорошо, но давай ближе к разработке
Расскажу подробнее о самих библиотеках на примере Xamarin.iOS (Monotouch), т.к. опыта работы с ней гораздо больше, чем с Xamarin.Android (но там все аналогично).
Библиотека классов Monotouch.dll предоставляет доступ ко всем возможностям iOS SDK. Для разработчика — это просто набор C#-классов с хорошей аннотацией. Внутри эти классы используют разработанные инженерами Xamarin механизмы биндинга на нативные классы и методы. Важно, что этот же механизм можно использовать для биндинга любых библиотек, написанных на objective-c. Большинство классов и методов называются так же, как в оригинальном iOS SDK, хотя бывают исключения (в этом случае приходится использовать поиск в документации Xamarin по оригинальному названию, т.к. оно фигурирует в атрибутах биндинга). В классах активно используется механизм C# event`ов, что позволяет писать красивый и компактный код обработчиков с использованием лямбда-выражений:
Что с ограничениями?
Разработка UI
Для каждой платформы Xamarin предоставляет возможность использовать нативные средства разработки UI и нативные элементы пользовательского интерфейса. Для Android создание UI может происходить непосредственно в коде или же при помощи декларативного подхода с описанием интерфейса в XML. Для iOS это также либо код, либо использование нативных средств проектирования интерфейса — отдельные xib-файлы или же один большой Storyboard. Редактирование этих файлов происходит в привычной для iOS-разработчика среде XCode. И это означает, что вам потребуется Mac. Да, для разработки iOS-приложений вам в любом случае потребуется Mac по двум причинам:
Во-первых, как я уже сказал, для редактирования UI в среде XCode. Во-вторых, для отладки приложений требуется симулятор iPhone/iPad, который также доступен только на Mac.
Переносимость кода
Xamarin, по заявлениям разработчиков, является средством кроссплатформенной разработки, т.е. ожидаемо, что приложение, написанное один раз, может быть запущено на различных мобильных платформах. Но, в этом случае возникает конфликт с предыдущим пунктом. Как же так?
На самом деле ситуация обстоит следующим образом. Для каждой из платформы вам потребуется реализовать собственный слой UI. Т.е код, который отвечает за внешний вид приложения, вам придется написать для каждой платформы отдельно. Это цена за возможность использования нативных механизмов работы с UI. Если разбивать приложение на слои, то получается такая схема:
Сторонние компоненты
У Xamarin существует собственный магазин сторонних компонентов Xamarin Components.Он интегрируется в IDE и позволяет в несколько кликов подключать к вашему проекту различные компоненты, написанные как инженерами Xamarin, так и сторонними разработчиками. Количество компонентов, кстати, растет как на дрожжах. Есть как платные, так и бесплатные(на данный момент их большинство). Все компоненты можно разделить на две части. Одни предоставляют дополнительные элементы пользовательского интерфейса, другие являются библиотеками классов. Например вариант для Mono известной библиотеки для работы с Json — Json.NET или же библиотека для взаимодействия с Rest-сервисами — RestSharp. Не все компоненты кроссплатформенные, многие доступны только для конкретной платформы. Как я упоминал выше, Xamarin использует механизм биндингов для связывания с нативными библиотеками классов, что позволяет портировать на C# любые нативные библиотеки классов. Кроме того, для Xamarin.iOS, например, существует специальная утилита, которая умеет генерировать такие биндинги автоматически. Собственно это позволяет инженерам Xamarin поспевать за всеми нововведениями iOS. Так, в частности, в Xamarin.iOS практически сразу после выхода появилась возможность использовать Dropbox API, а так же новые фичи iOS 7.
Документация и комьюнити
Xamarin имеет отличную документацию, содержащую подробные руководства, сниппеты, а также внушительную базу примеров. Документация непосредственно по всем классам библиотек Monotouch и Monodroid являются частью общей документации Mono. Но, к сожалению, этого все равно недостаточно, чтобы покрыть весь пласт вопросов, которые могут возникать в процессе разработки. У Xamarin существует комьюнити разработчиков, которое сконцентировано на официальном форуме и на StackOverlow. Активностью и инициативностью людей в комьюнити похвастаться не могу. Из пяти вопросов, заданных на официальном форуме, ответ я получил только на один. Может быть, не то спрашивал. В этом плане неоценимую помощь оказала приватная тех. поддержка с инженерами по электронной почте, доступная в business-лицензии. Отвечают, как правило, в течении нескольких часов и не стандартными отписками «попробуйте выключить и включить», а действительно разбираются в проблеме и помогают ее решить. Следует понимать, что база вопросов и ответов, накопленная для нативной разработки гораздо шире, чем для Xamarin, поэтому, как бы вы ни хотели, вам придется разобраться в специфическом синтаксисе objective-c (c Java проблем быть не должно), чтобы понимать примеры кода на том же StackOverflow. Кроме того, это откроет вам доступ к прочтению и пониманию официальной документации для платформы, что на определенном этапе может стать очень важно. С другой стороны, в этом есть и положительный момент: получив такой базис, вам будет проще перейти к нативной разработке при необходимости.
Среда разработки
Разработчики Xamarin в качестве среды разработки предлагают использовать либо собственную IDE — Xamarin Studio, либо Visual Studio (в business-лицензии, об этом ниже).
Xamarin Studio
Visual Studio
Xamarin предлагает возможность вести разработку в Visual Studio после установки специального плагина, который доступен в business-лицензии (на момент выхода статьи — 999$), но есть месяц триала. Плюсы очевидны: вы становитесь разработчиком мобильных приложений, не меняя места дислокации, и можете использовать всю тяжелую артиллерию в лице Resharper и других ваших любимых плагинов. После установки плагина для Visual Studio вам потребуется настроить соединение с вашим Mac, которое будет использовано при запуске проекта на выполнение. Т.е. после запуска, приложение автоматически пересылается на Mac, где компилируется и загружается либо на симулятор либо на устройство, при этом сам процесс процесс отладки, расстановка брейкпоинтов и т.д. будет происходить в Visual Studio.
Вариантов работы в Visual Studio несколько. Либо вы используется виртуальную машину внутри Mac (например Parallels), куда ставите Windows и Visual Studio. Либо используете две разные физические машины, при этом использовать один Mac для нескольких PC-разработчиков затруднительно, т.к. отладка требует манипуляций с симулятором. И последний вариант — использовать виртуальную машину с Mac OS X (так называемый hackintosh). Вполне себе жизнеспособный вариант, хотя и есть некоторые ограничения. Например, в Xcode придется перемещаться по Storyboard только с использованием полос прокрутки, т.к. windows-мышь не очень похожа на настоящую мышь от Mac со всеми вытекающими.
Время горькой правды. С отладкой в Visual Studio периодически возникали проблемы. Самая заметная — это то, что при удаленной сборке приложения, процесс отладки мог отвалиться по таймауту. Хотя, опять же, стоит отдать должное разработчикам — они исправляют ошибки достаточно интенсивно, и вот уже на момент написания этой статьи, процесс отладки стал стабильным. Хотя и стоит заметить, что на текущий момент, времени между запуском приложения и появлением его на экране симулятора при использовании Visual Studio требуется несколько больше, чем при использовании Xamarin Studio на Mac.
Лицензии
На момент написания статьи Xamarin имеет следующие типы лицензий:
Заключение
На текущий момент технология Xamarin является серьезным инструментом для решения сложных задач в области разработки мобильных приложений. Несмотря на это, команда разработчиков не останавливается и продолжает его активное развитие и улучшение. За последние два месяца заметны серьезные улучшения в общей стабильности продукта. На мой взгляд у технологии большое будущее и с каждым днем число разработчиков, использующих ее в качестве основного фреймворка для разработки будет неуклонно расти. Однако довольно высокая стоимость лицензии может стать препятствием для использования на пути indie-разработчиков. В целом свой опыт работы с данным фреймворком считаю положительным и продолжу его использование.