- PVSM.RU - https://www.pvsm.ru -
А вы бы хотели всегда работать в одной среде? Так, чтобы не приходилось скакать туда-сюда по средам разработки и при использовании инструментов. До идеала, конечно, еще далеко, но IT-мир стремится к этому. Сегодня рассказываем о единой кросс-платформенной библиотеке API. Присоединяйтесь!
При разработке приложений для iOS и Android с помощью Xamarin разработчики могут обращаться к любым нативным API, используя C#. Эти привязки не только помогают использовать соответствующие API в C#, но и предоставляют мощные функции этого языка, такие как async/await, события, делегаты и т. д.
Это огромное преимущество для разработчиков, потому что им никогда не придется работать вне C#, независимо от того, пишут ли они общую бизнес-логику, пользовательский интерфейс или получают доступ к нативным функциям. Одна из ключевых особенностей, которую часто хотят видеть программисты при разработке кросс-платформенных приложений на Xamarin, — это способность получать доступ к распространенным нативным функциям из общего кода без необходимости писать свои собственные слои абстракций или находить плагин в свободном доступе, созданный сообществом.
Xamarin.Essentials [1] воплощает в реальность мечту о едином API для доступа к таким функциям, как геолокация, показания датчиков, безопасное хранилище и т. д., для любого приложения, созданного на Xamarin!
В ознакомительной версии, доступной уже сегодня, API-интерфейсы Xamarin.Essentials предоставляют доступ более чем к 25 нативным функциям из единой кросс-платформенной библиотеки API, к которой можно получить доступ из общего кода независимо от того, как создается пользовательский интерфейс. Это значит, что вы можете использовать API Xamarin.Essentials с помощью единственного приложения Xamarin.Android или приложения Xamarin.Forms, адаптированного для работы с iOS, Android и UWP. Несмотря на большое количество функций, эта библиотека полностью оптимизирована для максимально быстрой работы и минимального влияния на размер приложения, поскольку она защищена от компоновщика. Это говорит о том, что в ваше приложение будут включены только API и функции, которые вы используете, а все остальное будет удалено во время компиляции.
Ознакомительную версию библиотеки, в которой используется базовый набор кросс-платформенных API, можно установить в ваше приложение через NuGet:
Начальный набор API был определен на основе отзывов от разработчиков Xamarin о том, какие функции они хотели бы видеть в кросс-платформенной библиотеке API. Со временем мы будем расширять этот список.
Начать использовать API Xamarin.Essentials легко в любом существующем приложении, выполнив всего несколько простых шагов:
1. Откройте существующий проект или создайте новый, используя шаблон Blank App в Visual Studio C# (для Android, iPhone и iPad или кросс-платформенный).
2. Добавьте пакет Xamarin.Essentials NuGet к проекту:
3. Добавьте ссылку на Xamarin.Essentials в любом из классов C#, чтобы ссылаться на API.
using Xamarin.Essentials;
4. Xamarin.Essentials требует небольшой дополнительной настройки под проекты Android, чтобы получить доступ к специальным функциям:
Xamarin.Essentials необходимо инициализировать с помощью метода OnCreate в рамках MainLauncher или любого другого Activity в проекте Android:
Xamarin.Essentials.Platform.Init(this, bundle);
Чтобы обрабатывать разрешения среды выполнения на Android, Xamarin.Essentials должна получить любой OnRequestPermissionsResult. Добавьте следующий код ко всем классам Activity:
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
{
Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
Готово! Теперь вы можете начать использовать API Xamarin.Essentials в своем приложении. К каждому API прилагается полная документация [27], включая фрагменты кода, которые вы можете скопировать в свое приложение.
Обязательно прочитайте наше Руководство по началу работы [28] для получения дополнительной информации.
Во время одного из моих выступлений [29] на Microsoft Build 2018 я показал, как объединить возможности API Xamarin.Forms и Xamarin.Essentials, чтобы собрать кросс-платформенный компас менее чем за 10 минут. Это так же просто, как и добавить несколько изображений и небольшой пользовательский интерфейс для компаса в приложении:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Image HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Source="compass.png"/>
<Image HorizontalOptions="Center"
VerticalOptions="Center"
Source="arrow.png"
x:Name="ImageArrow"/>
<Label Grid.Row="1"
x:Name="LabelInfo"
VerticalOptions="Center"
HorizontalOptions="Center" />
</Grid>
Я смог использовать API компаса [6] из Xamarin.Essentials в коде выше, чтобы регистрировать события, когда компас изменяет положение, обновлять текст метки и поворачивать изображение. Все это делается несколькими строками кода:
using Xamarin.Forms;
using Xamarin.Essentials;
namespace MyCompass
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
// Register for reading changes
Compass.ReadingChanged += Compass_ReadingChanged;
}
void Compass_ReadingChanged(CompassChangedEventArgs e)
{
LabelInfo.Text = $"Heading: {e.Reading.HeadingMagneticNorth}";
ImageArrow.Rotation = e.Reading.HeadingMagneticNorth;
}
protected override void OnAppearing()
{
base.OnAppearing();
Compass.Start(SensorSpeed.Ui);
}
protected override void OnDisappearing()
{
base.OnDisappearing();
Compass.Stop();
}
}
}
Вот таким простым образом создается приложение-компас! Вы можете найти полный исходный код и изображения на GitHub. [30]
Xamarin.Essentials тщательно тестировался, но мы, тем не менее, просим вас оставлять отзывы и во время действия нашей ознакомительной версии. Опробуйте библиотеку в своих приложениях и сообщите о любых проблемах, с которыми столкнетесь в работе с репозиторием Xamarin.Essentials GitHub [31].
Мы рассматриваем эту библиотеку как главный элемент платформы Xamarin и знаем, что это важный стандартный блок для всех разработчиков и приложений. Поэтому мы будем интегрировать пакет Xamarin.Essentials NuGet в каждый шаблон iOS, Android и Xamarin.Forms в Visual Studio и Visual Studio для Mac, чтобы разработчики имели доступ к этим API с самых первых этапов своих проектов.
Вы можете увидеть полный обзор Xamarin, Xamarin.Forms и Xamarin.Essentials в рамках выступления «Создание мобильных приложений с помощью Visual Studio и Xamarin» на Microsoft Build 2018.
Вы можете просмотреть нашу документацию [1], содержащую полное руководство по началу работы и использованию каждой функции Xamarin.Essentials. Мы также предоставили полный список ссылок на API [32], который можно просмотреть в Интернете, чтобы узнать обо всех деталях интерфейсов API Xamarin.Essentials.
Автор: sahsAGU
Источник [33]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/284356
Ссылки в тексте:
[1] Xamarin.Essentials: https://docs.microsoft.com/en-us/xamarin/essentials
[2] Акселерометр: https://docs.microsoft.com/xamarin/essentials/accelerometer
[3] Информация о приложении: https://docs.microsoft.com/xamarin/essentials/app-information
[4] Батарея: https://docs.microsoft.com/xamarin/essentials/battery
[5] Буфер обмена: https://docs.microsoft.com/xamarin/essentials/clipboard
[6] Компас: https://docs.microsoft.com/xamarin/essentials/compass
[7] Подключение: https://docs.microsoft.com/xamarin/essentials/connectivity
[8] Передача данных: https://docs.microsoft.com/xamarin/essentials/data-transfer
[9] Информация об экране устройства: https://docs.microsoft.com/xamarin/essentials/device-display
[10] Информация об устройстве: https://docs.microsoft.com/xamarin/essentials/device-information
[11] Электронная почта: https://docs.microsoft.com/xamarin/essentials/email
[12] Помощники по файловой системе: https://docs.microsoft.com/xamarin/essentials/file-system-helpers
[13] Фонарик: https://docs.microsoft.com/xamarin/essentials/flashlight
[14] Геокодирование: https://docs.microsoft.com/xamarin/essentials/geocoding
[15] Геолокация: https://docs.microsoft.com/xamarin/essentials/geolocation
[16] Гироскоп: https://docs.microsoft.com/xamarin/essentials/gyroscope
[17] Магнитометр: https://docs.microsoft.com/xamarin/essentials/magnetometer
[18] Открытие браузера: https://docs.microsoft.com/xamarin/essentials/open-browser
[19] Телефонный набор: https://docs.microsoft.com/xamarin/essentials/phone-dialer
[20] Настройки: https://docs.microsoft.com/xamarin/essentials/preferences
[21] Блокировка экрана: https://docs.microsoft.com/xamarin/essentials/screen-lock
[22] Безопасное хранилище: https://docs.microsoft.com/xamarin/essentials/secure-storage
[23] SMS: https://docs.microsoft.com/xamarin/essentials/sms
[24] Преобразование текста в речь: https://docs.microsoft.com/xamarin/essentials/text-to-speech
[25] Отслеживание версий: https://docs.microsoft.com/xamarin/essentials/version-tracking
[26] Вибрация: https://docs.microsoft.com/xamarin/essentials/vibrate
[27] полная документация: https://docs.microsoft.com/xamarin/essentials/
[28] Руководство по началу работы: https://docs.microsoft.com/xamarin/essentials/get-started
[29] одного из моих выступлений: https://channel9.msdn.com/Events/Build/2018/THR2415
[30] полный исходный код и изображения на GitHub.: https://github.com/jamesmontemagno/app-compass
[31] репозиторием Xamarin.Essentials GitHub: http://github.com/xamarin/Essentials
[32] ссылок на API: https://docs.microsoft.com/en-us/dotnet/api/xamarin.essentials
[33] Источник: https://habr.com/post/415021/?utm_campaign=415021
Нажмите здесь для печати.