SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Отзывы💖
Помогите нам стать лучше!
На вашу почту отправлена индивидуальная ссылка на электронную анкету.
2 ноября в 23:30 незаполненная анкета превратится в тыкву.
Заполните анкету и подходите к стойке регистрации за приятным сюрпризом!
#msdevcon
Оставляйте отзывы в социальных сетях. Мы все читаем. Спасибо вам! 
Программа интенсива
11:30 – 12:30 Часть 1: Готовим Xamarin.Forms (Теоретическая часть)
12:30 – 13:30 Практика
13:30 – 14:30 Обед
14:30 – 15:30 Часть 2: Удобный REST (Теоретическая часть)
15:30 – 16:30 Практика
16:30 – 17:00 Перерыв
17:00 – 18:00 Часть 3: Архитектура приложения (Теоретическая часть)
18:00 – 19:00 Практика
19:30 – 20:30 Круглые столы с экспертами
Правильный Xamarin для
мобильных приложений
Черников Вячеслав
Binwell
Цели
#msdevcon
Что такое
Xamarin.Forms
Работаем с
REST
Архитектура
приложения
Подключаемся к внешнему
REST-сервису, знакомимся с
Mock-данными
Отделяем бизнес-логику от
UI, упрощаем описание
ViewModel, знакомимся с
архитектурой
Знакомимся с Xamarin и
cоздаем первое приложение
на Xamarin.Forms
#msdevcon
Что такое Xamarin.Forms
Классический Xamarin
Полное покрытие iOS/Android API, нативные
приложения
C# для разработки, возможность шарить код
Xamarin.Forms
Унификация и абстрагирование UI
Xaml, MVVM
PCL-библиотека
Xamarin.Forms
Приложения для работы с данными
Прототипы
Бизнес-приложения
Xaml Page
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="XamlSamples.HelloXamlPage"
Title=“Page Title goes here">
<Label Text="{Binding Model.Text}" x:Name=“MainLabel"
FontAttributes="Bold"
TextColor="Aqua" />
</ContentPage>
Основные элементы
Label – отображение текста
Image – отображение изображений
Button – кнопка
ListView – список элементов
StackLayout – компоновка элементов
ContentPage – простая страница
MasterDetailPage – страница с боковым меню
Практика
#msdevcon
Приложениe v0.1
Хардкодим и осваиваем UI
Практика
#msdevcon
https://aka.ms/xamintensive
Полезные ресурсы
#msdevcon
Улучшения
-- FFImageLoading
<ffimageloading:CachedImage DownsampleToViewSize="true"
Source = "http://loremflickr.com/600/600/nature?filename=simple.jpg">
</ffimageloading:CachedImage>
-- ListView caching
<ListView CachingStrategy="RecycleElement">
-- XamlC, AssemblyInfo.cs
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
#msdevcon
Работаем с REST API
Json.Net и DTO
public class Session {
[JsonProperty("title")]
public string Title;
}
Refit
public interface IRemoteApi
{
[Get("/sessions")]
Task<List<Session>> GetSessions();
}
var service =
RestService.For<IRemoteApi>("https://demo3143189.mockable.io");
var sessions = await service.GetSessions();
Mock
Ускоряет верстку
Дает возможность проверить различные
сценарии и наборы данных
Сохраняем готовые JSON в качестве ресурсов
DAL
Data Interfaces (ISessionDataService, etc), Data Objects
Mock Remote
Реализация Data Interface и
чтение данных из локальных
ресурсов
Реализация Data
Interface и чтение
данных с внешнего
сервера с
помощью Refit
Refit
Interface
Кешер
Локальные JSON REST Service
DAL DataServices
public static void Init(bool isMock = false) {
if (isMock)
DependencyService.Register<ISessionDataService,
Mock.SessionDataService>();
else
DependencyService.Register<ISessionDataService,
Remote.SessionDataService>();
}
public static ISessionDataService Session =>
DependencyService.Get<ISessionDataService>();
Практика
#msdevcon
Приложениe v0.2
Подключаем сервер и моки
#msdevcon
Архитектура XF-приложения
Слои
App, App Services, Pages, Controls, Views, Converters, Layouts
ViewModels, Models
Data Services, Data ObjectsDAL
BL
UI
Settings,
Helpers
Platform
Service
Interfaces
Platform
Services
Native RenderersiOS/Android/Windows application, styles, resources
MVVM Business Logic (BL)
ViewModel – управление состоянием View,
контекст для биндинга (свойства и команды),
логика переходов между экранами.
Model – получение доп. информации из
базового объекта, часто объединяется с
ViewModel
Структура PCL-проекта
DAL
Data Objects
Data Services
BL
ViewModels
Models
UI
Pages
Controls
Converters
PlatformServices
App.cs
Settings.cs
Consts.cs
Практика
#msdevcon
Приложениe v0.3
Приводим структуру проекта в порядок, подбиваем
хвосты
Правильный Xamarin для мобильных приложений
1. Знакомство с XF
2. Осваиваем REST
3. Архитектура XF-приложения
Черников Вячеслав
slava.chernikoff@binwell.com
© 2016 Microsoft Corporation. All rights reserved.

Weitere ähnliche Inhalte

Was ist angesagt?

Flow coordinator
Flow coordinatorFlow coordinator
Flow coordinatorSanya Orlov
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservicesscassau
 
Реализация api для мобильных приложений на Drupal
Реализация api для мобильных приложений на DrupalРеализация api для мобильных приложений на Drupal
Реализация api для мобильных приложений на DrupalDrupalSib
 
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...Microsoft
 
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)7bits
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Mail.ru Group
 
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHPXML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHPrglab
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...COMAQA.BY
 

Was ist angesagt? (10)

Flow coordinator
Flow coordinatorFlow coordinator
Flow coordinator
 
Технический обзор платформы Windows Azure. Демонстрация, Azure University
Технический обзор платформы Windows Azure. Демонстрация, Azure UniversityТехнический обзор платформы Windows Azure. Демонстрация, Azure University
Технический обзор платформы Windows Azure. Демонстрация, Azure University
 
Enterpise&Webservices
Enterpise&WebservicesEnterpise&Webservices
Enterpise&Webservices
 
Реализация api для мобильных приложений на Drupal
Реализация api для мобильных приложений на DrupalРеализация api для мобильных приложений на Drupal
Реализация api для мобильных приложений на Drupal
 
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
 
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
 
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHPXML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
 

Ähnlich wie Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016) [RUSSIAN]

Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Dmytro Mindra
 
Microsoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решенийMicrosoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решенийVitaly Zhukov
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node jsAlex Tumanoff
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander Babich
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиAndrew Mayorov
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияAlexander Byndyu
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVCmandrew182
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryMax Rozdobudko
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработкиIT-Доминанта
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеDenis Izmaylov
 
API backend за несколько минут
API backend за несколько минутAPI backend за несколько минут
API backend за несколько минутAnton Maksimov
 
Асинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCEugene Agafonov
 
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, MicrosoftYandex
 
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Vadim Drobinin
 
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...Mail.ru Group
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...GoSharp
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKCisco Russia
 
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Sergey Xek
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыDenis Ivanov
 

Ähnlich wie Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016) [RUSSIAN] (20)

Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012 Windows Azure & NodeJS Microsoft SWIT 2012
Windows Azure & NodeJS Microsoft SWIT 2012
 
Microsoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решенийMicrosoft Graph. Готовая Big Data для Ваших решений
Microsoft Graph. Готовая Big Data для Ваших решений
 
Windows Azure and node js
Windows Azure and node jsWindows Azure and node js
Windows Azure and node js
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
Как сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпутиКак сделать интернет-сайт на SharePoint и не передумать на полпути
Как сделать интернет-сайт на SharePoint и не передумать на полпути
 
Микросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс РоссияМикросервисы, чистый PaaS и конкурс Мисс Россия
Микросервисы, чистый PaaS и конкурс Мисс Россия
 
UAFPUG6 - PureMVC
UAFPUG6 - PureMVCUAFPUG6 - PureMVC
UAFPUG6 - PureMVC
 
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha DmitryUafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
Uafpug 8 Presentation Puremvc Papervision Gallery Kuriksha Dmitry
 
PureMVC and Papervision
PureMVC and PapervisionPureMVC and Papervision
PureMVC and Papervision
 
Экскурс в мир WEB разработки
Экскурс в мир WEB разработкиЭкскурс в мир WEB разработки
Экскурс в мир WEB разработки
 
Изоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабированиеИзоморфные React-приложения: производительность и масштабирование
Изоморфные React-приложения: производительность и масштабирование
 
API backend за несколько минут
API backend за несколько минутAPI backend за несколько минут
API backend за несколько минут
 
Асинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVCАсинхронное программирование в ASP.NET MVC
Асинхронное программирование в ASP.NET MVC
 
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
"Windows Azure для мобильных платформ". Владимир Юнев, Microsoft
 
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
Вадим Дробинин (Vadim Drobinin) — iMessage Apps: от стикеров до банковских пр...
 
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...
iMessage Apps: от стикеров до банковских приложений за 30 минут, Вадим Дробин...
 
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
Как перейти с двухзвенной архитектуры Desktop приложения на трехзвенную за од...
 
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDKПрограммируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
Программируемость фабрики ACI. Объектная модель, REST API, ACI Python SDK
 
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
Mind map от «Полмиллиона юзеров в онлайне без падений: оптимизация высокона...
 
Строим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэндыСтроим простые и масштабируемые бекэнды
Строим простые и масштабируемые бекэнды
 

Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016) [RUSSIAN]

Hinweis der Redaktion

  1. Опишите, как задачи вы ставите перед мастер-классом или докладом. Что узнают участники и т.п.
  2. Рассказать про будущее