Как стать автором
Обновить
0

Xamarin *

Инструменты для кросс-платформенной разработки

Сначала показывать
Порог рейтинга
Уровень сложности

«Каких Марин?» или управляем контроллером через bluetooth с помощью мобильного приложения на Xamarin (Android)

Время на прочтение16 мин
Количество просмотров10K
В прошлой статье я пообещал рассказать, о том как подключать CANNY 3 tiny с помощью UART к bluetooth. И поскольку на этих майских особо не разгуляешься, было принято решение провести время с пользой и таки сдержать обещание. Но просто подключить контроллер к Bluetooth адаптеру HC-06, было бы слишком просто для Хабра.

Поэтому мы не просто всё подключим, но еще и напишем для нашей схемы примитивнейшее приложение для Android используя C# и Xamarin.

Если вы любите мониторить «концевики» и герконы, так как это люблю я, милости прошу под кат.


Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии15

[По докам] Flutter. Часть 5. Для Xamarin.Forms-разработчиков

Время на прочтение20 мин
Количество просмотров4.2K
Это заключительная часть лаконичной интерпретации документации по Flutter, которая будет полезна Xamarin.Forms-разработчикам. Учитывая текущую ситуацию, сейчас самое время изучать что-то новое! Под катом вы сможете найти для себя информацию, достаточную, чтобы оценить, стоит ли переходить с одного кросплатформенного фреймворка на другой и сколько времени это займёт.


Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии1

Подарок всем под Ёлочку

Время на прочтение2 мин
Количество просмотров12K
Или всё-таки под Елочку?

Нет, под Ёлочку! Теперь точно с Ё, потому что это статья про ёфикацию!

И не просто теория или скрипты из командной строки, а настоящая рабочая программа, которую можно использовать как на компе так и на телефоне.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии80

Продолжайте полет с Xamarin.Forms 4.4

Время на прочтение4 мин
Количество просмотров4K
Мы пообщались с нашими разработчиками, которые делают уйму мобильных приложений каждый год, и они сказали: «Мы не можем вспомнить, когда в последний раз мы делали мобильное приложение, которое НЕ включало бы в себя карусель.» Итак, мы рады представить новый элемент управления CarouselView в Xamarin.Forms 4.4.0. Кроме того также представляем IndicatorView для отображения страниц и элементов с каруселью. А также SwipeView для предоставления контекстных действий для любого элемента в CollectionView. Тема выпуска каруселей была бы неполной без демонстрации новой поддержки GIF-анимации для изображений. Приступим.

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии1

Истории

Почему я отказался от кросс-платформенных решений в мобильной разработке

Время на прочтение9 мин
Количество просмотров11K
image
Позвольте мне с вами кое-чем поделиться. Мне нравится идея кросс-платформенной разработки. Возможность использовать один набор инструментов для всех моих задач — это мечта. Кто не хотел бы использовать только один инструмент, чтобы успешно выполнять свои задачи? Пиши один раз, запускай везде? Я хочу!
Читать дальше →
Всего голосов 10: ↑8 и ↓2+6
Комментарии27

10 самых популярных курсов Microsoft на русском

Время на прочтение5 мин
Количество просмотров40K
Привет, Хабр! Совсем недавно мы выложили первую часть серии подборок полезных обучающий курсов для программистов. И вот незаметно подкралась последняя пятая часть. В ней мы перечислили некоторые из самых популярных IT-курсов, которые доступны на нашей учебной платформе Microsoft Learn. Все они, конечно же, бесплатны. Подробности и ссылки на курсы под катом!

Темы курсов в этой подборке:

  • Python
  • Xamarin
  • Visual Studio Code
  • Microsoft 365
  • Power BI
  • Azure
  • ML

Новая серия статей


Следующая серия статей, начало 2020 года


Эта серия статей, 2019 год


Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии0

Xamarin.Forms — декоративное отображение QRCode с помощью SkiaSharp

Время на прочтение2 мин
Количество просмотров5K


Для вывода/чтения штрихкодов есть популярная библиотека ZXing. Она умеет выводить и считывать много разных форматов: QRCode, Aztec и другие, более 2 десятков. Для считывания кодов в ней есть готовый контрол ZXingScannerView. Требуется минимум кода, чтобы добавить этот функционал в ваше приложение.

Однако, при помощи этой библиотеки код будет изображён канонически, чёрным по белому. Рассмотрим случай, когда надо изобразить код нестандартного вида, например цветной, со скруглёнными элементами или украшенный каким-либо другим способом (и чтобы он при этом продолжал хорошо считываться).

И настоящая свобода творчества открывается только если нарисовать код самому — тогда всё полностью в ваших руках. Этим и займёмся на примере QR-кода.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии4

Xamarin.Forms — простой пример Host-based Card Emulation

Время на прочтение10 мин
Количество просмотров7.3K
В этой статье будем реализовывать так называемую Host-based Card Emulation (HCE, Эмуляция банковской карты на телефоне). В сети много подробных описаний этой технологии, здесь я сделал акцент именно на получении работающих приложений эмулятора и ридера и решении ряда практических задач. Да, понадобятся 2 устройства с nfc.

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

При этом приложение на телефоне, эмулирующем карту, может быть запущено или нет и экран вашего телефона может быть заблокирован.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Xamarin.Forms Shell

Время на прочтение8 мин
Количество просмотров16K
В конце мая Microsoft выпустила в релиз Xamarin.Forms Shell — оболочку нацеленную на упрощение создания кроссплатформенных мобильных приложений и включающий в себя следующий функционал: боковое меню, вкладки, навигация, поиск.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии6

Xamarin.Forms — удобное использование иконочных шрифтов в приложении

Время на прочтение5 мин
Количество просмотров4K

Постановка задачи


Для отображения иконок в приложении Xamarin.Forms можно использовать изображения в различных форматах, например png, svg или шрифты ttf. Чаще всего для добавления стандартных иконок удобен шрифт с иконками, например google material icons. Шрифт с иконками имеет размер около 200КБ и удобство использования здесь обычно важнее экономии на размере приложения. Иконки будут хорошо смотреться при любом разрешении экрана и будут чёрно-белыми.

Для использования иконок есть готовые nuget-пакеты. Я долгое время использовал iconize (nuget — www.nuget.org/packages/Xam.Plugin.Iconize; git — github.com/jsmarcus/Iconize). Он позволяет подключать более десяти шрифтов, добавляет новые контролы, такие как IconButton, IconImage, IconLabel и т.п. Но тут есть обычные аргументы против готовых библиотек: лишний функционал, лишний размер файлов, не полностью устраивает поведение, баги и т.п. Поэтому в определённый момент решил отказаться от готовой библиотеки и заменить ее на простейший велосипед из пары классов + шрифт.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии0

Как просто подключить и начать печатать через портативный Bluetooth принтер EPS/POS в приложении Xamarin Android

Время на прочтение2 мин
Количество просмотров3.8K
С чего же мы начнём?

Добавим в проект Nuget пакет для работы с EPS/POS командами. Для этого откройте Package Manager Console и добавьте Zebra.Printer.SDK командой

Install-Package Zebra.Printer.SDK

По сути, не имеет значения какую модель принтера вы используете и кто производитель. Вам нужно убедиться в том, что принтер поддерживает работу с EPS/POS командами (их большинство). В этом случае библиотека сможет работать с ним без проблем.

Все дальнейшие действия описаны с предположением того, что вы зашли в настройки Android устройства и подключились к принтеру.

В первую очередь добавим разрешения в файл AndroidManifest.xml:

<manifest ....>
...
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
...
</manifest>
Читать дальше →
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

Вышла Preview-версия XAML Hot Reload для Xamarin.Forms

Время на прочтение4 мин
Количество просмотров3K
На прошлой неделе на Xamarin Developer Summit мы анонсировали «Горячую перезагрузку (Hot Reload) XAML для Xamarin.Forms», которая позволяет вносить изменения в пользовательский интерфейс XAML и просматривать их в режиме реального времени, не требуя другой сборки и развертывания.

Горячая перезагрузка XAML для Xamarin.Forms ускоряет разработку и упрощает сборку, экспериментирование и итерации в пользовательском интерфейсе. А это значит, что вам больше не нужно перестраивать свое приложение каждый раз, когда вы настраиваете свой пользовательский интерфейс — все изменения мгновенно показываются в запущенном приложении.

Когда ваше приложение скомпилировано с использованием XAML Hot Reload, оно работает со всеми библиотеками и сторонними элементами управления. Эта фича будет доступна для iOS и Android в Visual Studio 2019 и Visual Studio 2019 для Mac. Все работает на всех допустимых целях развертывания, включая симуляторы, эмуляторы и физические устройства.

Горячая перезагрузка XAML будет доступна позже в 2019 году, но вы можете зарегистрироваться для участия в preview:

Sign Up for the Preview Now

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии1

GoSh! для путешественников — история одного домашнего проекта

Время на прочтение11 мин
Количество просмотров4.3K

— Скажите, вы любите путешествия?


Уверен, что вы ответите "да", вряд ли в другом случае вы бы обратили внимание на эту статью :)


— Интересна ли вам тема мобильной разработки?


Тут я уже не так уверен, и надеюсь, этой статьей я не отобью вам интерес. В любом случае, тут будет некоторое количество технических подробностей, которые могут быть вам немного полезными, но не обязательно.


— А как насчет кроссплатформенной мобильной разработки?


Знаю, знаю, холивар, но, что поделать — будем спорить и рождать истины.


Так или иначе, в этой душераздирающей истории данные темы будут затронуты, так что — самое время закрыть статью, если вы ожидаете чего-то другого ;) Хотя, я постараюсь написать так, чтобы тут были не только технические детали.

Стойте, стойте, куда вы, я же пошутил! Тут будет и про котиков! Читать далее...
Всего голосов 25: ↑19 и ↓6+13
Комментарии19

Ближайшие события

Документация по API Xamarin теперь в открытом доступе

Время на прочтение2 мин
Количество просмотров4.5K
Мы рады объявить о выпуске всей документации по API Xamarin в формате Open-Source! Документация по API помогает улучшить взаимодействие с IntelliSense и является одним из лучших способов помочь разработчикам достичь своих целей.

Документация по API Xamarin


Кроме того, мы также перенесли хостинг с сайта Xamarin на docs.microsoft.com:

Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии1

.NET зоопарк под призмой NET Core

Время на прочтение3 мин
Количество просмотров14K
Всем привет! Сегодня мы рассмотрим разные фишки и изменения, которые появились в .NET Core платформе и сравним их с Framework. Я разбил статью на модули для более лучшего понимания. Эта статья будет интересна тем кто собирается переходить на .NET Core или уже использует его.

Stack technology


В данный момент у нас есть три платформы: .NET Framework, Mono и .NET Core. Каждая платформа включает в себя следующие технологии:

NET Framework — WPF, WinForms, ASP.NET (DNX реализация), WCF
NET Core — UWP, ASP.NET Core, WA, Xamarin (.NET Standard), Avalonia and other
Mono — Xamarin (PCL, Share project), Unity, ASP.NET, WinForms (cross platform)
NET Core (3.0) — Всё тоже самое, что и у .NET Core выше + WPF и WinForms, ML.NET

NET Standard


Ещё есть .NET Standard. Это набор классов, методов и интерфейсов, которые позволяют писать и использовать общий код под все перечисленные выше платформы. Ещё на ней можно писать консольные приложения. Вкратце это тот же PCL, но работает на всех перечисленных выше платформах.

Cross Platform


Читать дальше →
Всего голосов 36: ↑26 и ↓10+16
Комментарии27

Готовимся к Hardened Runtime и Notary Service в macOS Mojave

Время на прочтение2 мин
Количество просмотров3.2K
С выходом macOS Mojave Apple представила поддержку служб Hardened Runtime и Notary. Эти две службы предназначены для повышения безопасности приложений в macOS. Недавно компания заявила:
Начиная с macOS 10.14.5, все новые или обновленные расширения ядра и все программы от разработчиков, впервые освоивших распространение с Developer ID, для запуска должны быть заверены через Hardened Runtime и Notary. В будущей версии macOS заверение потребуется по умолчанию для всех программ.
Сегодня поможем вам разобраться в новых требованиях с точки зрения Xamarin.

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии0

Умный дом / Обновления в Lazurite

Время на прочтение3 мин
Количество просмотров8.8K

Всем добрый день! Продолжаю развивать свой проект Lazurite. За последние несколько месяцев было проведено много работы по оптимизации и улучшению программы. Об основных изменениях хочу рассказать вам. Прошлая публикация.


Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии18

Работа Xamarin c SDK, написанном на C

Время на прочтение6 мин
Количество просмотров3.3K
Не так давно у меня был интересный проект на Xamarin Forms для нескольких платформ:

  • Android
  • iOS
  • UWP
  • MacOS

Нам было необходимо создать библиотеку, которая смогла бы подключаться к нескольким нашим проектам: Xamarin.Forms, Android на Java, Cordova, а также позволять сторонним разработчикам использовать наше SDK в своих проектах с минимальными усилиями для интеграции.

Командой было решено написать библиотеку на C и подключать ее к нашим проектам по мере необходимости. Такое решение позволило нам иметь одну кодовую базу для SDK проекта и нам не пришлось дублировать библиотеку отдельно под разные платформы с возможными проблемами при переносе кода и дублировании тестов для покрытия и проверки кода.

Правда в итоге оказалось достаточно тяжело «подружить» библиотеку на C с разными платформами на Xamarin платформе. В данной небольшой статье будет расписано как нам удалось это сделать, и возможно, кому-то это пригодится и позволит сэкономить время на проекте.
Итак, если вам интересно то добро пожаловать под кат
Всего голосов 10: ↑9 и ↓1+8
Комментарии5

Как мы удвоили скорость работы с Float в Mono

Время на прочтение6 мин
Количество просмотров8.1K

Мой друг Aras недавно написал один и тот же трассировщик лучей на разных языках, в том числе на C++, C# и компиляторе Unity Burst. Разумеется, естественно ожидать, что C# будет медленнее, чем C++, но мне показалось интересным, что Mono настолько медленнее .NET Core.

Опубликованные им показатели были плохими:

  • C# (.NET Core): Mac 17.5 Mray/s,
  • C# (Unity, Mono): Mac 4.6 Mray/s,
  • C# (Unity, IL2CPP): Mac 17.1 Mray/s

Я решил посмотреть, что происходит, и задокументировать места, которые можно улучшить.

В результате этого бенчмарка и изучения этой проблемы мы обнаружили три области, в которых возможно улучшение:

  • Во-первых, необходимо улучшить параметры Mono по умолчанию, потому что пользователи обычно не настраивают параметры у себя
  • Во-вторых, нам нужно активнее знакомить мир с бекэндом оптимизации кода LLVM в Mono
  • В-третьих, мы улучшили настройку некоторых параметров Mono.

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

Результаты на моём домашнем iMac для Mono и .NET Core были следующими:

Рабочая среда Результаты, MRay/sec
.NET Core 2.1.4, отладочная сборка dotnet run 3.6
.NET Core 2.1.4, релизная сборка dotnet run -c Release 21.7
Ванильный Mono, mono Maths.exe 6.6
Ванильный Mono с LLVM и float32 15.5
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии10

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

Время на прочтение11 мин
Количество просмотров8K
Выпускать приложения для лишь одной мобильной платформы – не актуально и нужно заботиться о разработке сразу двух версий, для iOS и Android. И здесь можно выбрать два пути: работать на «нативных» языках программирования для каждой операционной системы или использовать кроссплатформенные фреймворки.

При разработке одного из проектов в компании DD Planet я сделал ставку на последний вариант. И в этой статье расскажу об опыте разработки кроссплатформенного приложения, проблемах, с которыми мы столкнулись, и найденных решениях.
Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии1