SlideShare a Scribd company logo
Правильный Xamarin для мобильных приложений (Microsoft DevCon School 2016) [RUSSIAN]
Отзывы💖
Помогите нам стать лучше!
На вашу почту отправлена индивидуальная ссылка на электронную анкету.
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.

More Related Content

What's hot (10)

PDF
Flow coordinator
Sanya Orlov
 
PPTX
Технический обзор платформы Windows Azure. Демонстрация, Azure University
Департамент Стратегических Технологий
 
ODP
Enterpise&Webservices
scassau
 
PDF
Реализация api для мобильных приложений на Drupal
DrupalSib
 
PPTX
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Microsoft
 
PPTX
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
7bits
 
PDF
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Mail.ru Group
 
PPT
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
rglab
 
PPTX
Roman Zdebskiy - Windows Azure
Andrew Mayorov
 
PPTX
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
COMAQA.BY
 
Flow coordinator
Sanya Orlov
 
Технический обзор платформы Windows Azure. Демонстрация, Azure University
Департамент Стратегических Технологий
 
Enterpise&Webservices
scassau
 
Реализация api для мобильных приложений на Drupal
DrupalSib
 
Облако Microsoft Azure - введение в основные сервисы для разработки и инфраст...
Microsoft
 
Стажировка-2013, разработчики, 15 занятие. Web-фреймворки (1 часть)
7bits
 
Кейсы использования PWA для партнерских предложений в Delivery Club, Никита Б...
Mail.ru Group
 
XML Sapiens как универсальная концепция сайтостроения в разрезе XML/PHP
rglab
 
Roman Zdebskiy - Windows Azure
Andrew Mayorov
 
Selenium 2 WebDriver + Selenide + Java с и без использования BDD, сравнительн...
COMAQA.BY
 

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

PPTX
DevCon 2016 - Xamarin
Anton Shunkov
 
PPTX
Xamarin.Forms в реальных проектах
AppTractor
 
PPTX
[Add 4] crossplatform .net
Stanislav Sidristy
 
PPTX
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest
 
PPTX
Средства кросплатформенной разработки. Xamarin и ApperCode
geekfamilyrussia
 
PPTX
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Dmitry Savchenko
 
PPTX
Приложения для Windows Phone: как мы это делаем #codefest
Actis Wunderman
 
PPT
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest
 
PPTX
Вячеслав Черников (Binwell) | Xamarin на практике
RIF-Technology
 
PDF
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
SpbDotNet Community
 
PPTX
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012
Mykhail Galushko
 
PDF
UdSU DNA
Ivan Beloborodov
 
PPTX
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
2ГИС Технологии
 
PPTX
ПартФорум DIRECTUM 2013 - разработка прикладных решений
Виктор Золотов
 
PPTX
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Sergey Zwezdin
 
PDF
C# Web. Занятие 15.
Igor Shkulipa
 
PPTX
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
UNETA
 
PPTX
разработка Metro style приложений
Олег Винников
 
PPTX
Объять необъятное, или как использовать несколько MVVM фреймворков в одном XA...
Denis Tsvettsih
 
PPTX
Станислав Сидристый Xamarin
Apps4All
 
DevCon 2016 - Xamarin
Anton Shunkov
 
Xamarin.Forms в реальных проектах
AppTractor
 
[Add 4] crossplatform .net
Stanislav Sidristy
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest
 
Средства кросплатформенной разработки. Xamarin и ApperCode
geekfamilyrussia
 
Михаил Гaлушко "Разработка для WinRT: практика создания качественных приложений"
Dmitry Savchenko
 
Приложения для Windows Phone: как мы это делаем #codefest
Actis Wunderman
 
CodeFest 2013. Никонов Г. — Как мы разрабатываем приложения для Windows Phone...
CodeFest
 
Вячеслав Черников (Binwell) | Xamarin на практике
RIF-Technology
 
Павел Федотовский «Как мы разрабатывали приложение для DotNetRu на Xamarin.Fo...
SpbDotNet Community
 
Разработка WinRT приложений для Windows 8: реальный опыт, UA Mobile 2012
Mykhail Galushko
 
Как мы делали оффлайн-карты под Windows Phone — Александр Волохин, 2ГИС
2ГИС Технологии
 
ПартФорум DIRECTUM 2013 - разработка прикладных решений
Виктор Золотов
 
Платформа Silverlight для разработки мобильных приложений для Windows Phone 7
Sergey Zwezdin
 
C# Web. Занятие 15.
Igor Shkulipa
 
Uneta 17.04.15 Bondarenko - What's NEW in Windows 10 SDK?
UNETA
 
разработка Metro style приложений
Олег Винников
 
Объять необъятное, или как использовать несколько MVVM фреймворков в одном XA...
Denis Tsvettsih
 
Станислав Сидристый Xamarin
Apps4All
 
Ad

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

Editor's Notes

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