Пытаясь вникнуть в какую-либо незнакомую тему, освоить новый навык или технологию, всегда приходится преодолевать определенные препятствия. Я, например, долгие годы находился на пороге новых для себя знаний, пытаясь подсчитать, сколько времени и усилий мне придется затратить, чтобы овладеть ими в полной мере. Теперь же, будучи руководителем группы проектов Xamarin.Forms, я получаю множество отзывов от тех, кто впервые пользуется этим программным обеспечением, и мое положение просто обязывает меня помогать клиентам в работе с ним.
Я специально отобрал некоторые отличные источники в помощь начинающим разработчикам, среди которых наши пошаговые руководства, образовательные программы Xamarin University, статьи и многое другое. Неважно, новичок Вы в мире Xamarin.Forms или опытный пользователь, полагаю, Вы непременно найдете для себя что-то полезное.
Приступаем: Необходимые условия
Что нужно установить?
Для начала продуктивной мобильной разработки прежде всего требуется такие вещи, как пакеты SDK для мобильных платформ, интегрированная среда разработки и определенный набор эмуляторов, симуляторов и устройств. Следующие руководства помогут Вам быстро стартовать:
Ознакомьтесь с этой сессией в Xamarin University под названием Приступаем к работе с Xamarin [XAM101].
Упрощенная разработка под iOS
Мы усердно работали над упрощением разработки под iOS, и в итоге предоставили Xamarin Live Player (в настоящее время доступен в Preview 2). Xamarin Live позволяет создавать код в Visual Studio 2017 и немедленно видеть результат этого в виде приложения на физическом устройстве с помощью соответствующего приложения Xamarin Live Player.
Когда Вы будете готовы компилировать и развертывать приложения для iOS или если Вы «перерастете» возможности Xamarin Live Player, тогда можно подключиться к Mac и использовать удаленный симулятор iOS для Windows.
Распространенные вопросы новичков
Как перейти от одного экрана к другому?
Экраны Xamarin.Forms называются Pages и используют базовый класс ContentPage. Xamarin.Forms следуют концепции стека, а Вы выталкиваете данные из этого стека. Для этого необходимо создать стек навигации. Самый простой способ вывести его — запустить приложение с NavigationPage.
Теперь в пределах ContentPage можно просто использовать службу Navigation для перемещения новой страницы в стек навигации:
1 | MainPage = new NavigationPage( new FirstPage() ); |
1 | await Navigation.PushAsync( new SecondPage() ); |
Для получения дополнительных сведений о навигации обратитесь к этому руководству.
Как размещать контент?
Xamarin.Forms поддерживают несколько шаблонов макета, включая Grid, StackLayout, AbsoluteLayout и RelativeLayout. Я рекомендую вам научиться использовать Grid, поскольку эта «сетка» в настоящее время является наиболее гибкой и эффективной.
Чтобы научиться работать с высокооптимизированными макетами следует обратиться к статье под названием создание настраиваемого макета, в котором можно легко контролировать аспекты циклов измерения и инвалидации.
Ознакомьтесь с нашим курсом Xamarin University для самостоятельного изучения, который посвящен Макету в Xamarin.Forms[XAM135].
Тревога! Некоторые авантюрные члены сообщества недавно пересмотрели свое убеждение, которого длительное время придерживались, в отношении того, что в Xamarin.Forms не получается создавать тщательно отполированные макеты:
Inspired by @adpedley and @devnl latests articles about beautiful UI in #Xamarin Forms, soon will write about recreate the Netflix UI. pic.twitter.com/6Sac0mKXqK
— Javier Suárez Ruiz (@jsuarezruiz) 11 сентября 2017 г.
Just blogged: Kickass UI in Xamarin Forms: Twitter — https://t.co/gpYdUy6DKc with thanks to @adpedley @xamarinhq #Xamarin
— Steven Thewissen (@devnl) 25 августа 2017 г.
This is basically my stop saying you can’t have a polished app via Xamarin.Forms, post 🙂 https://t.co/ZpyMe5Va5T
— Adam Pedley (@adpedley) 12 августа 2017 г.
Как мне увидеть мой дизайн?
У вас есть несколько вариантов. Тогда как Xamarin Live Player становится все лучше и лучше, он уже сейчас является замечательным помощником в части редактирования XAML-кода в текстовом редакторе и просмотра мгновенной визуализации. Небольшой совет: используйте такое приложение, как, например, Reflector для зеркального отражения устройства на компьютере разработчика.
Наша дизайнерская группа также вносит усовершенствования в Xamarin.Forms Previewer.
Где найти тот или иной элемент управления?
Xamarin.Forms обеспечивают реализацию многих нативных элементов управления пользовательского интерфейса на каждой целевой платформе. Эта концепция абстракции становится более ясной при рассмотрении сопоставления средств визуализации Xamarin.Forms с нативными элементами управления.
Все еще не нашли? Для восполнения пробелов и расширения платформы Xamarin обладает отличной экосистемой, в которой находятся элементы управления от сторонних разработчиков и участников сообщества. Потратьте несколько минут на любимую поисковую систему, GitHub и поиск NuGet.
Переходим к более сложным вопросам
Как по-своему настроить элемент управления?
По умолчанию Xamarin.Forms предоставляют основные возможности настройки элементов управления, а если Вы упретесь в тупик, тогда у Вас будет пространство для маневра. Возможные варианты:
Особенности платформы
Если требуется настроить элемент управления только для определенной платформы, можно реализовать Platform Specific. Хорошим примером является настройка размера шрифта Entry в соответствии с шириной элемента управления.
Эффекты
Эффекты хороши в том случае, когда необходимо добавить настройку элементу управления на каждой платформе, что может быть полезно в случае с различными элементами управления, а также при необходимости изменить одно свойство, которое в данный момент не предоставляется в абстракции элемента управления. Некоторые распространенные примеры этого — добавление теней или определенные вещи из Xamarin.Forms Community Toolkit, которые я часто использую для удаления границы у Entry.
Для получения дополнительных сведений зарегистрируйтесь в Xamarin University, чтобы в режиме live стать участником занятия, на котором будет рассматриваться Использование эффектов в Xamarin.Forms [XAM330].
Пользовательские визуализации
Создав пользовательский механизм визуализации, можно получить полный контроль над нативным элементом управления платформы в части проектирования и поведения. В этом руководстве демонстрируется создание простого пользовательского элемента визуализации Entry.
Настраиваемые средства визуализации также могут помочь в том случае, когда необходимо реализовать элемент управления, которого в настоящее время нет в Xamarin.Forms, как, например, Floating Action Button (плавающую активную кнопку). На занятиях Xamarin University также рассматривается эта тема для таких сценариев, как интерактивные графики, пользовательская поверхность изображения, а также многое другое в режиме live Xamarin.Forms Renderers [XAM335].
Как использовать настраиваемые шрифты?
В то время как Xamarin.Forms значительно упрощают кросс-платформенную разработку во множестве вещей, и хотя настройки атрибутов шрифтов включены все-таки пользовательские шрифты требуют к себе немного большего внимания.
Мы используем настраиваемый шрифт значка, названный WeatherIcons, в нашем демонстрационном приложении Weather. Если шрифт правильно настроен в проектах платформы, тогда использовать шрифт в XAML довольно просто.
1 2 3 4 5 6 7 8 9 | <Label Text="{Binding WeatherIcon}" FontSize="18" Grid.Column="0" VerticalTextAlignment="Center" TextColor="White"> <Label.FontFamily> <OnPlatform x:TypeArguments="x:String"> <On Platform="UWP" Value="/Assets/WeatherIcons.ttf#Weather Icons"></On> <On Platform="iOS" Value="Weather Icons"></On> <On Platform="Android" Value="WeatherIcons.ttf#Weather Icons"></On> </OnPlatform> </Label.FontFamily> </Label> |
Куда поместить изображения?
Как и в случае со шрифтами для управления изображениями требуются дополнительные усилия. Каждая платформа обрабатывает изображения по-разному, соответственно, они могут требоваться различного размера и плотности. В этом руководстве будет показано, где каждая из платформ ожидает найти изображения и как их можно туда загрузить. При размещении их в нужном месте, ссылаться на них так же просто, как в следующем примере: <Image Source=»waterfront.jpg» />. Платформа найдет изображение и обеспечит правильную его плотность в соответствии с устройством.
Как можно хранить данные локально?
Каждая платформа имеет API хранилище, которое Xamarin.Forms открывают посредством Application.Current.Properties. Этот API хорош для хранения простых данных.
Когда потребности в хранении значительно возрастут, можно будет воспользоваться такими сервисами, как sqlite, Azure Mobile Apps, Realm + Azure или рассмотреть любой другой доступный вариант.
Где начать работу с Push-уведомлениями?
Azure Mobile Apps — это отличный вариант для приложений Xamarin.Forms. Сайт с документацией по Azure содержит статью, посвященную включению push-уведомлений в приложение.
Другие службы, например, Urban Airship, предоставляют компоненты для приложений Xamarin, благодаря которым становится возможным использование их API-интерфейсов.
Как пройти проверку подлинности с помощью той или иной службы?
Это в значительной степени зависит от того, какая именно служба Вас заинтересовала, но в целом я рекомендую сперва ознакомиться с ее компонентом, чтобы узнать, предоставляют ли они API для проверки подлинности. Возможно, Вам подойдет сервис Xamarin.Auth, у которого есть встроенные средства проверки подлинности для Google, Microsoft, Facebook и Twitter. Я также использовал его для проверки подлинности с помощью службы Strava oAuth.
Как проверить дерево пользовательского интерфейса приложения?
Владельцы лицензии Visual Studio Enterprise имеют доступ к Xamarin Inspector, и без труда могут это сделать. Хотя Xamarin Inspector является у нас фаворитом, и мы используем именно его, надо сказать, что есть и другие проекты для анализа мобильных приложений, как коммерческие, так и те, что на базе открытого исходного кода.
Бонус: Дополнительные материалы
- Вероятно, в каждом мобильном приложении Вы будете использовать проверку подключения, так что ознакомьтесь вот с этим модулем: Connectivity plugin.
- Есть множество хороших подключаемых модулей, созданных, чтобы упростить кросс-платформенную разработку. Ознакомьтесь с этим списком, а если этого покажется мало, прогуляйтесь по NuGet и GitHub, чтобы обнаружить еще больше.
- Инструктор Xamarin University Ким Филлпоттс не нуждается в дополнительной рекламе; советуем ознакомиться с его последней статьей, которая называется Инструменты и ресурсы Xamarin.
- Кроме того, рекомендуем к обязательному прочтению наше руководство по производительности.
Беремся за код
Я надеюсь, что Вы нашли в этой статье что-то полезное для себя, и я призываю Вас также делиться собственными открытиями, сделанными по пути. Если вы что-то напишете в Твиттере, пожалуйста, сообщите мне (@davidortinau), чтобы я мог добавить это в свой список и поделиться с другими.
Автор: David Ortinau
Источник: Официальный блог Xamarin
Написать ответ