Общие сведения о Xamarin.Forms

Содержание

Слайд 2

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

Популярные кроссплатформенные технологии

React Native - фреймворк для создания кроссплатформенных мобильных приложений

от Facebook. Как и в «обычном» React для веб, UI приложения собирается из кирпичиков — компонентов, которые реагируют на изменение своего состояния (state) и свойств им переданных (props), но, в отличие от веб, рендерятся в нативные контролы. Фреймворк для разработки кроссплатформенных приложений для iOS и Android: появился в начале 2015 года; построен на базе React; не использует WebView и HTML-технологии; нативные компоненты имеют биндинги в JS и обернуты в React; поддержка iOS лучше, чем Android, но динамика многообещающая
PhoneGap – фреймворк для создания мобильных приложений, созданный Nitobi Software. Позволяет создать приложения для мобильных устройств используя JavaScript, HTML5 и CSS3, без необходимости знания «родных» языков программирования, под все мобильные операционные системы.
Ionic – фреймворк был построен на AngularJS и Apache Cordova. Ionic использует веб-технологии, такие как CSS и HTML5, для разработки гибридных мобильных приложений. Это требует мостов PhoneGap / Cordova для воспроизведения нативного поведения и обеспечения лучшего пользовательского опыта.
Kivy —графический фреймворк, написанный на языке программирования Python/Cython, основанный на OpenGL ES 2, направленный на создание современных пользовательских интерфейсов, больше ориентированный на работу с сенсорными устройствами.
Xamarin —фреймворк, включающий Xamarin.Forms, Xamarin.iOS и Xamarin.Android. После сборки общая часть “разворачивается” в стандартные нативные контролы, так что по сути вы получаете полностью нативные приложения под все поддерживаемые платформы.
Слайд 3

Популярные кроссплатформенные технологии Кросс-платформенные фреймворки PhoneGap, Xamarin, Unity, Qt и Appcelerator

Популярные кроссплатформенные технологии

Кросс-платформенные фреймворки PhoneGap, Xamarin, Unity, Qt и Appcelerator Titanium,

Telerik Platform занимают значительную часть рынка кросс-платформенной разработки мобильных приложений.
Слайд 4

Разработка Xamarin.Forms Xamarin.Forms — это кроссплатформенный набор средств пользовательского интерфейса, позволяющий

Разработка Xamarin.Forms

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

эффективно создавать собственные макеты пользовательских интерфейсов для совместного использования в приложениях iOS, Android и универсальной платформы Windows.
Целевые платформы: приложения Xamarin.Forms могут быть написаны для следующих операционных систем:
iOS 8 или более поздние версии;
Android 4.0.3 (API 15) или более поздние версии;
UWP для Windows 10 ;
Предполагается, что разработчики имеют опыт работы с .NET Standard и Shared Projects.
Поддержка дополнительных платформ:
Слайд 5

Как работает Xamarin.Forms Библиотека XF работает поверх описанного ранее классического Xamarin

Как работает Xamarin.Forms

Библиотека XF работает поверх описанного ранее классического Xamarin и

фактически предоставляет механизмы виртуализации пользовательского интерфейса и дополнительную инфраструктуру.
Xamarin.Forms предназначен для разработчиков со следующими целями:
Разделите макет пользовательского интерфейса и дизайн на разных платформах.
Совместное использование кода, тестирование и бизнес-логика на разных платформах.
Создание кросс-платформенных приложений C# в с помощью Visual Studio.
Слайд 6

Дополнительные средства Xamarin.Forms имеет большую экосистему пакетов NuGet, которые добавляют к

Дополнительные средства

Xamarin.Forms имеет большую экосистему пакетов NuGet, которые добавляют к приложениям

различные функциональные возможности.
Оболочка Xamarin.Forms позволяет уменьшить сложность разработки мобильных приложений, предоставляя фундаментальные функции, необходимые большинству приложений. Ниже приведены некоторые примеры функций, предоставляемых оболочкой:
Общие возможности навигации
Схема навигации на основе URI
Интегрированный обработчик поиска
Xamarin. Essentials — это библиотека, которая предоставляет межплатформенные API для собственных функций устройства. Как и в случае с Xamarin, Xamarin. Essentials является абстракцией, которая упрощает процесс доступа к собственным служебным программам. Ниже приведены некоторые примеры служебных программ, предоставляемых Xamarin. Essentials.
Сведения об устройстве
Файловая система
Акселерометр
Телефон
Преобразование текста в речь
Блокировка экрана
И многое другое…
Xamarin.Essentials устанавливается в существующий или новый проект Xamarin.Forms Android, iOS или UWP, в качестве расширения – пакет NuGet.
Слайд 7

Библиотека Xamarin.Essentials Xamarin.Essentials устанавливается в существующий или новый проект Xamarin.Forms Android,

Библиотека Xamarin.Essentials

Xamarin.Essentials устанавливается в существующий или новый проект Xamarin.Forms Android, iOS

или UWP, в качестве расширения – пакет NuGet:

Библиотека позволяет интегрировать в приложение следующие компоненты:
Акселерометр — получение данных об ускорении работы устройства в трехмерном пространстве.
Сведения о приложении — получение сведений о приложении.
Барометр — отслеживание изменений атмосферного давления.
Батарея — простой метод контроля уровня заряда батареи, источника питания и состояния.
Буфер обмена — быстрый и удобный метод устанавливать или считывать текст в буфере обмена.
Преобразователи цвета — вспомогательные методы для System.Drawing.Color.
Компас — отслеживание изменений в направлении на магнитный полюс.
Подключение — проверка состояния подключения и отслеживание изменений этого состояния.
Обнаружение тряски — обнаружение движения встряхивания устройства.
Сведения об устройстве отображения — получение характеристик экрана и сведений об ориентации устройства.
Сведения об устройстве — простое изучение характеристик устройства.
Электронная почта — удобная отправка сообщений электронной почты.
Вспомогательные функции для файловой системы — простое сохранение файлов с данными приложения.
Фонарик — удобный способ включить и (или) выключить фонарик.
Геокодирование — прямое и обратное преобразование адресов и координат.

Географическое расположение — получение информации о местоположении от GPS-приемника устройства.
Гироскоп — отслеживание вращения устройства по трем основным осям.
Средство запуска — возможность открыть любой URI средствами системы.
Магнитометр — определение ориентации устройства относительно магнитного поля Земли.
MainThread — выполнение кода в основном потоке приложения.
Карты — запуск приложения карт для определенного расположения.
Открыть браузер — быстрый и простой метод открыть в браузере определенный веб-сайт.
Датчик ориентации — получение сведений об ориентации устройства в трехмерном пространстве.
Набиратель номера — открытие набирателя номера.
Расширения платформы — вспомогательные методы для преобразования Rect, Size и Point.
Параметры — быстрый и удобный метод добавления сохраняемых параметров.
Безопасное хранилище — безопасное хранение данных.
Share — отправка текста и URI веб-сайтов другим приложениям.
SMS — создание SMS-сообщения для отправки.
Преобразование текста в речь — звуковое воспроизведение текста на устройстве.
Преобразователи единиц — вспомогательные методы для преобразования единиц.
Отслеживания версий — отслеживание версий и номеров сборки для приложений.
Вибрация — включение вибродвигателя на устройстве.

Слайд 8

Создание приложения Xamarin.Forms После установки и настройки платформы Xamarin можно создать

Создание приложения Xamarin.Forms

После установки и настройки платформы Xamarin можно создать новое

решение Xamarin.Forms в Visual Studio: шаблон Mobile App (Xamarin.Forms)

В меню создания проекта доступно два шаблона:
Blank App (пустой): шаблон, в котором нет лишних образцов страниц или примеров данных,
Master Detail (всплывающий элемент): использует боковое меню для навигации между несколькими дочерними страницами,
Tabbed (с вкладками): использует вкладки для перемещения между несколькими дочерними страницами.
Настраиваются две опции: Platform (Платформа) и Code Sharing Strategy (Стратегия совместного использования).

Слайд 9

Внутри решения Xamarin.Forms Решение — это контейнер для одного или нескольких

Внутри решения Xamarin.Forms

Решение — это контейнер для одного или нескольких проектов.

Проект может представлять собой приложение, вспомогательную библиотеку.
В данном случае в качестве шаблона проекта выбран Mobile App, а в качестве стратегии написания кода .NET Standard.

Решение будет состоять из четырех проектов:
App1 – Этот проект является проектом библиотеки .NET Standard,
App1.Android — этот проект содержит код для платформы Android,
App1.iOS — этот проект содержит код для платформы iOS,
App1.UWP — этот проект содержит код для универсальной платформы Windows (UWP)

В Visual Studio для Mac и Visual Studio на основе шаблона приложения Xamarin.Forms по умолчанию создается простейшее возможное решение Xamarin.Forms, которое отображает текст для пользователя. 

Слайд 10

Структура главного проекта На изображении ниже показано содержимое проекта .NET Standard

Структура главного проекта

На изображении ниже показано содержимое проекта .NET Standard в

Visual Studio.
В этом проекте есть узел Зависимости, который содержит узлы NuGet и SDK:
NuGet – Xamarin.Forms пакеты, которые были добавлены в проект.
SDK – метапакет NETStandard.Library, который ссылается на полный набор пакетов NuGet, определяющих библиотеку .NET Standard.
Это содержимое представляет простейший набор библиотек проекта Xamarin.Forms.

Также, в главном проекте App1 есть четыре основных файла:
App.xaml: файл, который определяет ресурсы, общие для всего приложения
App.xaml.cs: файл с кодом C#, с которого начинается выполнение приложения
MainPage.xaml: файл с визуальным интерфейсом для единственной страницы MainPage в коде xaml
MainPage.xaml.cs: файл, который содержит логику MainPage на языке C#

Слайд 11

Класс общего кода В представленном примере проекта Xamarin.Forms на снимках экрана

Класс общего кода

В представленном примере проекта Xamarin.Forms на снимках экрана создается

объект ContentPage, который служит для отображения элемента Label.
В приложениях Xamarin.Forms есть класс App, который отвечает за создание первого отображаемого объекта Page. 
Пример класса App приведен в следующем коде:
Слайд 12

Запуск на платформе iOS Для запуска начальной страницы Xamarin.Forms в iOS

Запуск на платформе iOS

Для запуска начальной страницы Xamarin.Forms в iOS проект

платформы включает в себя класс AppDelegate, который наследуется от класса:
Platform.iOS.FormsApplicationDelegate
Класс используется в следующем примере кода для отображения начальной страницы приложения в операционной системе iOS:
Слайд 13

Запуск на платформе Android Проект платформы включает в себя код, который

Запуск на платформе Android

Проект платформы включает в себя код, который создает

объект Activity с атрибутом MainLauncher, причем действие наследуется от класса FormsApplicationActivity, как показано в следующем примере кода:
Слайд 14

Запуск на платформе UWP В приложениях UWP метод Init инициализирует платформу

Запуск на платформе UWP

В приложениях UWP метод Init инициализирует платформу Xamarin.Forms,

вызывается из класса App.
Начальная страница Xamarin.Forms запускается классом MainPage, как показано в следующем примере кода:
Слайд 15

Внутри файлов проекта Раздел ссылки проекта Hello переносимой библиотеки классов включает

Внутри файлов проекта

Раздел ссылки проекта Hello переносимой библиотеки классов включает следующие

сборки Xamarin.Forms:
Xamarin.Forms.Core
Xamarin.Forms.Xaml
Xamarin.Forms.Platform
Раздел ссылки проектов приложений для платформ содержат дополнительные сборки, которые применяются для отдельных платформ:
Xamarin.Forms.Platform.Android
Xamarin.Forms.Platform.iOS
Xamarin.Forms.Platform.UWP
Вызов метода Forms.Init, который инициализирует библиотеку Xamarin.Forms можно найти в следующих классах:
iOS: AppDelegate
Android: MainActivity
UWP: App класса, OnLaunched метод
Создание экземпляра класса App, расположенного в PCL, для каждой платформы:
iOS: AppDelegate
Android: MainActivity
UWP: MainPage
Слайд 16

Визуальные элементы управления Визуальный интерфейс Xamarin.Forms приложения состоит из объектов, которые

Визуальные элементы управления

Визуальный интерфейс Xamarin.Forms приложения состоит из объектов, которые сопоставляют

собственные элементы управления для каждой целевой платформы. 
Существует четыре группы основных элементов управления, которые используются для создания пользовательского интерфейса приложения Xamarin.Forms:
Страницы (Pages)
Макеты (Layouts)
Представления (Views)
Ячейки (Cells)
Страница Xamarin.Forms обычно занимает весь экран. 
Страница содержит макет, который содержит представления и, возможно, другие макеты. 
Ячейки являются специализированными компонентами, используемые для связи с элементами TableView и ListView .
Слайд 17

Страницы (Pages) Xamarin.Forms страницы представляют экраны кроссплатформенных мобильных приложений. Все типы

Страницы (Pages)

Xamarin.Forms страницы представляют экраны кроссплатформенных мобильных приложений.
Все типы страниц, являются

производными от Xamarin.Forms Page класса. 
Эти визуальные элементы занимают весь или часть экрана. 
Объект Page представляет ViewController в iOS и Page в универсальной платформе Windows. 
На Android, каждая страница занимает экран, подобный Activity, но страницы Xamarin.Forms не являются объектами Activity.
Слайд 18

Макеты (Layouts) Layout и Layout классы в Xamarin.Forms — это специализированный

Макеты (Layouts)

Layout и Layout классы в Xamarin.Forms — это специализированный подтип

представлений, которые действуют как контейнеры для включения представлений и других макетов.

Макеты с содержимым одного элемента или представления:
Эти классы являются производными от Layout, который определяет свойства Padding и IsClippedToBounds:
Макеты с содержимым нескольких дочерних элементов:
Эти классы являются производными от Layout

Слайд 19

Макеты (Layouts). Иерархией классов XF состоит из сотен типов, которые находятся

Макеты (Layouts). Иерархией классов

XF состоит из сотен типов, которые находятся в

нескольких пространствах имен.
Разработчики должны быть знакомы с иерархией типов, используемых для создания пользовательского интерфейса приложения, которое находится в пространстве имен Xamarin.Forms
На схеме классов показана только иерархия типов Layout класса, которые обычно используются для построения пользовательского интерфейса в Xamarin.Forms
Слайд 20

Представления (Views) Представления являются объектами пользовательского интерфейса, например метки, кнопки и

Представления (Views)

Представления являются объектами пользовательского интерфейса, например метки, кнопки и

переключатели, которые обычно называются элементами управления или мини-приложения в других графический средах программирования.
Представления, поддерживаемые Xamarin.Forms, являются производными от класса View.
Их можно разделить на несколько категорий:
Презентация и вывод данных
Представления, которые запускают команды
Задание значений и ввод данных
Для редактирования текста
Для указания действия
Отображающие коллекции
Слайд 21

Презентация и вывод данных Представления данного типа включают: метка (Label), изображение

Презентация и вывод данных

Представления данного типа включают:
метка (Label),
изображение (Image),


прямоугольник (BoxView),
веб-содержимое (WebView),
содержимое карты (Map)
Слайд 22

Представления, которые запускают команды Визуальные элементы, инициирующие команды: Button, ImageButton, RadioButton, RefreshView, SearchBar, SwipeView

Представления, которые запускают команды

Визуальные элементы, инициирующие команды: Button, ImageButton, RadioButton, RefreshView,

SearchBar, SwipeView
Слайд 23

Задание значений и ввод данных Представления данного типа включают: Ползунок Slider

Задание значений и ввод данных

Представления данного типа включают:
Ползунок Slider
Стрелки Stepper
Переключатель

Switch
Выбор даты DatePicker
Выбор времени TimePicker
Слайд 24

Представления для редактирования текста

Представления для редактирования текста

Слайд 25

Представления для указания действия

Представления для указания действия

Слайд 26

Представления, отображающие коллекции

Представления, отображающие коллекции

Слайд 27

Макет StackLayout Дочерние элементы размещаются поочередно (по горизонтали или по вертикали)

Макет StackLayout

Дочерние элементы размещаются поочередно (по горизонтали или по вертикали) в

порядке добавления. 
Область, занимаемая макетом StackLayout, зависит от свойств HorizontalOptions и VerticalOptions.
Пример использования макета StackLayout для размещения трех элементов управления Label:

Эквивалентный код на языке C#:

Слайд 28

Пример использования StackLayout По умолчанию макет StackLayout предполагает вертикальную ориентацию. На

Пример использования StackLayout

По умолчанию макет StackLayout предполагает вертикальную ориентацию.
На снимках ниже приведен пример

запуска код из предыдущего слайда для кроссплатформенного приложения Xamarin.Forms:
Слайд 29

Ориентация и размеры элементов Ориентацию макета StackLayout можно изменить на горизонтальную,

Ориентация и размеры элементов

Ориентацию макета StackLayout можно изменить на горизонтальную, как показано в

следующем примере кода XAML:
Эквивалентный код на языке C#:
Размеры элементов управления можно задать с помощью свойств HeightRequest и WidthRequest:
Слайд 30

Результирующий код на языке C# Все приведенные манипуляции можно выполнять в

Результирующий код на языке C#

Все приведенные манипуляции можно выполнять в одном

из вариантов:
В коде XAML интерфейса приложения
В коде C# логики приложения
Эквивалентный код на языке C#: